import { FileTreeConfig, FileTreeNode } from './types';
export type { FileTreeConfig, FileTreeNode } from './types';
export declare class FileTree {
    private readonly id;
    private readonly container;
    private readonly config;
    private readonly indent;
    private readonly showIcons;
    private data;
    private wrapperEl;
    private selectedIds;
    private flatNodes;
    private focusedIndex;
    /** Expansion state stored by node id */
    private readonly expandedIds;
    /** Drag state */
    private dragSourceNode;
    constructor(config: FileTreeConfig);
    /** Replace tree data and re-render */
    update(data: FileTreeNode[]): void;
    /** Get all currently selected nodes */
    getSelected(): FileTreeNode[];
    /** Expand all folders */
    expandAll(): void;
    /** Collapse all folders */
    collapseAll(): void;
    /** Clean up the component and remove from DOM */
    destroy(): void;
    /** Deep clone data to avoid mutating the caller's objects */
    private cloneData;
    private cloneNode;
    /** Initialize the expandedIds set from node data */
    private initExpandedState;
    /** Set all folders expanded or collapsed */
    private setAllExpanded;
    /** Collect selected nodes from the tree */
    private collectSelected;
    /** Main render method */
    private render;
    /** Recursively render tree nodes */
    private renderNodes;
    /** Handle click on a tree node row */
    private handleNodeClick;
    /** Handle keyboard navigation */
    private handleKeyDown;
    /** Scroll the focused row into view */
    private scrollFocusedIntoView;
}
//# sourceMappingURL=index.d.ts.map