import type { DimensionSort, RowAggregated, RowLeaf, RowNode, RowSelectionState, RowSource, SortFn } from "@1771technologies/lytenyte-shared"; export interface UseTreeDataSourceParams { readonly topData?: (RowLeaf | RowAggregated)[]; readonly botData?: (RowLeaf | RowAggregated)[]; readonly data: Record; readonly idFn?: (path: string[], data: any) => string; readonly rowRootFn?: (x: object) => [key: string, child: object][]; readonly rowValueFn?: (x: any, parent: any, key: string) => any; readonly rowChildrenFn?: (x: any, parent: any, key: string) => [key: string, child: object][]; readonly rowGroupExpansions?: { [rowId: string]: boolean | undefined; }; readonly rowGroupDefaultExpansion?: boolean | number; readonly onRowGroupExpansionChange?: (state: Record) => void; readonly sort?: SortFn | DimensionSort[] | null; readonly filter?: ((data: any) => boolean) | null; readonly rowsIsolatedSelection?: boolean; readonly rowSelectKey?: unknown[]; readonly rowSelection?: RowSelectionState; readonly rowSelectionIdUniverseAdditions?: { readonly id: string; root: boolean; }[]; readonly rowSelectionIdUniverseSubtractions?: Set; readonly onRowSelectionChange?: (state: RowSelectionState) => void; readonly onRowDataChange?: (params: { readonly changes: { next: any; prev: any; parent: any; key: string; path: string[]; }[]; readonly top: Map; readonly bottom: Map; }) => void; } export interface RowSourceTree extends RowSource { readonly rowUpdate: (rows: Map, T>) => void; } export declare function useTreeDataSource(p: UseTreeDataSourceParams): RowSource;