import type { Point3d } from "@itwin/core-geometry";
import type { AreaMeasurementFormattingProps } from "../measurements/AreaMeasurement.js";
import { AreaMeasurement } from "../measurements/AreaMeasurement.js";
import { MeasurementToolModel } from "../api/MeasurementToolModel.js";
import type { DrawingMetadata } from "../api/Measurement.js";
declare enum State {
    SetMeasurementViewport = 0,
    AddPoint = 1
}
export declare class MeasureAreaToolModel extends MeasurementToolModel<AreaMeasurement> {
    static State: typeof State;
    private _currentState;
    private _currentViewportType?;
    private _currentMeasurement?;
    private _formatting?;
    constructor();
    get formatting(): AreaMeasurementFormattingProps | undefined;
    set formatting(formatting: AreaMeasurementFormattingProps | undefined);
    get drawingMetadata(): DrawingMetadata | undefined;
    set drawingMetadata(data: DrawingMetadata | undefined);
    set sheetViewId(id: string | undefined);
    get sheetViewId(): string | undefined;
    get currentState(): State;
    get hasEnoughPoints(): boolean;
    get dynamicMeasurement(): AreaMeasurement | undefined;
    setMeasurementViewport(viewType: string): boolean;
    addPoint(viewType: string, point: Point3d, isDynamic: boolean): boolean;
    /** Attemps to remove the last point of the current measurement.
     * * Fails if there is only one point left to prevent an invalid state.
     */
    popMeasurementPoint(): boolean;
    tryCommitMeasurement(): boolean;
    reset(clearMeasurements: boolean): void;
}
export {};
//# sourceMappingURL=MeasureAreaToolModel.d.ts.map