/**
 * Interaction for modifying feature geometries.
 *
 * @hidden
 */
export default class _default extends olInteractionPointer {
    /**
     * @param {import('ol/interaction/Modify').Options} options Options.
     * @param {number} [nbPoints]
     * @fires import('ngeo/interaction/ModifyCircleEvent').default
     */
    constructor(options: import("ol/interaction/Modify").Options, nbPoints?: number);
    handleDownEvent: (evt: import("ol/MapBrowserEvent").default<unknown>) => boolean;
    handleDragEvent: (evt: import("ol/MapBrowserEvent").default<unknown>) => void;
    handleUpEvent: (evt: import("ol/MapBrowserEvent").default<unknown>) => boolean;
    /**
     * Editing vertex.
     *
     * @type {?olFeature<import('ol/geom/Geometry').default>}
     * @private
     */
    private vertexFeature_;
    /**
     * @type {import('ol/pixel').Pixel}
     * @private
     */
    private lastPixel_;
    /**
     * @type {boolean}
     * @private
     */
    private modified_;
    /**
     * Segment RTree for each layer
     *
     * @type {import('ol/structs/RBush').default<import('ol/interaction/Modify').SegmentData>}
     * @private
     */
    private rBush_;
    /**
     * @type {number}
     * @private
     */
    private pixelTolerance_;
    /**
     * @type {number}
     * @private
     */
    private nbPoints;
    /**
     * @type {boolean}
     * @private
     */
    private snappedToVertex_;
    /**
     * Indicate whether the interaction is currently changing a feature's
     * coordinates.
     *
     * @type {boolean}
     * @private
     */
    private changingFeature_;
    /**
     * @type {[import('ol/interaction/Modify').SegmentData, number][]}
     * @private
     */
    private dragSegments_;
    /**
     * Draw overlay where sketch features are drawn.
     *
     * @type {import('ol/layer/Vector').default<import('ol/source/Vector').default<import('ol/geom/Geometry').default>>}
     * @private
     */
    private overlay_;
    /**
     * @type {import('ol/Collection').default<olFeature<import('ol/geom/Geometry').default>>}
     * @private
     */
    private features_;
    /**
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature.
     * @private
     */
    private addFeature_;
    /**
     * @param {import('ol/MapBrowserEvent').default<unknown>} evt MapBrowserEvent
     * @private
     */
    private willModifyFeatures_;
    /**
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature.
     * @private
     */
    private removeFeature_;
    /**
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature.
     * @private
     */
    private removeFeatureSegmentData_;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     * @private
     */
    private handleFeatureAdd_;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     * @private
     */
    private handleFeatureRemove_;
    /**
     * @param {olFeature<import('ol/geom/Geometry').default>} feature Feature
     * @param {import('ol/geom/Polygon').default} geometry Geometry.
     * @private
     */
    private writeCircleGeometry_;
    /**
     * @param {import('ol/coordinate').Coordinate} coordinates Coordinates.
     * @returns {olFeature<import('ol/geom/Geometry').default>} Vertex feature.
     * @private
     */
    private createOrUpdateVertexFeature_;
    /**
     * @param {import('ol/MapBrowserEvent').default<unknown>} evt Event.
     * @private
     */
    private handlePointerMove_;
    /**
     * @param {import('ol/pixel').Pixel} pixel Pixel
     * @param {import('ol/Map').default} map Map.
     * @private
     */
    private handlePointerAtPixel_;
    /**
     * @param {import('ol/geom/SimpleGeometry').default} geometry Geometry.
     * @param {number[][]|number[][][]} coordinates Coordinates.
     * @private
     */
    private setGeometryCoordinates_;
    /**
     * @param {import('ol/MapBrowserEvent').default<unknown>} evt MapBrowserEvent.
     * @returns {boolean} Start drag sequence?
     * @private
     */
    private handleDownEvent_;
    /**
     * @param {import('ol/MapBrowserEvent').default<unknown>} evt MapBrowserEvent.
     * @private
     */
    private handleDragEvent_;
    /**
     * @param {import('ol/MapBrowserEvent').default<unknown>} evt MapBrowserEvent.
     * @returns {boolean} Stop drag sequence?
     * @private
     */
    private handleUpEvent_;
    /**
     * Handles the {@link import('ol/MapBrowserEvent').default map browser event} and may modify the
     * geometry.
     *
     * @param {import('ol/MapBrowserEvent').default<unknown>} mapBrowserEvent Map browser event.
     * @returns {boolean} `false` to stop event propagation.
     */
    handleEvent(mapBrowserEvent: import("ol/MapBrowserEvent").default<unknown>): boolean;
}
import olInteractionPointer from 'ol/interaction/Pointer';
