import { Directive, Ref, GlobalDirectives, Slot, VNodeChild, EmitsOptions, ObjectEmitsOptions, unref, defineComponent } from '@vue/runtime-core'; declare function checkDirective< T, D extends Directive | 'show' | 'once' | 'pre' | 'cloak' | 'memo', >( dir: D, tag: T, arg: GetArg$2, exp: GetExp$2, modifiers: Partial, boolean>>, ): void type GetArg$2 = D extends Directive ? string | undefined : undefined type GetExp$2 = D extends 'show' ? boolean | undefined : D extends 'once' | 'pre' | 'cloak' ? never : D extends 'memo' ? unknown[] : D extends Directive ? E : any type GetModifiers$2 = D extends Directive ? never : never /* eslint-disable @typescript-eslint/prefer-function-type */ type TupleToUnion = T extends Readonly<[infer F, ...infer R]> ? F | TupleToUnion : T extends Readonly> ? R : never type UnionToIntersection = ( U extends any ? (k: U) => void : never ) extends (k: infer I) => void ? I : never type OnlyEventNames = K extends `on${Capitalize}` ? K : never // prettier-ignore type EventName = `on${Capitalize}` // prettier-ignore type RemoveOnPrefix = T extends `on${infer K}` ? Uncapitalize : T type KnownKeys = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K] } type FlatArray = { done: Arr recur: Arr extends ReadonlyArray ? FlatArray< InnerArr, [ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ][Depth] > : Arr }[Depth extends -1 ? 'done' : 'recur'] declare function flat( array: T, depth?: D, ): Array> declare function first(items: T[]): T declare function union(...args: T): TupleToUnion declare function record(key: K, value: V): Record type Get = K extends keyof T ? T[K] : F declare function getNameOption( t?: T, ): T extends { name: infer N } ? N : undefined declare function merge(a: A, b: B): A & B type Instantiate = T extends new (...args: any) => infer R ? R : never type PropsOf = T extends KnownKeys< keyof IntrinsicElements > ? IntrinsicElements[T] : Instantiate extends { $props: infer Props } ? Props : never type MergeAttrs = Props & Omit> declare function checkModelDirective< T, A extends GetArg$1, O extends {}, E extends GetExp$1, M extends GetModifiers$1 >( tag: T, arg: A, exp: E, modifiers: Partial>, options?: O, ): E type GetArg$1 = T extends 'input' | 'textarea' | 'select' ? undefined : T extends KnownKeys ? never : keyof PropsOf type GetExp$1 = T extends 'textarea' ? string : T extends 'input' ? InputValueType | undefined | null : T extends 'select' ? SelectValueType : T extends KnownKeys ? never : Get, A> type GetModifiers$1 = T extends 'input' | 'textarea' | 'select' ? 'lazy' | 'number' | 'trim' : never // acts as a catch-all type InputValueType = O extends { type: infer T } ? T extends 'checkbox' ? O extends { checkbox: infer C } ? C extends [infer Y, infer N] ? Y | N : TupleToUnion : boolean : T extends 'radio' ? O extends { radio: infer R } ? TupleToUnion : string : T extends 'date' | 'datetime' | 'datetime-local' ? string | Date : T extends 'number' | 'range' ? string | number : T extends 'button' | 'reset' | 'submit' ? never : string : string type SelectValueType = O extends { option: infer T } ? TupleToUnion : string declare function checkHTMLElementType( tag: K, instance: unknown, ): instance is K extends keyof KnownKeys ? HTMLElementTagNameMap[K] : K extends keyof KnownKeys ? SVGElementTagNameMap[K] : EventTarget declare function checkOnDirective< IntrinsicElements, T, A extends GetArg, >( intrinsicElements: IntrinsicElements, tag: T, arg: A & GetArg, exp: GetExp, modifiers: Partial, boolean>>, ): void type MouseEventNames = | 'auxclick' | 'click' | 'contextmenu' | 'dbclick' | 'mousedown' | 'mouseenter' | 'mousemove' | 'mouseleave' | 'mouseout' | 'mouseover' | 'mouseup' | 'wheel' type PointerEventNames = | 'pointerdown' | 'pointermove' | 'pointerup' | 'pointercancel' | 'pointerenter' | 'pointerleave' | 'pointerover' | 'pointerout' type KeyboardEventNames = 'keydown' | 'keypress' | 'keyup' type ModifiersForNativeEvent = | 'once' | 'stop' | 'prevent' | 'capture' | 'self' | 'passive' | (EventName extends KeyboardEventNames ? | 'enter' | 'tab' | 'delete' | 'esc' | 'space' | 'left' | 'right' | 'up' | 'down' | 'ctrl' | 'alt' | 'shift' | 'meta' | 'exact' : never) | (EventName extends PointerEventNames ? | 'left' | 'right' | 'middle' | 'ctrl' | 'alt' | 'shift' | 'meta' | 'exact' : never) | (EventName extends MouseEventNames ? | 'left' | 'right' | 'middle' | 'ctrl' | 'alt' | 'shift' | 'meta' | 'exact' : never) type GetArg = RemoveOnPrefix< OnlyEventNames> > type GetExp> = Get< PropsOf, EventName > type GetModifiers = T extends keyof KnownKeys ? A extends GetArg ? ModifiersForNativeEvent : never : never declare function checkInterpolation( value: string | boolean | number | null | undefined, ): string /** * @deprecated - You should not be using interpolation to render objects. */ declare function checkInterpolation(value: object | symbol | unknown[]): string type RefValue = T extends (value: infer V) => unknown ? V : T declare function checkRef( ref: T | ((value: T) => unknown) | null, element: RefValue, ): Ref /* eslint-disable @typescript-eslint/no-empty-interface */ declare module '@vue/runtime-core' { export interface GlobalComponents {} } declare module '@vue/runtime-dom' { export interface GlobalComponents {} } declare module 'vue' { export interface GlobalComponents {} } declare function resolveComponent< GlobalComponents, IntrinsicElements, T extends {}, A, B, C, >( globalComponents: GlobalComponents, elements: IntrinsicElements, context: T, id: A, usedName?: B, pascalName?: C, ): true extends IsNotComponent ? B extends keyof KnownKeys ? T[B] : C extends keyof KnownKeys ? T[C] : B extends keyof KnownKeys ? GlobalComponents[B] : C extends keyof KnownKeys ? GlobalComponents[C] : B extends keyof KnownKeys ? IntrinsicElements[B] : C extends keyof KnownKeys ? IntrinsicElements[C] : A : A type IsNotComponent = true extends IsStrictlyAny ? true : T extends null | undefined | never ? true : false type IsStrictlyAny = (T extends never ? true : false) extends false ? false : true /* eslint-disable @typescript-eslint/no-empty-interface */ declare module '@vue/runtime-core' { interface GlobalDirectives {} } declare function resolveDirective( localRegisteredDirectives: T, directiveName: A, directiveNameInCamelCase?: B, ): A extends keyof KnownKeys ? T[A] : B extends keyof KnownKeys ? T[B] : A extends keyof KnownKeys ? GlobalDirectives[A] : B extends keyof KnownKeys ? GlobalDirectives[B] : never type ElementType = E extends string ? E extends keyof KnownKeys ? HTMLElementTagNameMap[E] : E extends keyof KnownKeys ? SVGElementTagNameMap[E] : never : E declare function getElementType(tagNameOrComponent: T): ElementType declare function renderList( source: T[], handler: (value: T, index: number) => R, ): R[] declare function renderList, R>( source: T, handler: (value: TupleToUnion, index: number) => R, ): R[] declare function renderList( source: Iterable, handler: (value: T, index: number) => R, ): R declare function renderList( source: T, handler: (value: T[K], key: K, index: number) => R, ): R[] declare function renderList( source: string, handler: (value: string, index: number) => R, ): R[] declare function renderList( source: number, handler: (value: number, index: number) => R, ): R[] type Fallback = T extends undefined ? F : T type SlotProps = T extends ( ...args: unknown[] ) => unknown ? Fallback[0], {}> : {} // -- renderSlot -- declare function renderSlot< S extends Readonly<{ [name: string]: Slot | undefined }>, K extends keyof S >(source: S, name: K, props: SlotProps): any type InternalSlots = { [K in keyof T]: (props: T[K]) => VNodeChild } type Slots = [T] extends [never] ? Record : InternalSlots> type FirstParameter = T extends ( arg: infer P, ...others: unknown[] ) => unknown ? P : undefined type GetSlotProps = FirstParameter< N extends keyof SlotsFrom ? SlotsFrom[N] : () => void > type SlotsFrom = T extends new (...args: any[]) => any ? InstanceType extends { $slots: infer S } ? S : {} : {} declare function checkSlots( component: T, slots: Partial>, ): typeof slots /* eslint-disable @typescript-eslint/prefer-function-type */ type EmitsToProps = T extends string[] ? Partial<{ [K in string & EventName]: (...args: any[]) => any }> : T extends ObjectEmitsOptions ? Partial<{ [K in string & EventName>]: K extends `on${infer C}` ? T[Uncapitalize] extends (...args: infer A) => any ? (...args: A) => any : () => any : never }> : {} // // Quick Test: Event Names // declare namespace T1 { // type T = EmitsToProps<['a', 'b']> // type T1 = T['onA'] // type T2 = T['onB'] // } // // Quick Test: Handler Types // declare namespace T2 { // type T = EmitsToProps<{ a(value: string): void; b(value: number): void }> // type T1 = T['onA'] // type T2 = T['onB'] // } type Handler = { [P in string & K]: (...args: A) => R } /** * Support upto 10 overloads. */ type EmitTypeToEmits = F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 (event: infer E5, ...args: infer A5): infer R5 (event: infer E6, ...args: infer A6): infer R6 (event: infer E7, ...args: infer A7): infer R7 (event: infer E8, ...args: infer A8): infer R8 (event: infer E9, ...args: infer A9): infer R9 } ? Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 (event: infer E5, ...args: infer A5): infer R5 (event: infer E6, ...args: infer A6): infer R6 (event: infer E7, ...args: infer A7): infer R7 (event: infer E8, ...args: infer A8): infer R8 } ? Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 (event: infer E5, ...args: infer A5): infer R5 (event: infer E6, ...args: infer A6): infer R6 (event: infer E7, ...args: infer A7): infer R7 } ? Handler & Handler & Handler & Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 (event: infer E5, ...args: infer A5): infer R5 (event: infer E6, ...args: infer A6): infer R6 } ? Handler & Handler & Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 (event: infer E5, ...args: infer A5): infer R5 } ? Handler & Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 (event: infer E4, ...args: infer A4): infer R4 } ? Handler & Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 (event: infer E3, ...args: infer A3): infer R3 } ? Handler & Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 (event: infer E2, ...args: infer A2): infer R2 } ? Handler & Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 (event: infer E1, ...args: infer A1): infer R1 } ? Handler & Handler : F extends { (event: infer E0, ...args: infer A0): infer R0 } ? Handler : {} /* eslint-disable @typescript-eslint/no-empty-interface */ type version = '3.x' declare namespace internal { export { first, flat, union, merge, record, getNameOption, unref } export { resolveComponent, resolveDirective, getElementType } export { renderList, renderSlot, Slots, GetSlotProps } export { defineComponent } export { checkInterpolation, checkRef, checkSlots, checkDirective, checkOnDirective, checkHTMLElementType, checkModelDirective, } export { PropsOf, SlotsFrom, MergeAttrs, EmitsToProps, EmitTypeToEmits } } export { internal, version }; //# sourceMappingURL=3.x.vuedx_runtime.d.ts.map