import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, PolygonType, PolygonLoopType, PolygonEntityAtomType, BasicInfoAtomType } from '../../../common/data-type';
import { ObjectCommon } from '../../../common/object-common';
/**
 * @public
 * @class Polygon
 * @extends ObjectCommon
 * @implements ObjectAbstract
 */
declare class Polygon extends ObjectCommon implements ObjectAbstract {
    className: string;
    private PolygonEntityAtom;
    /**
     * @constructor
     * @param {PolygonType} opt (optional)
     */
    constructor(opt?: PolygonType);
    get polygon(): PolygonLoopType;
    set polygon(polygon: PolygonLoopType);
    GetPolygon(): Promise<ResultType>;
    SetPolygon(polygon: PolygonLoopType): Promise<ResultType>;
    /**
     * @public
     * @function GetScheme
     * @returns {{PolygonEntityAtom: PolygonEntityAtomType}}
     */
    GetScheme(): {
        PolygonEntityAtom: PolygonEntityAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {PolygonType}
     */
    GetData(): PolygonType;
    /**
     * @public
     * @function SetData
     * @param {PolygonType} opt
     * @returns {void}
     */
    SetData(opt: PolygonType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {PolygonType} opt
     * @returns {{PolygonEntityAtom?: Partial<PolygonEntityAtomType>, BasicInfoAtom?: Partial<BasicInfoAtomType>}}
     */
    generateAtomData(opt: PolygonType): {
        PolygonEntityAtom?: Partial<PolygonEntityAtomType>;
        BasicInfoAtom?: Partial<BasicInfoAtomType>;
    };
    /**
     * @public
     * @function GetValidateRules
     * @returns {PolygonType}
     */
    GetValidateRules(): PolygonType;
    /**
     * @public
     * @function Validate
     * @param {PolygonType} opt
     * @returns {void}
     */
    Validate(opt: PolygonType): void;
}
export default Polygon;
