import type { JSX } from 'react'; import type { TreeViewProps } from './types'; export type { LoadTreeChildren, TreeNode, TreeViewProps } from './types'; export { collectExpandableIds, findAncestorIds } from './utils'; /** * A single component for both shapes of tree data: * - Eager: every node's full subtree is already in `data` via `children`. * No `loadChildren` needed - toggling a node only ever flips its * expanded/collapsed state. * - Lazy: `data` only has to contain what you already know; pass * `loadChildren` and a node whose `children` is undefined gets fetched * the first time it's expanded (see TreeNode's docs on `hasChildren` for * how a not-yet-fetched node still shows a toggle). * * Expand/collapse state follows the same model as the Sidebar: a single * `Set` of expanded ids is the source of truth (see * useTreeExpansion), and it can be left uncontrolled or owned by the * caller via `expandedIds`/`onExpandedIdsChange`. */ export declare function TreeView({ data, loadChildren, defaultExpandedIds, expandedIds, onExpandedIdsChange, selectedId, onSelectNode, renderLabel, wrapLabels, emptyMessage, loadErrorMessage, className, ...rest }: TreeViewProps): JSX.Element;