import { InteractionApi, InteractionHandler } from '../interactions';
import { EntityType } from '../types';
import { MeasurementController } from './controller';
export declare class MeasurementInteractionHandler implements InteractionHandler {
    private controller;
    private measurableEntityTypes;
    private element?;
    private api?;
    private cursor?;
    private measurementInteraction?;
    private rectObserver;
    private get elementRect();
    constructor(controller: MeasurementController, measurableEntityTypes: EntityType[]);
    initialize(element: HTMLElement, api: InteractionApi): void;
    dispose(): void;
    private addCursor;
    private clearCursor;
    private handlePointerMove;
    private handlePointerDown;
    private isMeasurableEntityUnderPointer;
    private measureEntityUnderPointer;
    protected ifInitialized<R>(f: (data: {
        element: HTMLElement;
        api: InteractionApi;
    }) => R): R;
    protected ifNoInteraction(event: PointerEvent, f: () => void | Promise<void>): void;
}
