import type { ValidationError } from './errors'; export declare type TypeOf> = Pretty; export declare type Primitives = string | number | boolean; export interface Schema { readonly __type: Type; toString(): string; } declare type Left = { readonly _t: 'left'; readonly value: L; }; declare type Right = { readonly _t: 'right'; readonly value: R; }; export declare type Next = { readonly _t: 'nextNotValid'; readonly value: Output; } | { readonly _t: 'nextValid'; readonly value: Output; }; export declare type Either = Left | Right; export declare type SomeSchema = Schema; export declare type TupleOf = Acc['length'] extends Length ? Acc : TupleOf; export declare type If = T extends Condition ? Y : N; export declare type Pretty = X extends Date ? X : X extends object | readonly unknown[] ? { readonly [K in keyof X]: X[K]; } : X; export declare type KeysOfType = { readonly [key in keyof T]: SelectedType extends T[key] ? key : never; }[keyof T]; declare type PlainObject = { readonly [name: string]: any; }; export declare type Optional = Partial>>; export declare type Required = Omit>; export declare type UndefinedToOptional = T extends PlainObject ? {} extends T ? {} : T extends Date | readonly unknown[] ? T : Pretty & Optional> : T; export {}; //# sourceMappingURL=types.d.ts.map