import { Viewer3d, Plugin, PluginConfig, THREE } from "@x-viewer/core"; import { BasePanel } from "@x-viewer/ui"; /** * Tree view plugin config. */ export interface TreeViewPluginConfig extends Partial { /** * Host element id: panel is embedded there (fills the box) with left-dock styling. * If omitted, the panel floats over the viewer `widgetContainer` as before. */ containerId?: string; /** * If panel is visible. It is visible by default. */ visible?: boolean; } /** * Tree view plugin events. */ type TreeViewPluginEvents = { /** * Panel visibility change event. */ visibilitychange: boolean; }; /** * Tree view plugin. */ export declare class TreeViewPlugin extends Plugin { static readonly DEFAULT_ID = "TreeViewPlugin"; protected cfg: TreeViewPluginConfig; protected basePanel?: BasePanel; protected container?: HTMLDivElement; protected content?: HTMLDivElement; protected lastHighlightedObject?: THREE.Object3D; /** Current tree name filter (persisted across panel rebuilds). */ private treeSearchQuery; private treeSearchInput?; private treeSearchDebounceId; /** `null` = no filter; otherwise uuids kept visible for current `treeSearchQuery`. */ private treeSearchVisibleCache; /** Ends inline tree rename if one is active (`commit`: apply input to `node.name`). */ private finishActiveTreeRename?; private treeDragDrop?; /** Suppresses the synthetic click after a tree drag (pointerup → click). */ private suppressTreeClickAfterDrag; constructor(viewer: Viewer3d, cfg?: TreeViewPluginConfig); private onLanguageChange; protected applyLocalizedChrome(): void; protected updateContent(): void; setVisible(visible: boolean): void; isVisible(): boolean; protected onModelLoadOrRemove: () => void; protected onObjectSelected: (evt: THREE.Object3D) => void; protected onObjectDeselected: (evt: THREE.Object3D) => void; protected onSceneObjectRemoved: (object: THREE.Object3D) => void; protected onSceneObjectAdded: (object: THREE.Object3D) => void; destroy(): void; protected addContent(): void; protected onSceneNodeReparented: (object: THREE.Object3D) => void; private onTreeSearchInputClick; private onTreeSearchKeydown; private onTreeSearchInput; private removeTreeDomForSceneObject; } export {};