import { SnapshotIn } from 'mobx-state-tree';
import { Api, Payload, fetchOptions } from '../types';
export declare const FormItemStore: import("mobx-state-tree").IModelType<import("mobx-state-tree").ModelPropertiesDeclarationToProperties<{
    identifier: import("mobx-state-tree").ISimpleType<string>;
    isFocused: false;
    type: string;
    unique: false;
    loading: false;
    required: false;
    rules: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>>;
    messages: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>>;
    errorData: import("mobx-state-tree").IOptionalIComplexType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<import("mobx-state-tree").ModelPropertiesDeclarationToProperties<{
        msg: string;
        tag: string;
    }>, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>>;
    name: import("mobx-state-tree").ISimpleType<string>;
    id: string;
    unsetValueOnInvisible: false;
    validated: false;
    validating: false;
    multiple: false;
    delimiter: string;
    valueField: string;
    labelField: string;
    joinValues: true;
    extractValue: false;
    options: import("mobx-state-tree").IOptionalIComplexType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>>;
    expressionsInOptions: false;
    selectedOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>>;
    filteredOptions: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>>;
    dialogSchema: import("mobx-state-tree").IType<any, any, any>;
    dialogOpen: false;
    dialogData: import("mobx-state-tree").IType<any, any, any>;
}>, {
    readonly form: any;
    readonly value: any;
    readonly prinstine: any;
    readonly errors: string[];
    readonly valid: boolean;
    readonly lastSelectValue: string;
    getSelectedOptions: (value?: any) => any[];
} & {
    focus: () => void;
    blur: () => void;
    config: ({ required, unique, value, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id }: {
        required?: any;
        unique?: any;
        value?: any;
        rules?: string | {
            [propName: string]: any;
        } | undefined;
        messages?: {
            [propName: string]: string;
        } | undefined;
        multiple?: boolean | undefined;
        delimiter?: string | undefined;
        valueField?: string | undefined;
        labelField?: string | undefined;
        joinValues?: boolean | undefined;
        extractValue?: boolean | undefined;
        type?: string | undefined;
        id?: string | undefined;
    }) => void;
    changeValue: (value: any, isPrintine?: boolean) => void;
    validate: (hook?: any) => Promise<boolean>;
    setError: (msg: string | string[], tag?: string) => void;
    addError: (msg: string | string[], tag?: string) => void;
    clearError: (tag?: string | undefined) => void;
    setOptions: (options: object[]) => void;
    loadOptions: (api: Api, data?: object | undefined, options?: fetchOptions | undefined, clearValue?: boolean | undefined, onChange?: ((value: any) => void) | undefined) => Promise<Payload | null>;
    syncOptions: (originOptions?: any[] | undefined) => void;
    setLoading: (value: boolean) => void;
    setSubStore: (store: any) => void;
    reset: () => void;
    openDialog: (schema: any, data?: any, callback?: ((ret?: any) => void) | undefined) => void;
    closeDialog: (result?: any) => void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export declare type IFormItemStore = typeof FormItemStore.Type;
export declare type SFormItemStore = SnapshotIn<typeof FormItemStore>;
