import { ReactNode } from 'react'; export interface TreeNode { id: string; label: ReactNode; icon?: string; /** Children. Leaves omit this. */ children?: TreeNode[]; /** Disabled nodes can't be selected; their children remain navigable. */ disabled?: boolean; } export interface TreeProps { nodes: TreeNode[]; /** Expanded node ids. Uncontrolled when omitted. */ expanded?: string[]; defaultExpanded?: string[]; onExpandedChange?: (ids: string[]) => void; /** Selected node id. Uncontrolled when omitted. */ selected?: string | null; defaultSelected?: string | null; onSelect?: (id: string, node: TreeNode) => void; /** Show a leading icon for branches (folder by default). */ branchIcon?: string; /** Show a leading icon for leaves. */ leafIcon?: string; className?: string; /** Accessible name announced as the tree's label. */ ariaLabel?: string; } /** * Material 3 Tree — disclosure-style hierarchical list. Uses the * `tree` / `treeitem` / `group` ARIA roles so assistive tech sees the * structure, with click-and-keyboard expansion via the chevron. */ export declare function Tree({ nodes, expanded, defaultExpanded, onExpandedChange, selected, defaultSelected, onSelect, branchIcon, leafIcon, className, ariaLabel, }: TreeProps): import("react/jsx-runtime").JSX.Element;