import type { TableRowEntryId } from "../root/DataGridTable.types.js";
type CollectTableRowEntriesArgs<T> = {
    items: T[];
    getRowId?: (rowData: T, index: number) => TableRowEntryId;
    getRows?: (rowData: T) => T[];
    isRowExpandable?: (rowData: T) => boolean;
};
interface ItemDetail<T> {
    id: TableRowEntryId;
    rowData: T;
    level: number;
    parentId: TableRowEntryId | null;
    children: readonly TableRowEntryId[];
}
type CollectTableRowEntriesReturn<T> = {
    itemDetails: Map<TableRowEntryId, ItemDetail<T>>;
    rootRowIds: TableRowEntryId[];
    /**
     * Direct child ids for each row, used to traverse nested selection groups
     * without storing every descendant list on each ancestor.
     */
    childRowIdsById: Map<TableRowEntryId, TableRowEntryId[]>;
};
declare function collectTableRowEntries<T>({ items, getRowId, getRows, isRowExpandable, }: CollectTableRowEntriesArgs<T>): CollectTableRowEntriesReturn<T>;
export { collectTableRowEntries };
export type { CollectTableRowEntriesArgs, CollectTableRowEntriesReturn, ItemDetail, };
