import InputsValidator from '../validate/InputsValidator';
import type { GlobalProps, FieldsProps, EventField, PropsField, EventChangeValue, NameField, GetArrayValues, value } from '../../types';
import { Reducer } from '../types';
import { GetFields } from '../../types';
export declare class FieldsBuilder<Name extends NameField = any, Item extends PropsField<value, Name> = PropsField<value, Name>, Fields extends Item[] = Item[], FieldsObject = Reducer<Fields>, Partial = false> extends InputsValidator<Name, Item, Fields, FieldsObject> {
    private _ns?;
    get ns(): string | undefined;
    set ns(ns: string | undefined);
    globalProps?: GlobalProps;
    actionsExtra?: object;
    get values(): { [Key in keyof FieldsObject]: FieldsObject[Key]; };
    private paramsLast?;
    constructor(props: FieldsProps<Name, Item, Fields, FieldsObject>);
    private setField;
    private setFields;
    saveData(): void;
    restore(): void;
    restoreLast(): void;
    getValues(): { [Key in keyof FieldsObject]: FieldsObject[Key]; };
    get<FieldName extends keyof FieldsObject>(fieldName: FieldName): (Partial extends true ? undefined : never) | GetFields<FieldsObject>[FieldName];
    getField<FieldName extends keyof FieldsObject>(fieldName: FieldName): (Partial extends true ? undefined : never) | GetFields<FieldsObject>[FieldName];
    onChangeField<Field extends keyof FieldsObject>(event: EventField<FieldsObject[Field], Field>): void;
    onChangeFields<Fields extends keyof FieldsObject>(events: GetArrayValues<{
        [Field in Fields]: EventField<FieldsObject[Field], Field>;
    }>): void;
    changeValue({ name, value }: EventChangeValue): void;
    changeValues(events: EventChangeValue[]): void;
    setValidation(validate: boolean): void;
}
export default FieldsBuilder;
