import { DataTree, DataNode } from '../../../types/data-structures';
/**
 * Creates a filtered copy of the tree containing only visible nodes based on expanded state.
 * Uses path-based IDs (e.g., "0.1.2") to match layout node IDs.
 * @param data - The full tree data
 * @param expandedIds - Set of node IDs that are expanded (path-based)
 * @returns Filtered DataTree or DataNode
 */
export declare function getVisibleTree(data: DataTree, expandedIds: Set<string>): DataTree;
/**
 * Collects all node IDs from the tree using path-based IDs.
 * Returns IDs like "0", "0.0", "0.1", "0.0.0", etc.
 */
export declare function getAllNodeIds(data: DataTree): Set<string>;
/**
 * Flattens tree into array of nodes (breadth-first)
 * @param root - Root node or tree data
 * @returns Array of all nodes
 */
export declare function flattenTree(root: DataTree | DataNode): DataNode[];
/**
 * Finds a node by its value (ID)
 * @param root - Root node or tree data
 * @param value - Node value to find
 * @returns Found node or null
 */
export declare function findNodeByValue(root: DataTree | DataNode, value: string): DataNode | null;
/**
 * Counts total number of nodes in tree
 * @param root - Root node or tree data
 * @returns Total node count
 */
export declare function countNodes(root: DataTree | DataNode): number;
//# sourceMappingURL=tree.d.ts.map