import type { PropType, Plugin, Ref, VNode, SlotsType } 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 type ElementOf = T extends (infer E)[] ? E : T extends readonly (infer F)[] ? F : never; /** * https://github.com/Microsoft/TypeScript/issues/29729 */ export type LiteralUnion = T | (string & {}); export type Data = Record; export type Key = string | number; 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 type VueNode = VNodeChildAtom | VNodeChildAtom[] | VNode; export declare const withInstall: (comp: T) => T & Plugin; export type MaybeRef = T | Ref; export declare function eventType(): { type: PropType; }; export declare function objectType(defaultVal?: T): { type: PropType; default: T; }; export declare function booleanType(defaultVal?: boolean): { type: BooleanConstructor; default: boolean; }; export declare function functionType {}>(defaultVal?: T): { type: PropType; default: T; }; export declare function anyType(defaultVal?: T, required?: boolean): { default: T; type: PropType; }; export declare function vNodeType(): { type: PropType; }; export declare function arrayType(defaultVal?: T): { type: PropType; default: T; }; export declare function stringType(defaultVal?: T): { type: PropType; default: T; }; export declare function someType(types?: any[], defaultVal?: T): { type: PropType; default: T; }; export type CustomSlotsType = SlotsType; export type AnyObject = Record; export {};