import { type OnDestroy } from '@angular/core'; import * as i0 from "@angular/core"; export declare class SelectionService implements OnDestroy { private readonly document; private readonly ngZone; private readonly platformId; private readonly selectedElements; private readonly registeredElements; private isDragging; private clickedOnScene; private startX; private startY; private readonly dragThreshold; private currentTarget; private readonly boundMouseDown; private readonly boundMouseMove; private readonly boundMouseUp; constructor(); ngOnDestroy(): void; /** * Registers an element for selection tracking * @param element HTML element to track * @param callback Callback function triggered when selection changes * @returns Function to unregister */ registerElement(element: HTMLElement, callback: (selected: boolean) => void): () => void; /** * Unregisters an element * @param element HTML element to unregister */ unregisterElement(element: HTMLElement): void; /** * Selects an element * @param element HTML element to select * @param exclusive If true, deselects all other elements */ selectElement(element: HTMLElement, exclusive?: boolean): void; /** * Deselects an element * @param element HTML element to deselect */ deselectElement(element: HTMLElement): void; /** * Clears selection of all elements except the excluded one * @param exceptElement Element to exclude from clearing */ clearSelection(exceptElement?: HTMLElement): void; /** * Checks if an element is selected * @param element HTML element to check * @returns true if the element is selected */ isSelected(element: HTMLElement): boolean; /** * Gets all selected elements * @returns Array of selected HTML elements */ getSelectedElements(): HTMLElement[]; /** * Mouse down event handler */ private onMouseDown; /** * Mouse move event handler */ private onMouseMove; /** * Mouse up event handler */ private onMouseUp; /** * Finds the closest parent element that is registered in the service */ private findRegisteredParent; /** * Resets the drag state */ private reset; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }