import { TreeMapper, TreeNode, TreeDefinition } from './type'; export declare function promoteSingleChild(items: TreeNode[]): TreeNode[]; export declare const getAncestorIdsByNodeId: (nodeId: string, nodes: TreeNode[], path?: TreeNode[]) => TreeNode[] | null; export declare function collectCheckedIds(nodes: TreeNode[], multiple: boolean, acc?: string[]): string[]; export declare function normalizeStructure(nodes: TreeNode[], parents?: string[], acc?: TreeMapper, isParentSelected?: boolean): TreeMapper; export declare function initializeTreeMapper(nodes: TreeNode[], multiple: boolean): TreeMapper; export declare function denormalizeTree(nodes: TreeNode[], state: TreeMapper): TreeNode[]; export declare function updateTreeSelection(tree: TreeMapper, targetNodeId: string, isChecked: boolean): TreeMapper; export declare function extractSelectedBranches(nodes: TreeNode[]): TreeNode[]; export declare function resetTreeState(tree: TreeMapper): TreeMapper; export declare function updateSelection(tree: TreeMapper, targetNode: string, isChecked: boolean, multiple: boolean): TreeMapper; export type GetNodesByLevelOptions = { filter?: (node: TreeNode) => boolean; includeChildren?: boolean; }; export declare function filterNodesByLevelKey(nodes: TreeNode[], levelKey: string): TreeNode[]; export declare const TreeManager: { denormalizeTree: import("memoize-one").MemoizedFn<(tree: TreeNode[], mapper: TreeMapper) => TreeNode[]>; extractSelectedBranches: import("memoize-one").MemoizedFn<(nodes: TreeNode[]) => TreeNode[]>; filterNodesByLevelKey: import("memoize-one").MemoizedFn<(nodes: TreeNode[], levelKey: string) => TreeNode[]>; }; /** * Applies the same single-child promotion logic as `promoteSingleChild` but * also handles the **root level** of a `TreeDefinition`. When the root has * exactly one child (and that child has its own children), the child is * dissolved and its grandchildren become the new root items — cascading * recursively until a level with more than one child is reached. * * The header / footer / searchProps of the dissolved node are inherited by * the promoted level so the panel still displays the correct title. * * Only the **rendered** definition should use this. The original * `treeDefinition.children` must be kept for state management so that * selection propagation remains correct across the full tree. */ export declare function promoteDefinition(definition: TreeDefinition): TreeDefinition;