import { SelectionState } from "../api/types.js"; //#region src/canvas/selection/SelectionModel.d.ts /** * Pure selection logic - semantics separate from mechanism. * Manages selection state and operations. */ declare class SelectionModel extends EventTarget { private _selectedIds; private _primaryId; private _selectionMode; private _boxSelectStart; private _boxSelectCurrent; private _groups; private _elementToGroup; /** * Emit selectionchange event with current selection state. */ private _emitSelectionChange; /** * Get current selection state. */ get selectedIds(): ReadonlySet; /** * Get current selection mode. */ get selectionMode(): SelectionState; /** * Get current box selection bounds, if active. */ get boxSelectBounds(): DOMRect | null; /** * Select a single element. */ select(id: string): void; /** * Select multiple elements. */ selectMultiple(ids: string[]): void; /** * Add element to selection (for multi-select). */ addToSelection(id: string): void; /** * Remove element from selection. */ deselect(id: string): void; /** * Toggle element selection state. */ toggle(id: string): void; /** * Clear all selections. */ clear(): void; /** * Start box selection. */ startBoxSelect(x: number, y: number): void; /** * Update box selection. */ updateBoxSelect(x: number, y: number): void; /** * End box selection and select elements within bounds. * @param hitTest - Function to find elements within bounds * @param addToSelection - If true, add to existing selection; if false, replace selection */ endBoxSelect(hitTest: (bounds: DOMRect) => string[], addToSelection?: boolean): void; /** * Create a group from selected elements. */ createGroup(ids: string[]): string; /** * Ungroup a group. */ ungroup(groupId: string): void; /** * Select all elements in a group. */ selectGroup(groupId: string): void; /** * Get group ID for an element, if any. */ getGroupId(elementId: string): string | undefined; /** * Get all element IDs in a group. */ getGroupElements(groupId: string): string[]; /** * Update selection mode based on current selection count. */ private _updateSelectionMode; } //#endregion export { SelectionModel }; //# sourceMappingURL=SelectionModel.d.ts.map