import TableTreeStore, { SwapParams } from '@tdesign/common-js/table/tree-store';
import type { PrimaryTableCol, TableRowData, TableRowState, TableRowValue, TdEnhancedTableProps } from '../type';
export interface UseSwapParams<T> extends SwapParams<T> {
    data: T[];
}
export default function useTreeData(props: TdEnhancedTableProps): {
    store: TableTreeStore<import("@common/js/table/types").TableRowData>;
    rowDataKeys: {
        rowKey: string;
        childrenKey: string;
    };
    dataSource: TableRowData[];
    swapData: (params: UseSwapParams<TableRowData>) => void;
    setData: <T>(key: TableRowValue, newRowData: T) => void;
    getData: (key: TableRowValue) => TableRowState;
    remove: (key: TableRowValue) => void;
    removeChildren: (key: TableRowValue) => void;
    appendTo: <T>(key: TableRowValue, newData: T | T[]) => void;
    insertAfter: <T>(rowValue: TableRowValue, newData: T) => void;
    insertBefore: <T>(rowValue: TableRowValue, newData: T) => void;
    formatTreeColumn: (col: PrimaryTableCol) => PrimaryTableCol;
    toggleExpandData: (p: {
        row: TableRowData;
        rowIndex: number;
    }, trigger?: "expand-fold-icon" | "row-click") => void;
    expandAll: (type?: "expand-all" | "default-expand-all", list?: TableRowData[]) => void;
    foldAll: () => void;
    getTreeNode: () => import("@common/js/table/types").TableRowData[];
    resetData: (data: TableRowData[]) => void;
    getTreeExpandedRow: (type?: "unique" | "data" | "all") => any[];
    onExpandFoldIconClick: (p: {
        row: TableRowData;
        rowIndex: number;
    }, trigger?: "expand-fold-icon" | "row-click") => void;
};
export type UseTreeDataReturnType = ReturnType<typeof useTreeData>;
