import { TreeNode, TreeViewConfig } from './types';
export type { TreeNode, TreeViewConfig } from './types';
export declare class TreeView {
    private readonly container;
    private readonly config;
    private data;
    private selectedNode;
    private focusedNode;
    private wrapperEl;
    private highlightQuery;
    private liveRegion;
    private readonly treeId;
    private readonly labelId;
    private flatNodes;
    private typeAhead;
    constructor(config: TreeViewConfig);
    /** Replace all nodes and re-render */
    setData(data: TreeNode[]): void;
    /** Expand all nodes recursively */
    expandAll(): void;
    /** Collapse all nodes recursively */
    collapseAll(): void;
    /** Expand a specific node by id */
    expandNode(id: string): void;
    /** Collapse a specific node by id */
    collapseNode(id: string): void;
    /** Highlight nodes matching the given query string */
    highlight(query: string): void;
    /** Get the last selected node, or null */
    getSelectedNode(): TreeNode | null;
    /** Remove the tree from the DOM and clean up */
    destroy(): void;
    /** Announce an update to screen readers */
    private announceUpdate;
    /** Count total nodes in tree */
    private countNodes;
    /** Set expanded state on all nodes recursively */
    private setExpandedRecursive;
    /** Find a node by id in the tree */
    private findNodeById;
    /** Check if a node or any descendant matches the current search */
    private nodeMatchesSearch;
    /** Build flat list of visible nodes for keyboard navigation */
    private buildFlatNodes;
    /** Recursively flatten visible nodes */
    private flattenNodes;
    /** Get the flat node info for a tree node */
    private getFlatNode;
    /** Get visible nodes (for aria-setsize) at same level */
    private getSiblingsAtLevel;
    /** Handle keyboard navigation within the tree */
    private handleKeyDown;
    /** Focus a specific node */
    private focusNode;
    /** Select a node (activate it) */
    private selectNode;
    /** Update focus state in the DOM */
    private updateFocusState;
    /** Render the full tree into the container */
    private render;
    /** Re-render only the nodes portion of the tree */
    private renderNodes;
    /** Build a DOM element for a single tree node (recursive) */
    private buildNodeElement;
    /** Handle expand/collapse toggle, including lazy loading */
    private handleToggle;
    /** Highlight matching text within a label */
    private highlightText;
}
//# sourceMappingURL=index.d.ts.map