import type React from 'react';
import type { FormInstance } from 'antd/es/form';
import type { ActionTypeText, RecordKey, RowEditableConfig } from '../useEditableArray';
import '../../message/style';
export type AddLineOptions = {
    position?: 'top' | 'bottom';
    recordKey?: React.Key;
};
/**
 * 一个方便的hooks 用于维护编辑的状态
 *
 * @param props
 */
declare function useEditableMap<RecordType>(props: RowEditableConfig<RecordType> & {
    dataSource: RecordType;
    childrenColumnName: string | undefined;
    setDataSource: (dataSource: RecordType) => void;
}): {
    editableKeys: React.Key[];
    setEditableRowKeys: (updater: React.Key[] | ((origin: React.Key[]) => React.Key[]), ignoreDestroy?: boolean | undefined) => void;
    isEditable: (recordKey: RecordKey) => boolean;
    actionRender: (key: RecordKey, form: FormInstance<any>, config?: ActionTypeText<RecordType>) => (import("react/jsx-runtime").JSX.Element | null)[] | React.ReactNode[];
    startEditable: (recordKey: RecordKey) => boolean;
    cancelEditable: (recordKey: RecordKey) => boolean;
};
export type UseEditableMapType = typeof useEditableMap;
export type UseEditableMapUtilType = ReturnType<UseEditableMapType>;
export default useEditableMap;
