import { ExtensionBase } from '../ExtensionBase'; export type AreaSelectionMode = "lasso" | "box"; export type { SelectionBehavior } from './computeSelectedElements'; export declare class AreaSelectionState { enabled: boolean; mode: AreaSelectionMode; /** When true, selection updates live while dragging. */ liveUpdate: boolean; } /** * Extension that provides lasso and box area selection in the 3D viewer. * * When enabled, left-click + drag draws a lasso or box selection region. * On release, elements within the region are selected via SceneManager.updateSelection(). * Hold Ctrl/Meta to add to existing selection. */ export declare class AreaSelectionExtension extends ExtensionBase { static getName: () => string; state: AreaSelectionState; private tool; private overlay; private isDragging; private startX; private startY; private currentBehavior; private additive; private substractive; private invertBehavior; private readonly boundPointerDown; private readonly boundPointerMove; private readonly boundPointerUp; private readonly boundResize; private readonly boundKeyDown; private ac; private renderManager; private sharedToolbar; constructor(viewerName: string, options: { saveStateHandler?: (stateName: string, state: any) => void; restoreStateHandler?: (stateName: string, state: any) => Promise; }); setMode(mode: AreaSelectionMode): void; enable(): void; disable(): void; toggle(): void; private onPointerDown; private onPointerMove; private onPointerUp; private applySelection; private onResize; private onKeyDown; private onKeyUp; sharedToolbarRender(container: HTMLElement): void; added(): Promise; deleted(): void; }