import { TreeSelectFieldNode } from '../types';
import { VisibleNode } from './types';
/**
 * Props for the TreePanel component.
 * @property {VisibleNode[]} visibleNodes - Flat list of nodes currently visible in the tree.
 * @property {(id: string | number) => "checked" | "unchecked" | "indeterminate" | "loading"} getCheckState - Returns the check state for a given node id.
 * @property {(id: string | number) => void} toggleNode - Toggles the selection state of a node.
 * @property {(id: string | number) => void} toggleExpand - Toggles the expanded state of a branch node.
 * @property {(id: string | number) => Record<string, unknown>} getTreeItemProps - Returns ARIA/accessibility props for a tree item.
 * @property {Record<string, unknown>} treeProps - Props to spread onto the tree container element.
 * @property {string | undefined} activeDescendantId - The id of the currently active/focused tree item.
 * @property {boolean} [branchesSelectable] - When true, branch nodes can be selected.
 * @property {boolean} [leavesSelectable] - When true, leaf nodes can be selected.
 * @property {boolean} [emptyBranchesSelectable] - When true, empty branches can be selected.
 * @property {(node: TreeSelectFieldNode) => void} [onLoadChildren] - Callback to trigger lazy loading of children.
 */
export type TreePanelProps = {
    visibleNodes: VisibleNode[];
    getCheckState: (id: string | number) => "checked" | "unchecked" | "indeterminate" | "loading";
    toggleNode: (id: string | number) => void;
    toggleExpand: (id: string | number) => void;
    getTreeItemProps: (id: string | number) => Record<string, unknown>;
    treeProps: Record<string, unknown>;
    activeDescendantId: string | undefined;
    branchesSelectable?: boolean;
    leavesSelectable?: boolean;
    emptyBranchesSelectable?: boolean;
    readOnly?: boolean;
    onHover?: (id: string | number) => void;
    onLoadChildren?: (node: TreeSelectFieldNode) => void;
};
/**
 * TreePanel component that renders the tree dropdown content.
 *
 * Features:
 * - Renders a flat list of visible nodes with depth-based indentation
 * - Supports expand/collapse controls for branch nodes
 * - Shows loading indicator for lazily-loaded branches
 * - Checkboxes for multi-select mode (hidden in single-select mode)
 * - Optional breadcrumb display for flattened search results
 * - Optional child count display for branch nodes
 * - Full accessibility support with ARIA tree/treeitem roles
 * - Focusable container via forwardRef
 *
 * @example
 * <TreePanel
 *   visibleNodes={visibleNodes}
 *   getCheckState={getCheckState}
 *   toggleNode={toggleNode}
 *   toggleExpand={toggleExpand}
 *   getTreeItemProps={getTreeItemProps}
 *   treeProps={treeProps}
 *   activeDescendantId={activeDescendantId}
 * />
 */
export declare const TreePanel: import('react').ForwardRefExoticComponent<TreePanelProps & import('react').RefAttributes<HTMLDivElement>>;
