import type { PropType, Plugin, Ref, VNode } from 'vue'; export declare const tuple: (...args: T) => T; export declare const tupleNum: (...args: T) => T; /** * https://stackoverflow.com/a/59187769 * Extract the type of an element of an array/tuple without performing indexing */ export declare type ElementOf = T extends (infer E)[] ? E : T extends readonly (infer F)[] ? F : never; /** * https://github.com/Microsoft/TypeScript/issues/29729 */ export declare type LiteralUnion = T | (U & {}); export declare type Data = Record; export declare type Key = string | number; declare type DefaultFactory = (props: Data) => T | null | undefined; export interface PropOptions { type?: PropType | true | null; required?: boolean; default?: D | DefaultFactory | null | undefined | object; validator?(value: unknown): boolean; } declare type VNodeChildAtom = VNode | string | number | boolean | null | undefined | void; export declare type VueNode = VNodeChildAtom | VNodeChildAtom[] | JSX.Element; export declare const withInstall: (comp: T) => T & Plugin; export declare type MaybeRef = T | Ref; export {};