+ ? K extends { __ctx?: { props?: infer P } } ? NonNullable : never
+ : T extends (props: infer P, ...args: any) => any ? P
+ : {};
+ type __VLS_FunctionalComponent = (props: (T extends { $props: infer Props } ? Props : {}) & Record, ctx?: any) => __VLS_Element & {
+ __ctx?: {
+ attrs?: any;
+ slots?: T extends { $slots: infer Slots } ? Slots : Record;
+ emit?: T extends { $emit: infer Emit } ? Emit : {};
+ props?: (T extends { $props: infer Props } ? Props : {}) & Record;
+ expose?: (exposed: T) => void;
+ };
+ };
+ type __VLS_IsFunction = K extends keyof T
+ ? __VLS_IsAny extends false
+ ? unknown extends T[K]
+ ? false
+ : true
+ : false
+ : false;
+ type __VLS_NormalizeComponentEvent<
+ Props,
+ Emits,
+ onEvent extends keyof Props,
+ Event extends keyof Emits,
+ CamelizedEvent extends keyof Emits,
+ > = __VLS_IsFunction extends true
+ ? Props
+ : __VLS_IsFunction extends true
+ ? { [K in onEvent]?: Emits[Event] }
+ : __VLS_IsFunction extends true
+ ? { [K in onEvent]?: Emits[CamelizedEvent] }
+ : Props;
+ // 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_ResolveEmits<
+ Comp,
+ Emits,
+ TypeEmits = {},
+ NormalizedEmits = __VLS_NormalizeEmits extends infer E ? string extends keyof E ? {} : E : never,
+ > = __VLS_SpreadMerge;
+ type __VLS_ResolveDirectives = {
+ [K in Exclude & string as `v${Capitalize}`]: T[K];
+ };
+ type __VLS_PrettifyGlobal = { [K in keyof T as K]: T[K]; } & {};
+ type __VLS_UseTemplateRef = Readonly>;
+
+ function __VLS_getVForSourceType>(source: T): [
+ item: T extends number ? number
+ : T extends string ? string
+ : T extends any[] ? T[number]
+ : T extends Iterable ? T1
+ : any,
+ index: number,
+ ][];
+ function __VLS_getVForSourceType(source: T): [
+ item: T[keyof T],
+ key: keyof T,
+ index: number,
+ ][];
+ function __VLS_getSlotParameters(slot: S, decl?: D):
+ D extends (...args: infer P) => any ? P : any[];
+ function __VLS_asFunctionalDirective(dir: T): T extends import('vue').ObjectDirective
+ ? NonNullable
+ : T extends (...args: any) => any
+ ? T
+ : (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
+ function __VLS_makeOptional(t: T): { [K in keyof T]?: T[K] };
+ function __VLS_asFunctionalComponent any ? InstanceType : unknown>(t: T, instance?: K):
+ T extends new (...args: any) => any ? __VLS_FunctionalComponent
+ : T extends () => any ? (props: {}, ctx?: any) => ReturnType
+ : T extends (...args: any) => any ? T
+ : __VLS_FunctionalComponent<{}>;
+ function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : [];
+ function __VLS_asFunctionalElement(tag: T, endTag?: T): (attrs: T & Record) => void;
+ function __VLS_asFunctionalSlot(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable;
+ function __VLS_tryAsConstant(t: T): T;
+}