import { type BoundedAxisRange, type ExpandableGridModel, type GridCell, GridRange, type ModelIndex } from '@deephaven/grid'; import type { dh as DhType } from '@deephaven/jsapi-types'; import { Formatter } from '@deephaven/jsapi-utils'; import { type UIRow, type ColumnName } from './CommonTypes'; import IrisGridTableModelTemplate from './IrisGridTableModelTemplate'; import IrisGridModel from './IrisGridModel'; import { type IrisGridThemeType } from './IrisGridTheme'; export interface UITreeRow extends UIRow { isExpanded: boolean; hasChildren: boolean; depth: number; } /** * Check if a row is a UITreeRow * @param row The row to check * @returns True if the row is a UITreeRow and false otherwise */ export declare function isUITreeRow(row: unknown): row is UITreeRow; export declare function isIrisGridTreeTableModel(tableModel: IrisGridModel): tableModel is IrisGridTreeTableModel; declare class IrisGridTreeTableModel extends IrisGridTableModelTemplate implements ExpandableGridModel { /** We keep a virtual column at the front that tracks the "group" that is expanded */ private virtualColumns; private showExtraGroupCol; constructor(dh: typeof DhType, table: DhType.TreeTable, formatter?: Formatter, inputTable?: DhType.InputTable | null, columnAlignmentMap?: Map); get showExtraGroupColumn(): boolean; set showExtraGroupColumn(showExtraGroupCol: boolean); updateVirtualColumns(): void; applyBufferedViewport(viewportTop: number, viewportBottom: number, columns: DhType.Column[]): void; textForCell(x: ModelIndex, y: ModelIndex): string; colorForCell(x: ModelIndex, y: ModelIndex, theme: IrisGridThemeType): string; textAlignForCell(x: ModelIndex, y: ModelIndex): CanvasTextAlign; extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow; snapshot(ranges: GridRange[], includeHeaders?: boolean, formatValue?: (value: unknown, column: DhType.Column) => unknown): Promise; get columns(): DhType.Column[]; get aggregatedColumns(): readonly DhType.Column[]; get groupedColumns(): readonly DhType.Column[]; sourceForCell(column: ModelIndex, row: ModelIndex): GridCell; sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column; /** * Get the index of the grouped column that the virtual group column proxies * for the given cell. */ private virtualSourceColumnIndex; getClearFilterRange(column: ModelIndex): BoundedAxisRange | null; get layoutHints(): DhType.LayoutHints | null | undefined; get hasExpandableRows(): boolean; get isAggregatedColumnsAvailable(): boolean; get isExpandAllAvailable(): boolean; get isChartBuilderAvailable(): boolean; get isOrganizeColumnsAvailable(): boolean; get isSelectDistinctAvailable(): boolean; get isReversible(): boolean; isFilterable(columnIndex: ModelIndex): boolean; isColumnMovable(column: ModelIndex): boolean; isRowExpandable(y: ModelIndex): boolean; isRowExpanded(y: ModelIndex): boolean; setRowExpanded(y: ModelIndex, isExpanded: boolean, expandDescendants?: boolean): void; expandAll(): void; collapseAll(): void; depthForRow(y: ModelIndex): ModelIndex; getCachedColumns: (virtualColumns: readonly DhType.Column[], tableColumns: readonly DhType.Column[]) => DhType.Column[]; getCachedGroupColumns: (virtualColumns: readonly DhType.Column[], tableGroupedColumns: readonly DhType.Column[]) => DhType.Column[]; getCachedFilterableColumnSet: (columns: readonly DhType.Column[], isAggregatedColumnsAvailable: boolean, aggregatedColumns: readonly DhType.Column[], groupedColumns: readonly DhType.Column[], virtualColumns: readonly DhType.Column[]) => Set; getCachedGroupedColumnSet: (groupedColumns: readonly DhType.Column[]) => Set; updateFrozenColumns(columns: ColumnName[]): void; } export default IrisGridTreeTableModel; //# sourceMappingURL=IrisGridTreeTableModel.d.ts.map