import type { DecorateContext, ScreenViewport } from "@itwin/core-frontend";
import { BeButtonEvent, EventHandled } from "@itwin/core-frontend";
import type { Feature } from "../api/FeatureTracking.js";
import { MeasurementToolBase } from "../api/MeasurementTool.js";
import type { AreaMeasurement, AreaMeasurementFormattingProps } from "../measurements/AreaMeasurement.js";
import { MeasureAreaToolModel } from "../toolmodels/MeasureAreaToolModel.js";
import { SheetMeasurementHelper } from "../api/SheetMeasurementHelper.js";
export declare class MeasureAreaTool extends MeasurementToolBase<AreaMeasurement, MeasureAreaToolModel> {
    static toolId: string;
    static iconSpec: string;
    protected get allowedDrawingTypes(): SheetMeasurementHelper.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, formatting?: AreaMeasurementFormattingProps);
    onRestartTool(): Promise<void>;
    onPostInstall(): Promise<void>;
    onReinitialize(): Promise<void>;
    onUndoPreviousStep(): Promise<boolean>;
    onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
    private sheetMeasurementsDataButtonDown;
    isValidLocation(ev: BeButtonEvent, isButtonEvent: boolean): boolean;
    private _sendHintsToAccuDraw;
    onResetButtonDown(ev: BeButtonEvent): Promise<EventHandled>;
    onMouseMotion(ev: BeButtonEvent): Promise<void>;
    protected createToolModel(): MeasureAreaToolModel;
    decorate(context: DecorateContext): void;
    protected updateToolAssistance(): void;
}
//# sourceMappingURL=MeasureAreaTool.d.ts.map