import HeaderObject, { Accessor } from "../types/HeaderObject"; import Row from "../types/Row"; import RowState from "../types/RowState"; import TableRow from "../types/TableRow"; import { HeightOffsets } from "../utils/infiniteScrollUtils"; import { CustomTheme } from "../types/CustomTheme"; import { GetRowId } from "../types/GetRowId"; export interface RowManagerConfig { rows: Row[]; headers: HeaderObject[]; rowGrouping?: Accessor[]; getRowId?: GetRowId; rowHeight: number; headerHeight: number; customTheme: CustomTheme; hasLoadingRenderer: boolean; hasErrorRenderer: boolean; hasEmptyRenderer: boolean; } export interface RowManagerState { expandedRows: Map; collapsedRows: Map; expandedDepths: Set; rowStateMap: Map; aggregatedRows: Row[]; flattenedRows: TableRow[]; heightOffsets: HeightOffsets; paginatableRows: TableRow[]; parentEndPositions: number[]; } type StateChangeCallback = (state: RowManagerState) => void; export declare class RowManager { private config; private state; private subscribers; constructor(config: RowManagerConfig); private getAllAggregationHeaders; private calculateAggregation; private computeAggregatedRows; private computeFlattenedRows; updateConfig(config: Partial): void; subscribe(callback: StateChangeCallback): () => void; private notifySubscribers; setExpandedRows(expandedRows: Map): void; setCollapsedRows(collapsedRows: Map): void; setExpandedDepths(expandedDepths: Set): void; setRowStateMap(rowStateMap: Map): void; getState(): RowManagerState; getAggregatedRows(): Row[]; getFlattenedRows(): TableRow[]; getHeightOffsets(): HeightOffsets; getPaginatableRows(): TableRow[]; getParentEndPositions(): number[]; destroy(): void; } export {};