import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Projection } from "../../common"; import { GeoJSONStoreFeatures } from "../../store/store"; import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode"; type TerraDrawCircleModeKeyEvents = { cancel: KeyboardEvent["key"] | null; finish: KeyboardEvent["key"] | null; }; type CirclePolygonStyling = { fillColor: HexColorStyling; outlineColor: HexColorStyling; outlineWidth: NumericStyling; fillOpacity: NumericStyling; }; interface Cursors { start?: Cursor; } interface TerraDrawCircleModeOptions extends BaseModeOptions { keyEvents?: TerraDrawCircleModeKeyEvents | null; cursors?: Cursors; startingRadiusKilometers?: number; projection?: Projection; } export declare class TerraDrawCircleMode extends TerraDrawBaseDrawMode { mode: string; private center; private clickCount; private currentCircleId; private keyEvents; private cursors; private startingRadiusKilometers; /** * Create a new circle mode instance * @param options - Options to customize the behavior of the circle mode * @param options.keyEvents - Key events to cancel or finish the mode * @param options.cursors - Cursors to use for the mode * @param options.styles - Custom styling for the circle * @param options.pointerDistance - Distance in pixels to consider a pointer close to a vertex */ constructor(options?: TerraDrawCircleModeOptions); private close; /** @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(): void; /** @internal */ onDrag(): void; /** @internal */ onDragEnd(): void; /** @internal */ cleanUp(): void; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; validateFeature(feature: unknown): feature is GeoJSONStoreFeatures; private updateCircle; } export {};