import { Entity, System } from '@lastolivegames/becsy'; import { AnchorName } from '../components'; import type { SerializedNode } from '../types/serialized-node'; export declare enum SelectionMode { IDLE = "IDLE", READY_TO_BRUSH = "READY_TO_BRUSH", BRUSH = "BRUSH", READY_TO_SELECT = "READY_TO_SELECT", SELECT = "SELECT", READY_TO_MOVE = "READY_TO_MOVE", MOVE = "MOVE", READY_TO_RESIZE = "READY_TO_RESIZE", RESIZE = "RESIZE", READY_TO_ROTATE = "READY_TO_ROTATE", ROTATE = "ROTATE", READY_TO_MOVE_CONTROL_POINT = "READY_TO_MOVE_CONTROL_POINT", MOVE_CONTROL_POINT = "MOVE_CONTROL_POINT", EDITING = "EDITING", LASSOING = "LASSOING" } export interface SelectOBB { mode: SelectionMode; resizingAnchorName: AnchorName; nodes: SerializedNode[]; obb: { x: number; y: number; width: number; height: number; rotation: number; scaleX: number; scaleY: number; }; sin: number; cos: number; pointerMoveViewportX: number; pointerMoveViewportY: number; brushContainer: SVGSVGElement; snapContainer: SVGSVGElement; label: HTMLDivElement; editing: Entity; } /** * * Click to select individual object. Hold `Shift` and click on another object to select multiple objects. * * Brush(marquee) to select multiple objects. * @see https://help.figma.com/hc/en-us/articles/360040449873-Select-layers-and-objects */ export declare class Select extends System { private readonly commands; private readonly cameras; private selections; constructor(); private getTopmostEntity; private handleSelectedMoving; private handleSelectedMoved; private handleSelectedRotating; private handleSelectedResizing; private handleSelectedResized; private handleSelectedRotated; private handleBrushing; execute(): void; finalize(): void; private applyBrushSelection; private saveSelectedOBB; private fitSelected; private hideBrush; private renderBrush; private clearSnapLines; private renderSnapLines; private renderSnapLine; }