import { IRowModel } from './iRowModel'; import { RowNodeTransaction } from './rowNodeTransaction'; import { RowDataTransaction } from './rowDataTransaction'; import { RowNode } from '../entities/rowNode'; import { RowHighlightPosition } from '../interfaces/iRowNode'; import { ChangedPath } from '../utils/changedPath'; export type ClientSideRowModelStep = `${ClientSideRowModelSteps}`; export declare enum ClientSideRowModelSteps { EVERYTHING = "group", FILTER = "filter", SORT = "sort", MAP = "map", AGGREGATE = "aggregate", FILTER_AGGREGATES = "filter_aggregates", PIVOT = "pivot", NOTHING = "nothing" } export interface IClientSideRowModel extends IRowModel { onRowGroupOpened(): void; updateRowData(rowDataTran: RowDataTransaction, rowNodeOrder?: { [id: string]: number; } | null): RowNodeTransaction | null; setRowData(rowData: any[]): void; refreshModel(paramsOrStep: RefreshModelParams | ClientSideRowModelStep | undefined): void; expandOrCollapseAll(expand: boolean): void; forEachLeafNode(callback: (node: RowNode, index: number) => void): void; forEachNodeAfterFilter(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void; forEachNodeAfterFilterAndSort(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void; forEachPivotNode(callback: (node: RowNode, index: number) => void, includeFooterNodes?: boolean): void; resetRowHeights(): void; onRowHeightChanged(): void; onRowHeightChangedDebounced(): void; batchUpdateRowData(rowDataTransaction: RowDataTransaction, callback?: (res: RowNodeTransaction) => void): void; flushAsyncTransactions(): void; getRootNode(): RowNode; doAggregate(changedPath?: ChangedPath): void; getTopLevelNodes(): RowNode[] | null; ensureRowsAtPixel(rowNode: RowNode[], pixel: number, increment: number): boolean; highlightRowAtPixel(rowNode: RowNode | null, pixel?: number): void; getHighlightPosition(pixel: number, rowNode?: RowNode): RowHighlightPosition; getLastHighlightedRowNode(): RowNode | null; isRowDataLoaded(): boolean; } export interface RefreshModelParams { step: ClientSideRowModelSteps; keepRenderedRows?: boolean; animate?: boolean; keepEditingRows?: boolean; rowNodeTransactions?: RowNodeTransaction[]; rowNodeOrder?: { [id: string]: number; }; newData?: boolean; afterColumnsChanged?: boolean; keepUndoRedoStack?: boolean; }