import { ObjectAbstract } from '../../../common/object-abstract';
import { IPolygon2DAtom, ResultType } from '../../../common/data-type';
import { RangeType, RangeEntityAtomType, IGenerate, CirclePolygon2DAtomType } from '../../../common/interface/range';
import { ObjectController } from '../../../common/object-controller';
/**
 * @public
 * @class Range
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class Range extends ObjectController implements ObjectAbstract {
    className: string;
    private apiClassName;
    private CirclePolygon2DAtom;
    private RangeEntityAtom;
    private Polygon2DAtom;
    /**
     * @constructor
     * @param {RangeType} opt (optional)
     */
    constructor(opt?: RangeType);
    /**
     * @public
     * @function GetScheme
     * @returns {{RangeEntityAtom: RangeEntityAtomType, Polygon2DAtom: IPolygon2DAtom, CirclePolygon2DAtom: CirclePolygon2DAtomType}}
     */
    GetScheme(): {
        RangeEntityAtom: RangeEntityAtomType;
        Polygon2DAtom: IPolygon2DAtom;
        CirclePolygon2DAtom: CirclePolygon2DAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {RangeType}
     */
    GetData(): RangeType;
    /**
     * @public
     * @function SetData
     * @param {RangeType} opt
     * @returns {void}
     */
    SetData(opt: RangeType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {RangeType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: RangeType): IGenerate;
    /**
     * @public
     * @function GetRangeInfo
     * @returns {Promise<ResultType>}
     */
    GetRangeInfo(): Promise<ResultType>;
    /**
     * @public
     * @function GetValidateRules
     * @returns {RangeType}
     */
    GetValidateRules(): RangeType;
    /**
     * @public
     * @function Validate
     * @param {RangeType} opt
     * @returns {void}
     */
    Validate(opt: RangeType): void;
}
export default Range;
