import { ObservableMap } from 'mobx';
import { AxiosInstance, AxiosRequestConfig } from 'axios';
import DataSet, { DataSetProps } from '../data-set/DataSet';
import Field from '../data-set/Field';
import Record from '../data-set/Record';
import { LovConfig } from '../interface';
import { TransportHookProps } from '../data-set/Transport';
import PromiseMerger from '../promise-merger';
declare type callbackArgs = [(codes: string[]) => AxiosRequestConfig, Field | undefined];
export declare class LovCodeStore {
    lovCodes: ObservableMap<string, LovConfig>;
    pendings: {};
    constructor();
    batchCallback: (codes: string[], args: callbackArgs) => Promise<{
        [key: string]: LovConfig;
    }>;
    merger: PromiseMerger<LovConfig, callbackArgs, undefined>;
    getAxios(field?: Field): AxiosInstance;
    init(): void;
    getDefineAxiosConfig(code: string, field?: Field, record?: Record): AxiosRequestConfig | undefined;
    getConfig(code: string): LovConfig | undefined;
    fetchDefineInBatch: (code: string, lovDefineBatchAxiosConfig: (codes: string[]) => AxiosRequestConfig, field?: Field | undefined) => Promise<LovConfig | undefined>;
    fetchConfig(code: string, field?: Field, record?: Record): Promise<LovConfig | undefined>;
    getLovDataSet(code: string, field?: Field, dataSetProps?: DataSetProps | ((p: DataSetProps) => DataSetProps), record?: Record): DataSet | undefined;
    getConfigUrl(code: string, field?: Field, record?: Record | undefined): string;
    getQueryAxiosConfig(code: string, field?: Field, config?: LovConfig, record?: Record | undefined): (props: TransportHookProps) => {
        url: string;
        method: import("axios").Method;
        baseURL?: string | undefined;
        transformRequest?: import("axios").AxiosTransformer | import("axios").AxiosTransformer[] | undefined;
        transformResponse?: import("axios").AxiosTransformer | import("axios").AxiosTransformer[] | undefined;
        headers?: any;
        params?: any;
        paramsSerializer?: ((params: any) => string) | undefined;
        data?: any;
        timeout?: number | undefined;
        timeoutErrorMessage?: string | undefined;
        withCredentials?: boolean | undefined;
        adapter?: import("axios").AxiosAdapter | undefined;
        auth?: import("axios").AxiosBasicCredentials | undefined;
        responseType?: "text" | "document" | "blob" | "arraybuffer" | "json" | "stream" | undefined;
        xsrfCookieName?: string | undefined;
        xsrfHeaderName?: string | undefined;
        onUploadProgress?: ((progressEvent: any) => void) | undefined;
        onDownloadProgress?: ((progressEvent: any) => void) | undefined;
        maxContentLength?: number | undefined;
        validateStatus?: ((status: number) => boolean) | undefined;
        maxRedirects?: number | undefined;
        socketPath?: string | null | undefined;
        httpAgent?: any;
        httpsAgent?: any;
        proxy?: false | import("axios").AxiosProxyConfig | undefined;
        cancelToken?: import("axios").CancelToken | undefined;
    };
    getQueryUrl(code: string, field: Field | undefined, props: TransportHookProps, record?: Record | undefined): string;
    clearCache(codes?: string[]): void;
}
declare const _default: LovCodeStore;
export default _default;
