import { TerraDrawMouseEvent, Validation } from "../../../common";
import { BehaviorConfig, TerraDrawModeBehavior } from "../../base.behavior";
import { FeatureAtPointerEventBehavior } from "./feature-at-pointer-event.behavior";
import { SelectionPointBehavior } from "./selection-point.behavior";
import { MidPointBehavior } from "./midpoint.behavior";
import { FeatureId } from "../../../store/store";
import { CoordinatePointBehavior } from "./coordinate-point.behavior";
export declare class DragFeatureBehavior extends TerraDrawModeBehavior {
    readonly config: BehaviorConfig;
    private readonly featuresAtCursorEvent;
    private readonly selectionPoints;
    private readonly midPoints;
    private readonly coordinatePoints;
    constructor(config: BehaviorConfig, featuresAtCursorEvent: FeatureAtPointerEventBehavior, selectionPoints: SelectionPointBehavior, midPoints: MidPointBehavior, coordinatePoints: CoordinatePointBehavior);
    private draggedFeatureId;
    private dragPosition;
    startDragging(event: TerraDrawMouseEvent, id: FeatureId): void;
    stopDragging(): void;
    isDragging(): boolean;
    canDrag(event: TerraDrawMouseEvent, selectedId: FeatureId): boolean;
    drag(event: TerraDrawMouseEvent, validateFeature?: Validation): false | undefined;
}
