import { PropType, VNodeChild } from "vue";
export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export declare const tuple: <T extends string[]>(...args: T) => T;
export declare const tupleNum: <T extends number[]>(...args: T) => T;
export declare type VueNode = VNodeChild | JSX.Element;
export declare type LiteralUnion<T extends U, U> = T | (U & Record<string, unknown>);
export declare type Data = Record<string, unknown>;
export declare type Key = string | number;
declare type DefaultFactory<T> = (props: Data) => T | null | undefined;
export interface PropOptions<T = any, D = T> {
    type?: PropType<T> | true | null;
    required?: boolean;
    default?: D | DefaultFactory<D> | null | undefined | Record<string, unknown>;
    validator?(value: unknown): boolean;
}
export {};
