import type { Transform } from "@itwin/core-geometry";
import { Point3d } from "@itwin/core-geometry";
import { StyleSet } from "./GraphicStyle.js";
import { TextMarker } from "./TextMarker.js";
import type { DecorateContext, GraphicBuilder } from "@itwin/core-frontend";
import type { FormatterSpec } from "@itwin/core-quantity";
import type { TextEntry } from "./TextMarker.js";
export declare class Polygon {
    isSelected: boolean;
    drawMarker: boolean;
    drawFillArea: boolean;
    private _sheetToWorldTransform?;
    private _points;
    private _perimeter;
    private _area;
    private _areaXY;
    private _overrideText?;
    private _textMarker;
    private _styleSet;
    private _areaFormatterSpecProvider?;
    get points(): Point3d[];
    get perimeter(): number;
    get area(): number;
    get areaXY(): number;
    get overrideText(): string[] | TextEntry[] | undefined;
    set overrideText(text: string[] | TextEntry[] | undefined);
    get center(): Point3d;
    get textMarker(): TextMarker;
    get styleSet(): StyleSet;
    set styleSet(value: StyleSet);
    /** @deprecated Not used in Polygon.ts anymore, will eventually be removed */
    set worldScale(_scale: number | undefined);
    /** @deprecated Not used in Polygon.ts anymore, will eventually be removed */
    get worldScale(): number;
    set sheetToWorldTransform(transform: Transform);
    get sheetToWorldTransform(): Transform | undefined;
    set areaFormatterSpecProvider(provider: (() => FormatterSpec | undefined) | undefined);
    constructor(points: Point3d[], copyPoints?: boolean, styleSet?: StyleSet, areaFormatterSpecProvider?: () => FormatterSpec | undefined);
    recomputeFromPoints(): void;
    setPoints(points: Point3d[], copyPts?: boolean, recompute?: boolean): void;
    refreshTextMarker(): void;
    private setTextToMarker;
    private copyPoints;
    drawTextMarker(context: DecorateContext): void;
    addToGraphicBuilder(gBuilder: GraphicBuilder, styleOverride?: string): void;
    makeSelectable(isSelectable: boolean): void;
    private getCenter;
    private calculatePerimeter;
}
//# sourceMappingURL=Polygon.d.ts.map