import { TableProps } from '../interfaces'; export interface HeaderRowColumn { id: string; header?: React.ReactNode; colSpan: number; rowSpan: number; isGroup: boolean; columnDefinition?: TableProps.ColumnDefinition; groupDefinition?: TableProps.GroupDefinition; parentGroupIds: string[]; colIndex: number; } export interface HeaderRow { columns: HeaderRowColumn[]; } export interface ColumnGroupsLayout { rows: HeaderRow[]; maxDepth: number; columnToParentIds: Map; } export interface TableHeaderNodeProps { columnDefinition?: TableProps.ColumnDefinition; groupDefinition?: TableProps.GroupDefinition; isRoot?: boolean; colSpan?: number; rowSpan?: number; rowIndex?: number; colIndex?: number; } /** * A node in the table header tree. * - Column nodes map to column definitions. * - Internal nodes map to group definitions. * - The root is a virtual container (never rendered). */ export declare class TableHeaderNode { readonly id: string; readonly isRoot: boolean; readonly columnDefinition?: TableProps.ColumnDefinition; readonly groupDefinition?: TableProps.GroupDefinition; colSpan: number; rowSpan: number; rowIndex: number; colIndex: number; subTreeHeight: number; children: TableHeaderNode[]; parent?: TableHeaderNode; constructor(id: string, props?: TableHeaderNodeProps); get isGroup(): boolean; get isColumn(): boolean; addChild(child: TableHeaderNode): void; } export declare function calculateHierarchyTree(columnDefinitions: ReadonlyArray>, visibleColumnIds: readonly string[], groupDefinitions: ReadonlyArray, columnDisplay?: ReadonlyArray): ColumnGroupsLayout; export declare function getColumnGroupsDepth(columnDisplay?: ReadonlyArray): number;