import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, DrawInteractions } from "../../common"; import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store"; import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode"; import { BehaviorConfig } from "../base.behavior"; type TerraDrawRectangleModeKeyEvents = { cancel: KeyboardEvent["key"] | null; finish: KeyboardEvent["key"] | null; }; type RectanglePolygonStyling = { fillColor: HexColorStyling; fillOpacity: NumericStyling; outlineColor: HexColorStyling; outlineOpacity: NumericStyling; outlineWidth: NumericStyling; }; interface Cursors { start?: Cursor; } interface TerraDrawRectangleModeOptions extends BaseModeOptions { keyEvents?: TerraDrawRectangleModeKeyEvents | null; cursors?: Cursors; drawInteraction?: DrawInteractions; } export declare class TerraDrawRectangleMode extends TerraDrawBaseDrawMode { mode: string; private startPosition; private endPosition; private currentRectangleId; private keyEvents; private cursors; private drawInteraction; private drawType; private mutateFeature; private readFeature; constructor(options?: TerraDrawRectangleModeOptions); updateOptions(options?: ModeUpdateOptions>): void; private updateRectangle; private close; private beginDrawing; /** TODO: Probably should be private? */ /** @internal */ moveDrawAllowed(): boolean; /** TODO: Probably should be private? */ /** @internal */ dragDrawAllowed(): boolean; /** @internal */ start(): void; /** @internal */ stop(): void; /** @internal */ onClick(event: TerraDrawMouseEvent): void; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; /** @internal */ onKeyDown(): void; /** @internal */ onKeyUp(event: TerraDrawKeyboardEvent): void; /** @internal */ onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDragEnd(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ cleanUp(): void; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; validateFeature(feature: unknown): StoreValidation; afterFeatureUpdated(feature: GeoJSONStoreFeatures): void; registerBehaviors(config: BehaviorConfig): void; } export {};