import Schema from 'async-validator';
import { SyntheticEvent } from 'react';
import { FormStoreInterface, ItemStoreInterface, ItemStoreProps, SubmitType, ErrorsType, FormStoreProps, ItemStores, ErrorType, Rules, ErrorMessage, Parse, Format, OnChangeContext, CheckResult } from './interface';
export declare class ItemStore<U = any, T = {}> implements ItemStoreInterface<U, T> {
    key: keyof T;
    formStore: FormStoreInterface<T>;
    defaultValue: U | undefined;
    onChangeContext: OnChangeContext;
    isChange: boolean;
    source: U | undefined;
    err: ErrorType;
    verifying: boolean;
    unionErr: {
        [key: string]: ErrorMessage;
    };
    get errors(): ErrorType;
    get value(): U | undefined;
    get checkResult(): CheckResult;
    rules?: Rules;
    format?: Format<U>;
    schema?: Schema;
    parse?: Parse<U>;
    constructor(props: ItemStoreProps<U, T>);
    setProps: (props: Omit<ItemStoreProps<U, T>, 'key' | 'formStore'>) => void;
    setVerifying: (Verifying: boolean) => void;
    setUnionErr: (props: {
        [key: string]: ErrorMessage;
    }) => void;
    delUnionErr: (keys: string[]) => void;
    setOnChangeContext: (context?: OnChangeContext) => void;
    clearOnChangeContext: () => void;
    onChange: (value: U | Event | SyntheticEvent | undefined, ...args: any) => void;
    setDefaultValue: (value: U | undefined) => void;
    reset: () => void;
    validate: (...args: any[]) => import("mobx/dist/internal").CancellablePromise<ErrorMessage[]>;
    setRules: (rules: Rules | undefined) => void;
    setParse: (parse?: Parse<U>) => void;
    setFormat: (format?: Format<U>) => void;
}
export declare type submitReduceType<T> = [T, ErrorsType<T>];
declare class FormStore<T> implements FormStoreInterface<T> {
    itemStores: ItemStores<T>;
    disabled: boolean;
    isChange: boolean;
    validateOnlyFirst: boolean;
    setDisabled: (disabled: boolean) => void;
    onChange?(key: keyof T, value: any, original: any, originalOtherArgs: any): void;
    constructor(props: FormStoreProps<T>);
    unionValidatorDict: {
        [P in keyof T]?: (() => void)[];
    };
    get errors(): ErrorType;
    setChangeState: (isChange: boolean) => void;
    addItemStore: <U extends ItemStoreInterface<T[keyof T], T>>(component: U) => boolean;
    removeItemStore: <U extends ItemStoreInterface<T[keyof T], T>>(component: U) => boolean;
    submit: SubmitType<T>;
    reset: () => void;
    getValue: <U extends T[keyof T]>(key: keyof T) => U;
    getValues: <U extends T = T>(keys?: (keyof T)[]) => Partial<U>;
    setValue: (key: keyof T, value?: T[keyof T], onChangeContext?: OnChangeContext) => void;
    setValues: (props: Partial<T>, onChangeContext?: OnChangeContext) => void;
    setAllValues: (props: Partial<T>, onChangeContext?: OnChangeContext) => void;
    validate: (rootId?: string) => Promise<ErrorsType<T>>;
    validateValue: (key: keyof T, rootId?: string) => Promise<ErrorMessage[]>;
    validateValues: <U extends ErrorsType<T> = ErrorsType<T>>(keys: (keyof T)[], rootId?: string) => Promise<Partial<U>>;
}
export default FormStore;
