import { TAGS } from './constants';
import { ISOXMLManager } from '../ISOXMLManager';
import { XMLElement } from '../types';
import { LineString } from './LineString';
import { Entity, EntityConstructor } from '../types';
export declare enum PolygonPolygonTypeEnum {
    PartfieldBoundary = "1",
    TreatmentZone = "2",
    WaterSurface = "3",
    Building = "4",
    Road = "5",
    Obstacle = "6",
    Flag = "7",
    Other = "8",
    Mainfield = "9",
    Headland = "10",
    BufferZone = "11",
    Windbreak = "12"
}
export type PolygonAttributes = {
    PolygonType: PolygonPolygonTypeEnum;
    PolygonDesignator?: string;
    PolygonArea?: number;
    PolygonColour?: number;
    LineString?: LineString[];
    ProprietaryAttributes?: {
        [name: string]: string;
    };
    ProprietaryTags?: {
        [tag: string]: XMLElement[];
    };
};
export declare class Polygon implements Entity {
    attributes: PolygonAttributes;
    isoxmlManager: ISOXMLManager;
    tag: TAGS;
    constructor(attributes: PolygonAttributes, isoxmlManager: ISOXMLManager);
    static fromXML(xml: XMLElement, isoxmlManager: ISOXMLManager, internalId?: string, targetClass?: EntityConstructor): Promise<Entity>;
    toXML(): XMLElement;
}
