"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateGlobalTypes = generateGlobalTypes; const shared_1 = require("../utils/shared"); function generateGlobalTypes(lib, target, strictTemplates) { const fnPropsType = `(K extends { $props: infer Props } ? Props : any)${strictTemplates ? '' : ' & Record'}`; let text = ``; if (target < 3.5) { text += ` ; declare module '${lib}' { export interface GlobalComponents { } export interface GlobalDirectives { } }`; } text += ` ; declare global { const __VLS_intrinsicElements: __VLS_IntrinsicElements; const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any }; const __VLS_unref: typeof import('${lib}').unref; const __VLS_nativeElements = { ...{} as SVGElementTagNameMap, ...{} as HTMLElementTagNameMap, }; type __VLS_IntrinsicElements = ${(target >= 3.3 ? `import('${lib}/jsx-runtime').JSX.IntrinsicElements;` : `globalThis.JSX.IntrinsicElements;`)} type __VLS_Element = ${(target >= 3.3 ? `import('${lib}/jsx-runtime').JSX.Element;` : `globalThis.JSX.Element;`)} type __VLS_GlobalComponents = ${(target >= 3.5 ? `import('${lib}').GlobalComponents;` : `import('${lib}').GlobalComponents & Pick;`)} type __VLS_GlobalDirectives = import('${lib}').GlobalDirectives; type __VLS_IsAny = 0 extends 1 & T ? true : false; type __VLS_PickNotAny = __VLS_IsAny extends true ? B : A; type __VLS_unknownDirective = (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void; type __VLS_WithComponent = N1 extends keyof LocalComponents ? N1 extends N0 ? Pick : { [K in N0]: LocalComponents[N1] } : N2 extends keyof LocalComponents ? N2 extends N0 ? Pick : { [K in N0]: LocalComponents[N2] } : N3 extends keyof LocalComponents ? N3 extends N0 ? Pick : { [K in N0]: LocalComponents[N3] } : N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N1] } : N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N2] } : N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N3] } : ${strictTemplates ? '{}' : '{ [K in N0]: unknown }'} type __VLS_FunctionalComponentProps = '__ctx' extends keyof __VLS_PickNotAny ? K extends { __ctx?: { props?: infer P } } ? NonNullable

: never : T extends (props: infer P, ...args: any) => any ? P : {}; type __VLS_IsFunction = K extends keyof T ? __VLS_IsAny extends false ? unknown extends T[K] ? false : true : false : false; // fix https://github.com/vuejs/language-tools/issues/926 type __VLS_UnionToIntersection = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never; type __VLS_OverloadUnionInner = U & T extends (...args: infer A) => infer R ? U extends T ? never : __VLS_OverloadUnionInner & U & ((...args: A) => R)> | ((...args: A) => R) : never; type __VLS_OverloadUnion = Exclude< __VLS_OverloadUnionInner<(() => never) & T>, T extends () => never ? never : () => never >; type __VLS_ConstructorOverloads = __VLS_OverloadUnion extends infer F ? F extends (event: infer E, ...args: infer A) => any ? { [K in E & string]: (...args: A) => void; } : never : never; type __VLS_NormalizeEmits = __VLS_PrettifyGlobal< __VLS_UnionToIntersection< __VLS_ConstructorOverloads & { [K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never } > >; type __VLS_PrettifyGlobal = { [K in keyof T]: T[K]; } & {}; type __VLS_PickFunctionalComponentCtx = NonNullable<__VLS_PickNotAny< '__ctx' extends keyof __VLS_PickNotAny ? K extends { __ctx?: infer Ctx } ? Ctx : never : any , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any >>; type __VLS_UseTemplateRef = Readonly>; function __VLS_getVForSourceType(source: number): [number, number, number][]; function __VLS_getVForSourceType(source: string): [string, number, number][]; function __VLS_getVForSourceType(source: T): [ item: T[number], key: number, index: number, ][]; function __VLS_getVForSourceType }>(source: T): [ item: T extends { [Symbol.iterator](): Iterator } ? T1 : never, key: number, index: undefined, ][]; // #3845 function __VLS_getVForSourceType }>(source: T): [ item: number | (Exclude extends { [Symbol.iterator](): Iterator } ? T1 : never), key: number, index: undefined, ][]; function __VLS_getVForSourceType(source: T): [ item: T[keyof T], key: keyof T, index: number, ][]; // @ts-ignore function __VLS_getSlotParams(slot: T): Parameters<__VLS_PickNotAny, (...args: any[]) => any>>; // @ts-ignore function __VLS_getSlotParam(slot: T): Parameters<__VLS_PickNotAny, (...args: any[]) => any>>[0]; function __VLS_asFunctionalDirective(dir: T): T extends import('${lib}').ObjectDirective ? NonNullable : T extends (...args: any) => any ? T : __VLS_unknownDirective; function __VLS_withScope(ctx: T, scope: K): ctx is T & K; function __VLS_makeOptional(t: T): { [K in keyof T]?: T[K] }; function __VLS_nonNullable(t: T): T extends null | undefined ? never : T; function __VLS_asFunctionalComponent any ? InstanceType : unknown>(t: T, instance?: K): T extends new (...args: any) => any ? (props: ${fnPropsType}, ctx?: any) => __VLS_Element & { __ctx?: { attrs?: any, slots?: K extends { ${(0, shared_1.getSlotsPropertyName)(target)}: infer Slots } ? Slots : any, emit?: K extends { $emit: infer Emit } ? Emit : any } & { props?: ${fnPropsType}; expose?(exposed: K): void; } } : T extends () => any ? (props: {}, ctx?: any) => ReturnType : T extends (...args: any) => any ? T : (_: {}${strictTemplates ? '' : ' & Record'}, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {}${strictTemplates ? '' : ' & Record'} } }; function __VLS_elementAsFunction(tag: T, endTag?: T): (_: T${strictTemplates ? '' : ' & Record'}) => void; function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : []; function __VLS_normalizeSlot(s: S): S extends () => infer R ? (props: {}) => R : S; function __VLS_tryAsConstant(t: T): T; } `; return text; } ; //# sourceMappingURL=globalTypes.js.map