import type { Key } from '../typing';
import type { ActionTypeText, RecordKey, RowEditableConfig } from '../useEditableArray';
export interface AddLineOptions {
    position?: 'top' | 'bottom';
    recordKey?: Key;
}
export declare function useEditableMap<RecordType>(props: RowEditableConfig<RecordType> & {
    dataSource: RecordType;
    childrenColumnName?: string;
    setDataSource: (dataSource: RecordType) => void;
}): {
    editableKeys: import("vue").ComputedRef<Key[]>;
    setEditableRowKeys: (val: Key[]) => void;
    isEditable: (recordKey: RecordKey) => boolean;
    actionRender: (key: RecordKey, config?: ActionTypeText<RecordType>) => import("../typing").VueNode[];
    startEditable: (recordKey: RecordKey, recordValue?: any) => boolean;
    cancelEditable: (recordKey: RecordKey) => boolean;
};
export type UseEditableMapType = typeof useEditableMap;
export type UseEditableMapUtilType = ReturnType<UseEditableMapType>;
