export type ValidationResult = SuccessValidationResult | FailedValidationResult; export type Validator = (value: FieldValue) => ValidationResult; export type AsyncValidator = (value: FieldValue) => Promise>; /** * If validator returns nothing, that means that validation has passed successfully. */ export type SuccessValidationResult = SuccessContextValidationResult | undefined | void; /** * Context-based success validation result, context is used when validation has passed * successfully, but you also want to show some success validation details, like what * validation exactly has passed. */ interface SuccessContextValidationResult { context?: Context; } /** * Failed validation result supports two formats, if validator returns * - string (legacy format) this will be used as validation error * - enhanced failed result contains error message and failed validation context (generic useful information) */ export type FailedValidationResult = string | { errorMessage: string; context?: Context; }; export type ParsedValidationResult = { type: 'success'; context?: Context; } | { type: 'error'; message: string; context?: Context; }; export declare function parseValidation(result: ValidationResult): ParsedValidationResult; export {};