import { FieldsProps } from '../..';
import FieldBuilder from '../builders/FieldBuilder';
import type { ValidationErrors, ValidateInputsValidator, PropsField, NameField, GetArrayValues, GetFields, value, LabelPropsField } from '../../types';
import { Reducer } from '../types';
declare class InputsValidator<Name extends NameField = any, Item extends PropsField<value, Name> = PropsField<value, Name>, Fields extends Item[] = Item[], FieldsObject = Reducer<Fields>> {
    valid: boolean;
    get invalid(): boolean;
    fields: GetArrayValues<GetFields<FieldsObject>>;
    fieldsMap: GetFields<FieldsObject>;
    _validate: ValidateInputsValidator<Name, Item, Fields, FieldsObject>;
    get validate(): ValidateInputsValidator<Name, Item, Fields, FieldsObject> | undefined;
    set validate(validate: ValidateInputsValidator<Name, Item, Fields, FieldsObject> | undefined);
    constructor({ fields, validate, }: Pick<FieldsProps<Name, Item, Fields, FieldsObject>, 'fields' | 'validate'>);
    callbackField(callback: (field: FieldBuilder<value, keyof FieldsObject, LabelPropsField>, cancel: () => void) => void): Promise<GetArrayValues<GetFields<FieldsObject>>>;
    private validityBase;
    validity(): Promise<boolean>;
    hasErrors(params?: {
        setErrors?: boolean;
        throwFirstError?: boolean;
    }): Promise<boolean>;
    addErrors(errors: Record<string, ValidationErrors>): void;
    setErrors(errors?: Record<string, ValidationErrors>): void;
    getErrors(): Promise<{ [P in keyof FieldsObject]?: ValidationErrors | undefined; }>;
}
export default InputsValidator;
