export declare type None = { _name: 'None'; }; export declare type Bool = { _name: 'Boolean'; }; export declare type Num = { _name: 'Number'; _constraints: { _min?: number; _max?: number; _step?: number; }; }; export declare type Str = { _name: 'String'; }; export declare type Arr = { _name: 'Array'; _subType: 'Number' | 'String'; }; export declare type Union = { _name: 'Union'; _options: any[]; }; export declare type Tuple = { _name: 'Tuple'; _subTypes: Type[]; }; export declare type Type = None | Bool | Num | Str | Union | Arr | Tuple; export declare const createType: { none: () => None; boolean: () => Bool; string: () => Str; number: ({ step, min, max }?: { step?: number | undefined; min?: number | undefined; max?: number | undefined; }) => Num; union: (options: any[]) => Union; array: (_type: "String" | "Number") => Arr; tuple: (types: Type[]) => Tuple; }; export declare type TypesWithFunctions = { _default: any; none: any; boolean: any; string: any; number: (_constraints: Num["_constraints"]) => any; union: (_options: Union["_options"]) => any; array: (_subType: Arr["_subType"]) => any; tuple: (_subTypes: Tuple["_subTypes"]) => any; }; declare type MakeDoAtType = (typesWithFunctions: TypesWithFunctions) => (_type: Type) => any; export declare const makeDoAtType: MakeDoAtType; export declare const makeValidation: (_type: Type) => any; export {};