import type TreeNode from '../../../../../utils/dataStructures/tree'; import type { HeaderNodeData } from '../../headersTree'; /** * Collects the grid column indexes a node "exposes" to its parent - the columns that become newly * hidden when an ancestor collapses, and are handed back when it expands. * * A column owned by an inner collapse (a descendant `isCollapsed` node's collapsed-away span) is * skipped - it belongs to that inner collapse, so an outer collapse/expand must leave it untouched * (otherwise expanding the outer group would blow open every nested collapse). A column hidden only * by an external source (e.g. HiddenColumns) is still exposed, so a collapse can own it and the * group stays collapsed even if that external hide is later removed. * * @param {TreeNode} node A tree node to traverse. * @param {Function} callback Called with each exposed visual column index. */ export declare function traverseExposedColumnIndexes(node: TreeNode, callback: Function): void; /** * Checks whether a node is a "declarative" collapsible group - one whose collapse visibility is * driven by per-child `visibleWhen` markers (issue #10243) rather than the legacy first-visible-child * rule. A group is declarative when at least one of its direct children declares an explicit * `visibleWhen` ('collapsed', 'expanded', or 'always'). Declarative groups skip the first-child column * claiming in collapse/expand - their hidden set is derived separately from the markers and * `isCollapsed`. * * @param {TreeNode} node A tree node to check. * @returns {boolean} */ export declare function isDeclarativeGroup(node: TreeNode): boolean; /** * A tree helper for retrieving a data from the first child. * * @param {TreeNode} node A tree node to check. * @param {string} propertyName A name of the property whose value you want to get. * @returns {*} */ export declare function getFirstChildProperty({ childs }: { childs: { data: Record; }[]; }, propertyName: string): unknown; /** * A tree helper which checks if passed node has the same original colspan as its * first child. * * @param {TreeNode} node A tree node to check. * @returns {boolean} */ export declare function isNodeReflectsFirstChildColspan(node: { data: Record; childs: { data: Record; }[]; }): boolean;