import { ColorParameter, BaseTool, GeomItem, ParameterOwner, Xfo, ZeaPointerEvent } from '@zeainc/zea-engine';
import { Measure } from './Measure';
import { MeasurementChange } from './MeasurementChange';
import { AppData } from '../../types/types';
/**
 * UI Tool for measurements
 *
 * @extends {BaseTool}
 */
declare class MeasureTool extends BaseTool {
    protected appData: AppData;
    colorParam: ColorParameter;
    protected measurement: Measure;
    protected measurementChange: MeasurementChange;
    protected highlightedItemA: GeomItem;
    protected highlightedItemA_params: ParameterOwner;
    protected highlightedItemA_componentId: number;
    protected highlightedItemA_highlightKey: string;
    protected highlightedItemB: GeomItem;
    protected highlightedItemB_params: ParameterOwner;
    protected highlightedItemB_componentId: number;
    protected highlightedItemB_highlightKey: string;
    protected stage: number;
    protected numStages: number;
    private prevCursor;
    protected geomConstraints: Record<string, string[]>;
    /**
     * Creates an instance of MeasureDistanceTool.
     *
     * @param appData - The appData value
     */
    constructor(appData: AppData);
    /**
     * The activateTool method.
     */
    activateTool(): void;
    /**
     * The deactivateTool method.
     */
    deactivateTool(): void;
    /**
     * @protected
     * @param geomItem
     * @returns
     */
    getGeomParams(geomItem: GeomItem, componentId?: number): Promise<ParameterOwner>;
    /**
     * @protected
     * @param geomItem
     * @returns
     */
    getGeomParamsSync(geomItem: GeomItem, componentId?: number): ParameterOwner;
    /**
     * @private
     * @param geomItem
     * @returns
     */
    getGeomXfo(geomItem: GeomItem, componentId?: number): Xfo;
    /**
     * Checks to see if the surface is appropriate for this kind of measurement.
     * @param geomItem - The geomItem to check
     * @return {boolean}
     */
    checkGeom(geomItem: GeomItem, componentId?: number): Promise<ParameterOwner | null>;
    /**
     *
     *
     * @param event - The event value
     */
    onPointerMove(event: ZeaPointerEvent): void;
    /**
     *
     *
     * @param event - The event value
     */
    onPointerUp(event: ZeaPointerEvent): void;
}
export { MeasureTool };
//# sourceMappingURL=MeasureTool.d.ts.map