import type { ValidationFn as BaseValidatorFn, ValidationResult as BaseValidationResult } from '../../../../../base/validation/validation'; import { validResult } from '../../../../../base/validation/validation'; import { ignoreUndefined } from '../../../../../base/validation/validators'; import * as React from 'react'; export type ValidationError = string | string[]; export type ValidationFn = BaseValidatorFn; export type BooleanValidationFn = BaseValidatorFn; export type ValidationMessageTuple = [BooleanValidationFn, string]; export type Validator = ValidationFn | ValidationMessageTuple | (ValidationFn | ValidationMessageTuple)[]; export type ValidationResult = BaseValidationResult; export type BooleanValidationResult = BaseValidationResult; export declare const valid: typeof validResult; export declare function invalid(): { state: 'invalid'; error: true; }; export declare function invalid(error: E): { state: 'invalid'; error: E; }; export declare class FieldValidationStore { value: T | undefined; validationStarted: boolean; private validationFn; constructor({ value, validator }: { value?: T; validator?: Validator; }); get validator(): ValidationFn | undefined; setValidator(validator: Validator | undefined): void; } export declare const setValue: (store: FieldValidationStore, value: T | undefined) => void; export declare const startValidation: (store: FieldValidationStore) => void; export declare const getResult: (store: FieldValidationStore) => BaseValidationResult; export declare const getError: (store: FieldValidationStore) => ValidationError | undefined; export declare const validateAll: (...stores: (FieldValidationStore | undefined)[]) => boolean; export declare const isValid: (...stores: (FieldValidationStore | undefined)[]) => boolean; type UseFieldValidationProps = { store?: FieldValidationStore name: string | undefined value?: T validator?: Validator }; export declare function useFieldValidation({ store: storeProp, name, value, validator, }: UseFieldValidationProps): FieldValidationStore | undefined; export type WithFieldValidationProps = { children: (props: { store?: FieldValidationStore; }) => React.ReactNode } & UseFieldValidationProps; export declare const WithFieldValidation: (arg: WithFieldValidationProps) => React.ReactNode; export declare function getValidationFn(validator: Validator): ValidationFn; export declare const mapErrorMessage: (boolValidator: BooleanValidationFn, errorMessage: string) => ValidationFn; export declare const anyError: (validators: (ValidationFn | ValidationMessageTuple)[]) => ValidationFn; export declare const ignoreNullValue: typeof ignoreUndefined; export declare const ignoreNullValueInFactory: (validatorFactory: (args: A) => BaseValidatorFn) => (args: A) => BaseValidatorFn; export {};