import type { NodeWithIds } from './types.ts'; export interface HierarchyNode { data: T; children: HierarchyNode[] | null; parent: HierarchyNode | null; depth: number; height: number; value?: number; x?: number; y?: number; len?: number; _children?: HierarchyNode[] | null; } export interface HierarchyLink { source: HierarchyNode; target: HierarchyNode; } export declare function hierarchy(data: T, childrenAccessor: (d: T) => T[] | undefined): HierarchyNode; export declare function sum(node: HierarchyNode, valueFn: (d: T) => number): HierarchyNode; export declare function sort(node: HierarchyNode, compareFn: (a: HierarchyNode, b: HierarchyNode) => number): HierarchyNode; export declare function find(node: HierarchyNode, predicate: (n: HierarchyNode) => boolean): HierarchyNode | undefined; export declare function leaves(node: HierarchyNode): HierarchyNode[]; export declare function descendants(node: HierarchyNode): HierarchyNode[]; export declare function links(node: HierarchyNode): HierarchyLink[]; export declare function clusterLayout(root: HierarchyNode, sizeX: number, sizeY: number): void; export declare function collapse(node: HierarchyNode): void; export declare function maxLength(d: HierarchyNode): number; export declare function setBrLength(d: HierarchyNode, y0: number, k: number): void;