/**
 @module viw-webgl-viewer/gizmos/measure
*/
import { InputScheme } from '../../inputs/input';
import { InputAction } from '../../raycaster';
import { Measure } from './measure';
export type MeasureStage = 'ready' | 'active' | 'done' | 'failed';
/**
 * Inputs scheme for measuring as a small state machine.
 */
export declare class MeasureFlow implements InputScheme {
    private readonly _gizmoMeasure;
    private _stage;
    private removeMouseListener;
    constructor(gizmoMeasure: Measure);
    onProgress: ((stage: MeasureStage) => void) | undefined;
    onComplete: ((success: boolean) => void) | undefined;
    get stage(): MeasureStage;
    private unregister;
    /**
     * Cancels current measuring flow.
     */
    abort(): void;
    /**
     * Implementation for InputScheme onMainAction
     */
    onMainAction(action: InputAction): void;
    /**
     * Implementation for InputScheme onIdleAction
     */
    onIdleAction(action: InputAction): void;
    /**
     * Implementation for InputScheme onKeyAction
     */
    onKeyAction(key: number): boolean;
}
