import { BehaviorConfig, TerraDrawModeBehavior } from "./base.behavior";
import { TerraDrawMouseEvent } from "../common";
import { Feature, Position } from "geojson";
import { ClickBoundingBoxBehavior } from "./click-bounding-box.behavior";
import { FeatureId } from "../store/store";
import { PixelDistanceBehavior } from "./pixel-distance.behavior";
export declare class LineSnappingBehavior extends TerraDrawModeBehavior {
    readonly config: BehaviorConfig;
    private readonly pixelDistance;
    private readonly clickBoundingBox;
    constructor(config: BehaviorConfig, pixelDistance: PixelDistanceBehavior, clickBoundingBox: ClickBoundingBoxBehavior);
    /** Returns the nearest snappable coordinate - on first click there is no currentId so no need to provide */
    getSnappableCoordinateFirstClick: (event: TerraDrawMouseEvent) => Position | undefined;
    getSnappableCoordinate: (event: TerraDrawMouseEvent, currentFeatureId: FeatureId) => Position | undefined;
    getSnappable(event: TerraDrawMouseEvent, filter?: (feature: Feature) => boolean): {
        coordinate: undefined | Position;
        minDistance: number;
        featureId: undefined | FeatureId;
        featureCoordinateIndex: undefined | number;
    };
}
