import { TableAPI } from "../../types/TableAPI"; import { SimpleTableConfig } from "../../types/SimpleTableConfig"; import HeaderObject from "../../types/HeaderObject"; import Row from "../../types/Row"; import { CustomTheme } from "../../types/CustomTheme"; import RowState from "../../types/RowState"; import { SelectionManager } from "../../managers/SelectionManager"; import { SortManager } from "../../managers/SortManager"; import { FilterManager } from "../../managers/FilterManager"; import { FlattenRowsResult } from "../../utils/rowFlattening"; import { ProcessRowsResult } from "../../utils/rowProcessing"; export interface TableAPIContext { config: SimpleTableConfig; localRows: Row[]; effectiveHeaders: HeaderObject[]; headers: HeaderObject[]; essentialAccessors: Set; customTheme: CustomTheme; currentPage: number; /** Returns current page from live state (use this in API getCurrentPage so it stays correct after setPage). */ getCurrentPage: () => number; expandedRows: Map; collapsedRows: Map; expandedDepths: Set; clearExpandedRows: () => void; clearCollapsedRows: () => void; rowStateMap: Map; headerRegistry: Map; cellRegistry?: Map void; }>; columnEditorOpen: boolean; expandedDepthsManager: any; selectionManager: SelectionManager | null; sortManager: SortManager | null; filterManager: FilterManager | null; getCachedFlattenResult?: () => FlattenRowsResult | null; getCachedProcessedResult?: () => ProcessRowsResult | null; onRender: () => void; setHeaders: (headers: HeaderObject[]) => void; setCurrentPage: (page: number) => void; setColumnEditorOpen: (open: boolean) => void; } export declare class TableAPIImpl { static createAPI(context: TableAPIContext): TableAPI; }