import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, Visible2DAtomType, deepPartial } from '../../../common/data-type';
import { PoiType, PoiEntityAtomType, IGenerate } from '../../../common/interface/custom-poi';
import { ObjectController } from '../../../common/object-controller';
/**
 * @public
 * @class CustomPoi
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class CustomPoi extends ObjectController implements ObjectAbstract {
    className: string;
    private Note2dEntityAtom;
    private TransformAtom2D;
    private Visible2DAtom;
    /**
     * @constructor
     * @param {PoiType} opt (optional)
     */
    constructor(opt?: PoiType);
    get overlapOrder(): number;
    set overlapOrder(overlapOrder: number);
    get hideDistance(): number;
    set hideDistance(hideDistance: number);
    get hideType(): string;
    set hideType(hideType: string);
    get scaleMode(): string;
    set scaleMode(scaleMode: string);
    get url(): string;
    set url(url: string);
    get size(): Array<number>;
    set size(size: Array<number>);
    get clickTop(): boolean;
    set clickTop(clickTop: boolean);
    get hoverTop(): boolean;
    set hoverTop(hoverTop: boolean);
    GetOverlapOrder(): Promise<ResultType>;
    SetOverlapOrder(overlapOrder: number): Promise<ResultType>;
    GetHideDistance(): Promise<ResultType>;
    SetHideDistance(hideDistance: number): Promise<ResultType>;
    GetHideType(): Promise<ResultType>;
    SetHideType(hideType: string): Promise<ResultType>;
    GetScaleMode(): Promise<ResultType>;
    SetScaleMode(scaleMode: string): Promise<ResultType>;
    GetUrl(): Promise<ResultType>;
    SetUrl(url: string): Promise<ResultType>;
    GetSize(): Promise<ResultType>;
    SetSize(size: Array<number>): Promise<ResultType>;
    GetClickTop(): Promise<ResultType>;
    SetClickTop(clickTop: boolean): Promise<ResultType>;
    GetHoverTop(): Promise<ResultType>;
    SetHoverTop(hoverTop: boolean): Promise<ResultType>;
    /**
     * @public
     * @function GetVisible2DScheme
     * @returns {{Visible2DAtom: Visible2DAtomType}}
     */
    GetVisible2DScheme(): {
        Visible2DAtom: Visible2DAtomType;
    };
    /**
     * @public
     * @function GetScheme
     * @returns {{Note2dEntityAtom: PoiEntityAtomType}}
     */
    GetScheme(): {
        Note2dEntityAtom: PoiEntityAtomType;
    };
    /**
     * @private
     * @function getTransform2DEntityData
     * @returns {TransformAtom2DType}
     */
    private getTransform2DEntityData;
    /**
     * @private
     * @function setTransform2DEntityData
     * @param {Partial<TransformAtom2DType>} opt
     * @returns {void}
     */
    private setTransform2DEntityData;
    /**
     * @public
     * @async
     * @function SetVisible2D
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    SetVisible2D(opt: deepPartial<Visible2DAtomType>): Promise<ResultType>;
    /**
     * @private
     * @async
     * @function handleVisible2DAction
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {Promise<ResultType>}
     */
    private handleVisible2DAction;
    /**
     * @private
     * @function GetVisible2DData
     * @returns {Partial<Visible2DAtomType>}
     */
    private GetVisible2DData;
    /**
     * @private
     * @function SetVisible2DData
     * @param {deepPartial<Visible2DAtomType>} opt
     * @returns {void}
     */
    private SetVisible2DData;
    /**
     * @public
     * @function GetData
     * @returns {PoiType}
     */
    GetData(): PoiType;
    /**
     * @public
     * @function SetData
     * @param {PoiType} opt
     * @returns {void}
     */
    SetData(opt: PoiType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {PoiType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: PoiType): IGenerate;
    /**
     * @public
     * @function GetValidateRules
     * @returns {PoiType}
     */
    GetValidateRules(): PoiType;
    /**
     * @public
     * @function Validate
     * @param {PoiType} opt
     * @returns {void}
     */
    Validate(opt: PoiType): void;
    /**
     * @private
     * @function validateVisible2D
     * @param {deepPartial<Visible2DAtomType>} visible2D
     * @returns {void}
     */
    private validateVisible2D;
}
export default CustomPoi;
