import { MatrixActor } from '../../core/MatrixActor';
import { MatrixActorHtmlElement } from '../../framework/MatrixActorHtmlElement';
/**
 * JSON-compatible value type for tree display.
 * Recursive type representing any valid JSON structure.
 */
type JsonValue = string | number | boolean | null | JsonValue[] | {
    [key: string]: JsonValue;
};
/**
 * TreeViewer - Displays data as an expandable tree structure.
 *
 * Accepts:
 *   - setData: { data: any, label?: string }
 *   - expandAll: {}
 *   - collapseAll: {}
 *   - toggleNode: { path: string }
 *
 * Emits:
 *   - nodeSelected: { path: string, value: any }
 *   - nodeToggled: { path: string, expanded: boolean }
 */
export declare class TreeViewer extends MatrixActor {
    static accepts: {
        setData: {
            data: string;
            label: string;
        };
        expandAll: {};
        collapseAll: {};
        toggleNode: {
            path: string;
        };
    };
    static emits: {
        nodeSelected: {
            path: string;
            value: string;
        };
        nodeToggled: {
            path: string;
            expanded: string;
        };
        treeChanged: {
            treeHTML: string;
            label: string;
        };
    };
    static template: string;
    private _data;
    private _label;
    private _expandedPaths;
    private _selectedPath;
    get data(): JsonValue;
    get label(): string;
    get expandedPaths(): Set<string>;
    get selectedPath(): string | null;
    onSetData(params: {
        data: JsonValue;
        label?: string;
    }): void;
    onExpandAll(): void;
    onCollapseAll(): void;
    onToggleNode(params: {
        path: string;
    }): void;
    private _emitTreeChanged;
    selectNode(path: string, value: JsonValue): void;
    isExpanded(path: string): boolean;
    private _expandAllPaths;
    /**
     * Build tree HTML - called by shell for rendering
     */
    buildTreeHTML(): string;
    private _buildNodeHTML;
    private _escapeHtml;
}
/**
 * TreeViewerShell - DOM wrapper for TreeViewer (Pattern B: separate actor)
 */
export declare class TreeViewerShell extends MatrixActorHtmlElement {
    static getActorClass(): typeof TreeViewer;
    static moduleUrl: string;
    private _domWired;
    onBootstrap(): Promise<void>;
}
export {};
//# sourceMappingURL=TreeViewer.d.ts.map