export interface ValidationError { message: string; path: string; children: ValidationError[] | null; } export interface ValidationContext { value: any; path: string[]; rootValue: any; } export interface CreateValidatorOptions { validate: (value: any, ctx: ValidationContext) => null | ValidationError; } export interface Validator { validate: (value: any, ctx?: ValidationContext) => null | ValidationError; isValid: (value: any) => value is ValidValue; } export declare function findFirstError(getValidator: (index: number) => Validator, getValue: (index: number) => any, getContext: (index: number) => ValidationContext, length: number): { error: ValidationError | null; index: number; }; export declare function getFirstErrors(getValidator: (index: number) => Validator, getValue: (index: number) => any, getContext: (index: number) => ValidationContext, length: number): ValidationError[]; /** * Don't use ${value} inside message when value is invalid * @param options */ export declare function createValidator(options: CreateValidatorOptions): Validator; export declare function validate(validator: Validator, value: any): ValidationError | null; export declare function getCurrentPath(ctx: ValidationContext): string; export interface ValidationRef { (ctx: ValidationContext): any; } export declare function ref(path: string[]): ValidationRef;