import { Style } from 'ol/style';
export declare enum DrawingShape {
    Point = 0,
    Polyline = 1,
    Polygon = 2,
    Square = 3,
    Rectangle = 4,
    Disk = 5,
    FreehandPolyline = 6,
    FreehandPolygon = 7
}
export declare class DrawingState {
    activeTool: DrawingShape | null;
    features: DrawingFeature[];
}
export type SerializedFeature = {
    n: string;
    sc: string;
    sw: number;
    fc: string;
    nfz: number;
    mfz: number;
    f: string;
    g: object;
    dn: boolean;
    dm: boolean;
    nc: string;
    mc: string;
    s: boolean;
    t: DrawingShape;
};
export default class DrawingFeature {
    private _tool;
    private _name;
    private _nameColor;
    private _strokeColor;
    private _strokeWidth;
    private _fillColor;
    private _nameFontSize;
    private _measureFontSize;
    private _measureColor;
    private _font;
    private _displayName;
    private _displayMeasure;
    private _selected;
    geojson: object;
    id: string;
    onChange: (f: DrawingFeature) => void;
    constructor(tool: DrawingShape, geojson?: object, name?: string | null);
    get name(): string;
    set name(v: string);
    get strokeColor(): string;
    set strokeColor(v: string);
    get strokeWidth(): number;
    set strokeWidth(v: number);
    get fillColor(): string;
    set fillColor(v: string);
    get nameFontSize(): number;
    set nameFontSize(v: number);
    get measureFontSize(): number;
    set measureFontSize(v: number);
    get font(): string;
    set font(v: string);
    get displayName(): boolean;
    set displayName(v: boolean);
    get displayMeasure(): boolean;
    set displayMeasure(v: boolean);
    get nameColor(): string;
    set nameColor(v: string);
    get measureColor(): string;
    set measureColor(v: string);
    get type(): DrawingShape;
    get selected(): boolean;
    set selected(v: boolean);
    addToState(): void;
    serialize(): SerializedFeature;
    getLengthText(length: number): string;
    getAreaText(area: number): string;
    getCoordText(coord: number[]): string;
    isPointOrPolyline(): boolean;
    getVertexStyle(activeNode?: boolean): Style;
    static deserialize(serializedFeature: SerializedFeature): DrawingFeature;
    static circleToPolygon(center: number[], radius: number, nbEdges?: number): number[][];
}
