import { Plane3dByOriginAndUnitNormal } from "@itwin/core-geometry";
import type { BeButtonEvent, ScreenViewport } from "@itwin/core-frontend";
import { EventHandled } from "@itwin/core-frontend";
import type { Feature } from "../api/FeatureTracking.js";
import { MeasurementToolBase } from "../api/MeasurementTool.js";
import type { DistanceMeasurement } from "../measurements/DistanceMeasurement.js";
import { MeasureDistanceToolModel } from "../toolmodels/MeasureDistanceToolModel.js";
export declare class MeasurePerpendicularTool extends MeasurementToolBase<DistanceMeasurement, MeasureDistanceToolModel> {
    static toolId: string;
    static iconSpec: string;
    protected _firstSurface?: Plane3dByOriginAndUnitNormal;
    static get flyover(): string;
    static get description(): string;
    static get keyin(): string;
    constructor(allowedViewportCallback?: (vp: ScreenViewport) => boolean);
    protected get feature(): Feature | undefined;
    onRestartTool(): Promise<void>;
    private _computePlanePoint;
    onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
    onMouseMotion(ev: BeButtonEvent): Promise<void>;
    protected createToolModel(): MeasureDistanceToolModel;
    protected updateToolAssistance(): void;
}
//# sourceMappingURL=MeasurePerpendicularTool.d.ts.map