import { Object3D, Vector2 } from "three";
import type { IComponent } from "@inweb/viewer-core";
import type { Viewer } from "../Viewer";
import type { IModelImpl } from "../models/IModelImpl";
import type { HighlighterComponent } from "./HighlighterComponent";
export declare class SelectionComponent implements IComponent {
    protected viewer: Viewer;
    protected downPosition: Vector2;
    protected highlighter: HighlighterComponent;
    constructor(viewer: Viewer);
    dispose(): void;
    onPointerDown: (event: PointerEvent) => void;
    onPointerUp: (event: PointerEvent) => void;
    onDoubleClick: (event: MouseEvent) => void;
    getMousePosition(event: MouseEvent, target: Vector2): Vector2;
    select(objects: Object3D | Object3D[], model?: IModelImpl): void;
    deselect(objects: Object3D | Object3D[], model?: IModelImpl): void;
    toggleSelection(objects: Object3D | Object3D[], model?: IModelImpl): void;
    clearSelection(): void;
    initHighlighter: () => void;
}
