import { TreeSelectFieldNode } from '../types';
/**
 * Recursively finds the first node in the tree matching the given id.
 *
 * @param nodes - The tree nodes to search.
 * @param id - The id of the node to find.
 * @returns The matching node, or undefined if no node has the given id.
 */
export declare function findNode(nodes: TreeSelectFieldNode[], id: string | number): TreeSelectFieldNode | undefined;
/**
 * Returns true when the given node or any of its descendants still need to
 * be lazy-loaded (i.e. has `children: null`).
 *
 * @param node - The node to inspect.
 * @returns Whether any descendant branch is still unloaded.
 */
export declare function hasUnloadedDescendants(node: TreeSelectFieldNode): boolean;
/**
 * Returns all descendant branches of the given node whose children have not
 * yet been loaded (i.e. `children: null`). The node itself is not included.
 *
 * @param node - The ancestor node to walk.
 * @returns Every descendant branch that still requires lazy loading.
 */
export declare function findUnloadedDescendants(node: TreeSelectFieldNode): TreeSelectFieldNode[];
