import Layer from 'ol/layer/Layer';
import { MapEventArgs, MapEventBusClass } from '../events';
import { ILayerItem } from './Models';
import XMap from './XMap';
export default class LayerManager {
    private xmap;
    private map;
    mapEventBus: MapEventBusClass;
    private target;
    private swipeLayerIndex;
    private MapLayers;
    /**
     * 图层
     * 描述对象列表
    */
    LayerItemList: Array<ILayerItem>;
    constructor(xmap: XMap, mapid: string);
    /**
     * 获得透视图层的索引
     */
    get SwipeLayerIndex(): number;
    /**
     * 图层字典
     */
    get Layers(): Map<string, Layer>;
    /**
     *通过LayerID,进行改变透视图层索引
     */
    changeSwipeLayerByID(layerID: string): void;
    /**
     * 直接修改：透视图层索引
     * @param idx
     */
    changeSwipeLayerIndex(idx: number): void;
    /** 初始化，增加监听事件 */
    private initEventListener;
    /**
     * 事件的相关处理工作
     */
    private removeLayer;
    /**
     * 复制图层
     * @param eArgs
     * @returns
     */
    private copyLayer;
    /**
     * 设置Swipe图册
     * @param eArgs
     */
    private changeSwipeLayerID;
    /**
     * 图层可见性调整
     * @param layerID 图层ID
     * @param visible
     */
    private layerVisibleHandler;
    /**
     * 图层透明色调整
     * @param layerID 图层ID
     * @param opacity
     */
    private layerOpacityHandler;
    private layerOrderHandler;
    /**
     * 图层定位调整
     * @param layerID 图层ID
     */
    layerLocateHandler(layerID: string): void;
    /**
     * 是否包括该图层ID
     * @param layerID 图层ID
     */
    hasLayer(layerID: string): boolean;
    /**
     * 根据图层ID获取对应的图层对象
     * @param layerID
     * @returns
     */
    getLayer(layerID: string): Layer;
    /**
     * 改变图层的透明度
     * @param layerID
     * @param opacity
     */
    changeLayerOpacity(layerID: string, opacity?: number): void;
    /**
     * 通过图层ID改变图层的可见性
     * @param layerID 图层ID
     * @param visible 可见性
     */
    changeLayerVisible(layerID: string, visible?: boolean): void;
    /**
     * 通过图层ID删除图层
     * @param layerID  图层ID
     * @returns
     */
    deleteLayerByID(layerID: string): boolean;
    /**
     * 根据索引删除某一个图层
     * @param index
     */
    deleteLayerByIndex(index: number): void;
    /**
     * 删除图层
     * @param thisLayer
     */
    deleteLayer(thisLayer: Layer): void;
    /**
     * 清空图层
     */
    clearLayers(): void;
    newEvtArgs(data?: any, eventObject?: any): MapEventArgs;
    /**
     * 注册地图的图层对象
     * @param layeritem
     */
    registerLayer(layer: Layer, layeritem?: ILayerItem): boolean;
    /**
     * 删除图层
     * @param layerID 图层ID
     * @returns
     */
    private deleteLayerItem;
    /**
     * 改变图层可见性
     * @param layerID 图层ID
     * @param visible 可见性
     */
    private changeLayerItemVisible;
    /**
     * 改变图层的透明度
     * @param layerID 图层ID
     * @param opacity 可见性
     */
    private changeLayerItemOpacity;
    /**
     * 上下调整图层顺序
     * @param layerID 图层ID
     * @param updown 1上  -1下
     * @returns
     */
    private changeLayerItemOrder;
    /**
     * 设置Swipe图层
     * @param layerID
     */
    private setSwipeLayerItem;
}
