import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, Polyline2DType, Coord2DType, Polyline2DEntityAtomType, BasicInfoAtomType } from '../../../common/data-type';
import { ObjectCommon } from '../../../common/object-common';
/**
 * @public
 * @class Polyline
 * @extends ObjectCommon
 * @implements ObjectAbstract
 */
declare class Polyline2D extends ObjectCommon implements ObjectAbstract {
    className: string;
    private Polyline2DEntityAtom;
    /**
     * @constructor
     * @param {Polyline2DType} opt (optional)
     */
    constructor(opt?: Polyline2DType);
    get polyline(): Array<Coord2DType>;
    set polyline(polyline: Array<Coord2DType>);
    GetPolyline(): Promise<ResultType>;
    SetPolyline(polyline: Array<Coord2DType>): Promise<ResultType>;
    /**
     * @public
     * @function GetScheme
     * @returns {{Polyline2DEntityAtom: Polyline2DEntityAtomType}}
     */
    GetScheme(): {
        Polyline2DEntityAtom: Polyline2DEntityAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {Polyline2DType}
     */
    GetData(): Polyline2DType;
    /**
     * @public
     * @function SetData
     * @param {Polyline2DType} opt
     * @returns {void}
     */
    SetData(opt: Polyline2DType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {Polyline2DType} opt
     * @returns {{Polyline2DEntityAtom?: Partial<Polyline2DEntityAtomType>, BasicInfoAtom?: Partial<BasicInfoAtomType>}}
     */
    generateAtomData(opt: Polyline2DType): {
        Polyline2DEntityAtom?: Partial<Polyline2DEntityAtomType>;
        BasicInfoAtom?: Partial<BasicInfoAtomType>;
    };
    /**
     * @public
     * @function GetValidateRules
     * @returns {Polyline2DType}
     */
    GetValidateRules(): Polyline2DType;
    /**
     * @public
     * @function Validate
     * @param {Polyline2DType} opt
     * @returns  {void}
     */
    Validate(opt: Polyline2DType): void;
}
export default Polyline2D;
