import { ObservableMap } from 'mobx';
import { AxiosRequestConfig } from 'axios';
import Field, { FieldProps, Fields } from './Field';
import { DataToJSON, FieldType } from './enum';
import DataSet, { DataSetProps } from './DataSet';
import Record, { RecordDynamicProps } from './Record';
import Group from './Group';
import { SubmitTypes, TransportTypes } from './Transport';
export declare const defaultTextField = "meaning";
export declare const defaultValueField = "value";
export declare function useNormal(dataToJSON: DataToJSON): boolean;
export declare function useAll(dataToJSON: DataToJSON): boolean;
export declare function useSelected(dataToJSON: DataToJSON): boolean;
export declare function useCascade(dataToJSON: DataToJSON): boolean;
export declare function useDirty(dataToJSON: DataToJSON): boolean;
export declare function useDirtyField(dataToJSON: DataToJSON): boolean;
export declare function append(url: string, suffix?: object): string;
export declare function getOrderFields(dataSet: DataSet): Field[];
export declare function processToJSON(value: any, field: Field, record?: Record): any;
export declare function arrayMove<T = Record>(array: T[], from: number, to: number): void;
export declare function processValue(value: any, field?: Field, record?: Record, isCreated?: boolean): any;
export declare function processExportValue(value: any, field?: Field, record?: Record | undefined): any;
/**
 * 实现如果名字是带有属性含义`.`找到能够导出的值
 * @param dataItem 一行数据
 * @param name 对应的fieldname
 * @param isBind 是否是从绑定获取值
 */
export declare function getSplitValue(dataItem: any, name: string, isBind?: boolean): any;
export declare function childrenInfoForDelete(json: {}, children: {
    [key: string]: DataSet;
}): {};
export declare function sortData(data: object[], dataSet: DataSet): object[];
export declare function appendRecords(dataSet: DataSet, appendData: Record[], parent?: Record): void;
export declare function sortTree(records: Record[], orderFields: Field[], deep?: boolean): Record[];
export declare function sliceTree(idField: string, parentField: string, allData: object[], pageSize: number): object[];
export declare function checkParentByInsert({ parent }: DataSet): void;
export declare function getBaseType(type: FieldType): FieldType;
export declare function checkFieldType(value: any, field: Field, record?: Record): boolean;
/**
 * 目前定义为服务端请求的方法
 * @param url 导出地址
 * @param data 导出传递参数
 * @param method 默认post请求
 */
export declare function doExport(url: any, data: any, method?: string): void;
export declare function getChainFieldName(record: Record, fieldName: string): string;
export declare function findBindTargetFields(myField: Field, fields: Fields, deep?: boolean, record?: Record, bindFields?: Map<string, Field>): Field[];
export declare function findBindFields(myField: Field, fields: Fields, deep?: boolean, record?: Record | undefined, bindFields?: Map<string, Field>): Field[];
export declare function findBindField(myField: string, chainFieldName: string, record: Record): Field | undefined;
export declare function findMinOrMaxFields(myField: Field, fields: Fields, record: Record): Field[];
export declare function generateRecordJSONData(array: object[], record: Record, dataToJSON: DataToJSON): void;
export declare function prepareSubmitData(records: Record[], dataToJSON: DataToJSON): [object[], object[], object[]];
export declare function axiosConfigAdapter(type: TransportTypes, dataSet: DataSet, data?: any, params?: any, options?: object): AxiosRequestConfig;
export declare function findRootParent(children: Record): any;
export declare function prepareForSubmit(type: SubmitTypes, data: object[], configs: AxiosRequestConfig[], dataSet: DataSet): object[];
export declare function generateResponseData(item: any, dataKey?: string): object[];
export declare function getRecordValue(record: Record, cb: (record: Record, fieldName: string) => boolean, fieldName?: string | string[]): any;
export declare function processIntlField(name: string, callback: (props: FieldProps) => Field, fieldProps: FieldProps | undefined, dataSet: DataSet): [Field, Map<string, Field> | undefined];
export declare function findBindFieldBy(myField: Field, fields: Fields, prop: string, record?: Record): Field | undefined;
export declare function getLimit(limit: any, record: Record, minOrMax: any, type: FieldType): any;
export declare function adapterDataToJSON(isSelected?: boolean, noCascade?: boolean): DataToJSON | undefined;
export declare function generateData(records: Record[]): {
    dirty: boolean;
    data: object[];
};
export declare function generateJSONData(ds: DataSet, records: Record[]): {
    dirty: boolean;
    data: object[];
};
export declare function getUniqueFieldNames(dataSet: DataSet): string[];
export declare function getUniqueKeysAndPrimaryKey(dataSet: DataSet): string[];
export declare function isDirtyRecord(record: Record): boolean;
export declare function getSpliceRecord(records: Record[], inserts: Record[], fromRecord?: Record): Record | undefined;
export declare function fixAxiosConfig(config: AxiosRequestConfig): AxiosRequestConfig;
export declare function normalizeGroups(groups: string[], hGroups: string[], records: Record[], parentFields?: Map<string | symbol, string>): Group[];
export declare function mergeGroupStates(newGroups: Group[], oldGroups: Group[] | undefined): Group[];
/**
 *
 * @param data 导出需要导出的数据
 * @param excelname 导出表单的名字
 */
export declare function exportExcel(data: any, excelName: any, getXLSX: () => Promise<any>): void;
export declare function getSortedFields(dataSet: DataSet): ObservableMap;
export declare function concurrentPromise(promiseLoaders: {
    getPromise: () => Promise<any>;
}[], cancelFnc: (readyPromiseNumber: number) => boolean): Promise<unknown>;
export declare function treeSelect(dataSet: DataSet, record: Record, selected: Record[]): void;
export declare function treeUnSelect(dataSet: DataSet, record: Record, unSelected: Record[]): void;
export declare function treeSelectParent(dataSet: DataSet, record: Record, selected: Record[]): void;
export declare function treeUnSelectParent(dataSet: DataSet, record: Record, unSelected: Record[]): void;
export declare function exchangeTreeNode(newRecord: Record, oldRecord: Record): Record;
export declare function getIf<T, V>(target: T, propName: string, defaultValue: V | (() => V)): V;
export declare function getIfForMap<T extends Map<string, V>, V>(target: T, propName: string, defaultValue: V | (() => V)): V;
export declare function getRecordDynamicProps<T extends keyof RecordDynamicProps>(record: Record, key: T, defaultValue: NonNullable<ReturnType<NonNullable<RecordDynamicProps[T]>>>): NonNullable<ReturnType<NonNullable<RecordDynamicProps[T]>>>;
export declare function mergeDataSetProps(props: DataSetProps | undefined, dataSetProps?: DataSetProps | ((p: DataSetProps) => DataSetProps)): DataSetProps;
export declare function appendFormData(formData: FormData, data: object): void;
