import { PrimaryTableCol, TableRowState, TableRowValue, PrimaryTableCellParams, TableRowData } from '../type';
export declare type TableTreeDataMap<T extends TableRowData = TableRowData> = Map<string | number, TableRowState<T>>;
export interface TableRowModel<T> extends TableRowState<T> {
    setData?: (key: string | number, data: T) => void;
}
export interface KeysType {
    rowKey: string;
    childrenKey: string;
}
declare class TableTreeStore<T extends TableRowData = TableRowData> {
    treeDataMap: TableTreeDataMap<T>;
    constructor();
    initialTreeStore(dataSource: T[], columns: PrimaryTableCol[], keys: KeysType): void;
    toggleExpandData(p: PrimaryTableCellParams<T>, dataSouce: T[], keys: KeysType): T[];
    updateExpandRow(changeRow: TableRowState<T>, dataSource: T[], keys: KeysType): T[];
    getData(key: TableRowValue): TableRowState<T>;
    updateData(key: TableRowValue, newRowData: T, dataSource: T[], keys: KeysType): number;
    remove(key: TableRowValue, dataSource: T[], keys: KeysType): T[];
    appendTo(key: string | number, newData: T, dataSource: T[], keys: KeysType): T[];
}
export default TableTreeStore;
export declare function initialTreeDataMap<T extends TableRowData = TableRowData>(treeDataMap: TableTreeDataMap, dataSource: T[], column: PrimaryTableCol, keys: KeysType): void;
export declare function updateRowExpandLength(treeDataMap: TableTreeDataMap, row: TableRowData, distance: number, type: 'expand' | 'fold' | 'delete' | 'insert', keys: KeysType): void;
export declare function clearRowExpandLength<T>(treeDataMap: TableTreeDataMap, row: T, keys: KeysType): void;
export declare function updateChildrenRowState<T>(treeDataMap: TableTreeDataMap, rowState: TableRowState<T>, expanded: boolean, keys: KeysType): void;
export declare function updateRowData<T extends TableRowData = TableRowData>(data: T[], key: string | number, newData: T, keys: KeysType): void;
export declare function updateRowIndex<T>(treeDataMap: TableTreeDataMap, dataSource: T[], extra: {
    rowKey: string;
    minRowIndex?: number;
    maxRowIndex?: number;
}): void;
