import type { PropType, VNodeChild, Plugin } 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; } export declare type VueNode = VNodeChild | JSX.Element; export declare const withInstall: (comp: T) => T & Plugin; export {};