import { TerraDrawMouseEvent, TerraDrawKeyboardEvent, TerraDrawAdapterStyling, HexColorStyling, NumericStyling, Cursor, Validation } from "../../common"; import { BaseModeOptions, CustomStyling, TerraDrawBaseSelectMode } from "../base.mode"; import { BehaviorConfig } from "../base.behavior"; import { FeatureId, GeoJSONStoreFeatures } from "../../store/store"; import { ResizeOptions } from "./behaviors/drag-coordinate-resize.behavior"; type TerraDrawSelectModeKeyEvents = { deselect: KeyboardEvent["key"] | null; delete: KeyboardEvent["key"] | null; rotate: KeyboardEvent["key"][] | null; scale: KeyboardEvent["key"][] | null; }; type ModeFlags = { feature?: { validation?: Validation; draggable?: boolean; rotateable?: boolean; scaleable?: boolean; selfIntersectable?: boolean; coordinates?: { midpoints?: boolean; draggable?: boolean; resizable?: ResizeOptions; deletable?: boolean; }; }; }; type SelectionStyling = { selectedPointColor: HexColorStyling; selectedPointWidth: NumericStyling; selectedPointOutlineColor: HexColorStyling; selectedPointOutlineWidth: NumericStyling; selectedLineStringColor: HexColorStyling; selectedLineStringWidth: NumericStyling; selectedPolygonColor: HexColorStyling; selectedPolygonFillOpacity: NumericStyling; selectedPolygonOutlineColor: HexColorStyling; selectedPolygonOutlineWidth: NumericStyling; selectionPointWidth: NumericStyling; selectionPointColor: HexColorStyling; selectionPointOutlineColor: HexColorStyling; selectionPointOutlineWidth: NumericStyling; midPointColor: HexColorStyling; midPointOutlineColor: HexColorStyling; midPointWidth: NumericStyling; midPointOutlineWidth: NumericStyling; }; interface Cursors { pointerOver?: Cursor; dragStart?: Cursor; dragEnd?: Cursor; insertMidpoint?: Cursor; } interface TerraDrawSelectModeOptions extends BaseModeOptions { pointerDistance?: number; flags?: { [mode: string]: ModeFlags; }; keyEvents?: TerraDrawSelectModeKeyEvents | null; dragEventThrottle?: number; cursors?: Cursors; allowManualDeselection?: boolean; } export declare class TerraDrawSelectMode extends TerraDrawBaseSelectMode { mode: string; private allowManualDeselection; private dragEventThrottle; private dragEventCount; private selected; private flags; private keyEvents; private selectionPoints; private midPoints; private featuresAtMouseEvent; private pixelDistance; private clickBoundingBox; private dragFeature; private dragCoordinate; private rotateFeature; private scaleFeature; private dragCoordinateResizeFeature; private cursors; private validations; constructor(options?: TerraDrawSelectModeOptions); selectFeature(featureId: FeatureId): void; setSelecting(): void; registerBehaviors(config: BehaviorConfig): void; deselectFeature(): void; private deselect; private deleteSelected; private onRightClick; private select; private onLeftClick; /** @internal */ start(): void; /** @internal */ stop(): void; /** @internal */ onClick(event: TerraDrawMouseEvent): void; private canScale; private canRotate; private preventDefaultKeyEvent; /** @internal */ onKeyDown(event: TerraDrawKeyboardEvent): void; /** @internal */ onKeyUp(event: TerraDrawKeyboardEvent): void; /** @internal */ cleanUp(): void; /** @internal */ onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDragEnd(_: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; } export {};