import { FormState, FieldValidator, FormErrors, FormManagerParams, FormTouches } from '../types';
import StateManipulator from './StateManipulator';
import BaseManager from '../managers/BaseManager';
declare class FormManager<S extends object> {
    name: string;
    protected manager: BaseManager<S>;
    readonly manipulator: StateManipulator<S>;
    protected customValidators: {
        [key: string]: FieldValidator<any>;
    };
    protected validateHandler: FormManagerParams<S>['validate'];
    protected validationSchema: FormManagerParams<S>['validationSchema'];
    protected onSubmit: FormManagerParams<S>['onSubmit'];
    protected onChange: FormManagerParams<S>['onChange'];
    protected resetOnSubmit: FormManagerParams<S>['resetOnSubmit'];
    protected formatState: FormManagerParams<S>['formatState'];
    protected validateOnMount: FormManagerParams<S>['validateOnMount'];
    protected initialState: S;
    protected initialErrors: FormErrors<S>;
    protected initialTouches: FormTouches<S>;
    protected timeouts: number[];
    constructor(props: FormManagerParams<S>);
    set(state: FormState<S>): void;
    get(): FormState<S>;
    exists(): boolean;
    useState<P = FormState<S>>(selector?: (state: FormState<S>) => P, dependencies?: any[]): P;
    watch<P = FormState<S>>(selector: ((state: FormState<S>) => P) | null, handler: (next: P, prev: P) => void): () => void;
    useValue(key: string): any;
    useTouched(key: string): any;
    useError(key: string): any;
    setValues(values: S): void;
    setErrors(errors: FormErrors<S>): void;
    setTouches(touches: FormTouches<S>): void;
    setFieldValue(key: string, newValue: any): FormState<S>;
    setFieldError(key: string, error: string | undefined): void;
    setFieldTouched(key: string, value: boolean): void;
    setFieldFocused(key: string | null): void;
    setIsValid(value: boolean): void;
    setIsSubmitted(value: boolean): void;
    setExistsChanges(value: boolean): void;
    setLoading(value: boolean): void;
    validate(allTouched?: boolean): void;
    addFieldValidator<Value>(key: string, func: FieldValidator<Value>): void;
    removeFieldValidator(key: string): void;
    submit(): Promise<void | Error>;
    reset(getState?: S | ((state: S) => S)): void;
    responseMessage(message: string): void;
    getInitialState(): S;
    renewOnChange(handler: FormManagerParams<S>['onChange']): void;
    renewOnSubmit(handler: FormManagerParams<S>['onSubmit']): void;
    stopTimeouts(): void;
}
export default FormManager;
