import HeaderObject, { Accessor } from "../types/HeaderObject"; import Row from "../types/Row"; import SortColumn, { SortDirection } from "../types/SortColumn"; import { TableFilterState } from "../types/FilterTypes"; import { ColumnVisibilityState } from "../types/ColumnVisibilityTypes"; import { CustomTheme } from "../types/CustomTheme"; import { GetRowId } from "../types/GetRowId"; import { SortManager } from "./SortManager"; import { FilterManager } from "./FilterManager"; import { RowManager } from "./RowManager"; import { ColumnManager } from "./ColumnManager"; import { DimensionManager } from "./DimensionManager"; import { ScrollManager } from "./ScrollManager"; import { SelectionManager } from "./SelectionManager"; export interface TableManagerConfig { headers: HeaderObject[]; rows: Row[]; rowHeight: number; headerHeight?: number; customTheme: CustomTheme; externalSortHandling?: boolean; externalFilterHandling?: boolean; rowGrouping?: Accessor[]; getRowId?: GetRowId; selectableCells?: boolean; selectableColumns?: boolean; enableRowSelection?: boolean; copyHeadersToClipboard?: boolean; height?: string | number; maxHeight?: string | number; initialSortColumn?: string; initialSortDirection?: SortDirection; onSortChange?: (sort: SortColumn | null) => void; onFilterChange?: (filters: TableFilterState) => void; onColumnOrderChange?: (newHeaders: HeaderObject[]) => void; onColumnVisibilityChange?: (visibilityState: ColumnVisibilityState) => void; onColumnWidthChange?: (headers: HeaderObject[]) => void; onLoadMore?: () => void; onCellEdit?: (props: any) => void; announce?: (message: string) => void; containerElement?: HTMLElement; cellRegistry?: Map; collapsedHeaders?: Set; } export interface TableManagerState { isReady: boolean; } type StateChangeCallback = () => void; export declare class TableManager { private config; private state; private subscribers; sortManager: SortManager; filterManager: FilterManager; rowManager: RowManager; columnManager: ColumnManager; dimensionManager: DimensionManager; scrollManager: ScrollManager; selectionManager: SelectionManager; constructor(config: TableManagerConfig); private setupManagerSubscriptions; private applyFiltersAndSort; private handleSortChange; private handleFilterChange; updateConfig(config: Partial): void; subscribe(callback: StateChangeCallback): () => void; private notifySubscribers; getState(): TableManagerState; isReady(): boolean; destroy(): void; } export {};