import type { Binder } from './Binder.js'; import type { BinderNode } from './BinderNode.js'; import { AbstractModel } from './Models.js'; export interface ValueError { property: string | AbstractModel; message: string; value: T; validator: Validator; } export interface ValidationResult { property: string | AbstractModel; message?: string; } export declare class ValidationError extends Error { errors: ReadonlyArray>; constructor(errors: ReadonlyArray>); } export declare type ValidationCallback = (value: T, binder: Binder>) => boolean | ValidationResult | ReadonlyArray | Promise>; export declare type InterpolateMessageCallback = (message: string, validator: Validator, binderNode: BinderNode>) => string; export interface Validator { validate: ValidationCallback; message: string; impliesRequired?: boolean; } export declare class ServerValidator implements Validator { message: string; constructor(message: string); validate: () => boolean; } export declare function runValidator(model: AbstractModel, validator: Validator, interpolateMessageCallback?: InterpolateMessageCallback): Promise>>; //# sourceMappingURL=Validation.d.ts.map