import { OverlayEvent } from "../event";
/**
 * 覆盖物基类，该类无法实例化
 */
declare class Overlay {
    protected _id: string;
    protected _bid: string;
    protected _delegate: any;
    protected _layer: any;
    protected _state: any;
    protected _show: boolean;
    protected _style: any;
    protected _attr: {};
    protected _allowDrillPicking: boolean;
    protected _contextMenu: any[];
    protected _overlayEvent: OverlayEvent;
    constructor();
    /**
     * 唯一标识
     * @readonly
     */
    get overlayId(): string;
    /**
     * 覆盖物类型
     * @readonly
     */
    get type(): string;
    set id(id: string);
    /**
     * 业务唯一标识
     */
    get id(): string;
    set show(show: boolean);
    /**
     * 是否显示
     */
    get show(): boolean;
    set attr(attr: {});
    /**
     * 业务属性
     */
    get attr(): {};
    set allowDrillPicking(allowDrillPicking: boolean);
    /**
     * 是否可以穿透选择，默认值：false
     */
    get allowDrillPicking(): boolean;
    get overlayEvent(): OverlayEvent;
    get delegate(): any;
    /**
     * 覆盖物状态
     * @readonly
     */
    get state(): any;
    set contextMenu(menus: any[]);
    get contextMenu(): any[];
    /**
     *
     * @param type
     * @returns {any}
     */
    protected _getLayerCollection(type: string): any;
    /**
     * The hook for mount layer
     * Subclasses need to be overridden
     * @private
     */
    protected _mountedHook(): void;
    /**
     * The hook for added
     * @returns {boolean}
     * @private
     */
    protected _addedHook(): boolean;
    /**
     * The hook for removed
     * Subclasses need to be overridden
     * @private
     */
    _removedHook(): void;
    /**
     * Add handler
     * @param layer
     * @private
     */
    _onAdd(layer: any): void;
    /**
     * Remove handler
     * @private
     */
    _onRemove(): void;
    /**
     * Sets Text with Style
     * @param text
     * @param textStyle
     * @returns {Overlay}
     */
    setLabel(text: any, textStyle: Cesium.LabelGraphics): this;
    /**
     * 设置风格
     * @param style
     * @returns {Overlay}
     */
    setStyle(style: any): this;
    /**
     * Removes from layer
     * @returns {Overlay}
     */
    remove(): this;
    /**
     * adds to layer
     * @param layer
     * @returns {Overlay}
     */
    addTo(layer: any): this;
    /**
     * Subscribe event
     * @param type
     * @param callback
     * @param context
     * @returns {Overlay}
     */
    on(type: string, callback: any, context: any): this;
    /**
     * Unsubscribe event
     * @param type
     * @param callback
     * @param context
     * @returns {Overlay}
     */
    off(type: any, callback: any, context: any): this;
    /**
     * Trigger subscription event
     * @param type
     * @param params
     * @returns {Overlay}
     */
    fire(type: any, params: any): this;
    /**
     *
     * @param type
     */
    static registerType(type: string): void;
    /**
     *
     * @param type
     * @returns {*|undefined}
     */
    static getOverlayType(type: string): any;
}
export default Overlay;
