import { LayerSpecification } from 'maplibre-gl';
import type { LibreRoutingPlugin } from '..';
import type { LibreRouting } from '../../libre-routing';
declare type MousePluginOptions = {
    calculateOnFly: boolean;
    routeLayerIds: string[];
    waypointsLayerIds: string[];
    excludeWorkingLayerIds: string[];
    pointLayerId: string;
    pointLayer: LayerSpecification;
};
export declare class MousePlugin implements LibreRoutingPlugin {
    private mapMoveHandler;
    private mapClickHandler;
    private mousedownHandler;
    private mouseupHandler;
    private point;
    private waypoints;
    private dragRoutePending;
    private _waypointOrigin;
    private options;
    private ctx;
    private map;
    private dispatcher;
    private recalculateDragHandler;
    private recalculateHandler;
    private _dirty;
    private set waypointOrigin(value);
    private get waypointOrigin();
    get dirty(): boolean;
    constructor(options?: Partial<MousePluginOptions>);
    onAdd(ctx: LibreRouting): void;
    onRemove(): void;
    private onMapClick;
    private onMapMove;
    private onMousedown;
    private onMouseup;
    private fire;
    on(event: any, callback: any): void;
    off(event: any, callback: any): void;
    private addWaypoint;
    private updateWaypoint;
}
export {};
