import type { ColumnTreeBuild } from '../columns/buildColumnTree'; import type { AgColumn } from '../entities/agColumn'; /** @internal AG_GRID_INTERNAL - Not for public use. Can change / be removed at any time. */ export interface IGroupHierarchyColService { /** Generated hierarchy columns flat-array. Empty when no hierarchy is in use. */ columns: AgColumn[]; /** Recompute hierarchy cols and prepend them to the tree via the builder. No-op when none active. */ contributeTo(build: ColumnTreeBuild): void; /** This source col's generated virtuals, in order (seated before it); undefined if none. */ getVirtualCols(sourceCol: AgColumn): AgColumn[] | undefined; /** Sibling virtuals rank by insertion order; a virtual sorts before its own source; else null (caller decides). */ compareVirtualColumns(colA: AgColumn, colB: AgColumn): number | null; }