import { MeasurementInterface } from './MeasurementInterface';
import { Vector3 } from '../types/Math';
import type { ApiController } from '../controllers/ApiController';
import { MeasurementOrigin } from '../api/analytic_events';
export declare const MEASURE_MODES: {
    POINT_TO_POINT: string;
    SHORTEST_DISTANCE: string;
};
export type MeasureMode = (typeof MEASURE_MODES)[keyof typeof MEASURE_MODES];
export declare class MeasurementManager {
    enabled: boolean;
    private readonly apiController;
    private currentMode;
    private readonly measureModeToImplementationMap;
    constructor(params: {
        apiController: ApiController;
        measurements: {
            measurementMode: MeasureMode;
            implementation: MeasurementInterface;
        }[];
    });
    setGlobalOffset(params: Vector3): void;
    setMeasurementEnabled(params: {
        measurementMode?: MeasureMode;
        enable: boolean;
        origin: MeasurementOrigin;
    }): void;
    toggleMeasurement(params: {
        measurementMode: MeasureMode;
        origin: MeasurementOrigin;
    }): void;
    toggleCurrentMeasurement(params: {
        origin: MeasurementOrigin;
    }): void;
    handleKeydown(curKey: number): void;
    private handleESC;
    private updateMeasurementState;
}
