import { Directive, EmitsOptions, EmitsToProps, Ref, SetupContext, SlotsType, VNode, VaporComponentInstance } from "vue"; //#region src/types.d.ts type VaporBlock = VaporComponentInstance extends { block: infer B; } ? B : never; declare module 'vue' { interface VaporComponentInstance {} interface RenderResultExtensions { render: RenderResult; } } export type RenderResult = T | VNode | RenderResult[]; export type DirectiveArgs = T extends Directive ? Value | [Value] | [Value, Argument] | [Value, Array] | [Value, Argument, Array] : unknown; type NodeChildAtom = T | VNode | string | number | boolean | null | undefined | void; export type NodeArrayChildren = Array | NodeChildAtom>; export type NodeChild = NodeChildAtom | NodeArrayChildren; export type NodeRef = ((ref: T | null, refs: Record) => void) | Ref | string; type ResolveSlots = { readonly [Key in keyof Slots]?: Slots[Key] extends ((...args: infer Args) => VNode | VNode[]) ? (...args: Args) => NodeChild : Slots[Key]; }; export type SlotsToProps = Record, Slots = ResolveSlots['slots'] : RawSlots>> = string extends keyof Slots ? {} : [keyof Slots] extends [never] ? {} : { readonly 'v-slots'?: ('default' extends keyof Slots ? Slots['default'] | Slots : Slots) | NoInfer; }; declare const exposedType: unique symbol; export type ExtractExposed = typeof exposedType extends keyof Props ? Exclude : Default; export type ExposedToProps> = string extends keyof T ? {} : [keyof T] extends [never] ? {} : { readonly [exposedType]?: T; readonly ref?: NodeRef; }; export type EmitFnToProps = T extends ((event: infer Event extends string, ...args: infer Args) => any) ? string extends Event ? {} : { readonly [K in Event as `on${Capitalize}` extends ExcludeKeys ? never : `on${Capitalize}`]?: (...args: Args) => any; } : {}; export type EmitFnToEmits = Emit extends ((event: infer Event extends string, ...args: infer Args) => any) ? string extends Event ? {} : { [K in Event]: (...args: Args) => any; } : {}; export type SetupContextToProps = {}, Exposed extends Record = {}> = EmitsToProps & SlotsToProps & ExposedToProps; export type HomomorphicOmit = { [P in keyof T as P extends K ? never : P]: T[P]; }; type NoIndexSignature = { [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K]; }; export type HasOwnKey = K extends keyof T ? string extends keyof T ? K extends keyof NoIndexSignature ? true : false : true : false; //#endregion