import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common"; import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode"; import { BehaviorConfig } from "../base.behavior"; import { GeoJSONStoreFeatures } from "../../store/store"; type TerraDrawLineStringModeKeyEvents = { cancel: KeyboardEvent["key"] | null; finish: KeyboardEvent["key"] | null; }; type LineStringStyling = { lineStringWidth: NumericStyling; lineStringColor: HexColorStyling; closingPointColor: HexColorStyling; closingPointWidth: NumericStyling; closingPointOutlineColor: HexColorStyling; closingPointOutlineWidth: NumericStyling; }; interface Cursors { start?: Cursor; close?: Cursor; } interface TerraDrawLineStringModeOptions extends BaseModeOptions { snapping?: boolean; allowSelfIntersections?: boolean; pointerDistance?: number; keyEvents?: TerraDrawLineStringModeKeyEvents | null; cursors?: Cursors; } export declare class TerraDrawLineStringMode extends TerraDrawBaseDrawMode { mode: string; private currentCoordinate; private currentId; private closingPointId; private allowSelfIntersections; private keyEvents; private snappingEnabled; private cursors; private mouseMove; private snapping; constructor(options?: TerraDrawLineStringModeOptions); private close; /** @internal */ registerBehaviors(config: BehaviorConfig): void; /** @internal */ start(): void; /** @internal */ stop(): void; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; /** @internal */ onClick(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; } export {};