import { Position } from "geojson";
import { BehaviorConfig, TerraDrawModeBehavior } from "../../base.behavior";
import { SelectionPointBehavior } from "./selection-point.behavior";
import { TerraDrawMouseEvent } from "../../../common";
import { FeatureId } from "../../../store/store";
import { CoordinatePointBehavior } from "./coordinate-point.behavior";
import { MutateFeatureBehavior } from "../../mutate-feature.behavior";
import { ReadFeatureBehavior } from "../../read-feature.behavior";
import { PixelDistanceBehavior } from "../../pixel-distance.behavior";
export declare class MidPointBehavior extends TerraDrawModeBehavior {
    readonly config: BehaviorConfig;
    private readonly selectionPointBehavior;
    private readonly coordinatePointBehavior;
    private readonly mutateFeature;
    private readonly readFeature;
    private readonly pixelDistance;
    constructor(config: BehaviorConfig, selectionPointBehavior: SelectionPointBehavior, coordinatePointBehavior: CoordinatePointBehavior, mutateFeature: MutateFeatureBehavior, readFeature: ReadFeatureBehavior, pixelDistance: PixelDistanceBehavior);
    private _midPoints;
    private getMidpointConfig;
    get ids(): FeatureId[];
    set ids(_: FeatureId[]);
    getNearestMidPoint(event: TerraDrawMouseEvent): undefined;
    insert({ featureId, midPointId, }: {
        featureId: FeatureId;
        midPointId: FeatureId;
    }): void;
    create({ featureCoordinates, featureId, }: {
        featureCoordinates: Position[] | Position[][];
        featureId: FeatureId;
    }): void;
    delete(): void;
    updateAllInPlace({ featureCoordinates, }: {
        featureCoordinates: Position[] | Position[][];
    }): undefined;
    updateOneAtIndex(index: number, featureCoordinates: Position[] | Position[][]): undefined;
}
