import type { BeButtonEvent, DecorateContext, 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";
import { SheetMeasurementsHelper } from "../api/SheetMeasurementHelper.js";
import { type DialogItem, type DialogPropertySyncItem } from "@itwin/appui-abstract";
export declare class MeasureDistanceTool extends MeasurementToolBase<DistanceMeasurement, MeasureDistanceToolModel> {
    static toolId: string;
    static iconSpec: string;
    private static readonly useMultiPointPropertyName;
    private _useMultiPointMeasurement;
    protected get allowedDrawingTypes(): SheetMeasurementsHelper.DrawingType[];
    static get flyover(): string;
    static get description(): string;
    static get keyin(): string;
    protected get feature(): Feature | undefined;
    constructor(enableSheetMeasurements?: boolean, allowedViewportCallback?: (vp: ScreenViewport) => boolean);
    onPostInstall(): Promise<void>;
    onRestartTool(): Promise<void>;
    onReinitialize(): Promise<void>;
    onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
    private sheetMeasurementsDataButtonDown;
    isValidLocation(ev: BeButtonEvent, isButtonEvent: boolean): boolean;
    decorate(context: DecorateContext): void;
    private _sendHintsToAccuDraw;
    onMouseMotion(ev: BeButtonEvent): Promise<void>;
    protected createToolModel(): MeasureDistanceToolModel;
    protected updateToolAssistance(): void;
    onInstall(): Promise<boolean>;
    onCleanup(): Promise<void>;
    supplyToolSettingsProperties(): DialogItem[];
    applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean>;
}
//# sourceMappingURL=MeasureDistanceTool.d.ts.map