/**
 * Provides a service for setting/unsetting background layers
 * in maps.
 *
 * The notion of background/base layers doesn't exist in OpenLayers. This
 * service adds that notion.
 *
 * Setting a background layer to map is done with the `set` function:
 *
 *     ngeoBackgroundLayerMgr.set(map, layer);
 *
 * To unset the background layer pass `null` as the `layer` argument:
 *
 *     ngeoBackgroundLayerMgr.set(map, null);
 *
 * The `get` function returns the current background layer of the map passed
 * as an argument. `null` is returned if the map doesn't have a background
 * layer.
 *
 * The background layer is always added at index 0 in the map's layers
 * collection. When a background layer is set it is inserted (at index 0)
 * if the map does not already have a background layer, otherwise the
 * new background layer replaces the previous one at index 0.
 *
 * Users can subscribe to a 'change' event to get notified when the background
 * layer changes:
 *
 *     ngeoBackgroundLayerMgr.on('change', function(e) {
 *       // do something with the layer
 *       let layer = ngeoBackgroundLayerMgr.get();
 *       // know which layer was used before
 *       let previous = e.previous
 *     });
 *
 * See our live examples:
 * [../examples/backgroundlayer.html](../examples/backgroundlayer.html)
 * [../examples/backgroundlayerdropdown.html](../examples/backgroundlayerdropdown.html)
 *
 * @hidden
 */
export class MapBackgroundLayerManager extends olObservable {
    /**
     * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Themes service.
     */
    constructor(ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper);
    /**
     * Object used to track if maps have background layers.
     *
     * @type {Object<string, boolean>}
     * @private
     */
    private mapUids_;
    /**
     * @type {import('ngeo/map/LayerHelper').LayerHelper}
     * @private
     */
    private ngeoLayerHelper_;
    /**
     * Return the current background layer of a given map. `null` is returned if
     * the map does not have a background layer.
     *
     * @param {import('ol/Map').default} map Map.
     * @returns {?import('ol/layer/Base').default} layer The background layer.
     */
    get(map: import("ol/Map").default): import("ol/layer/Base").default | null;
    /**
     * Set the background layer of a map. If `layer` is `null` the background layer
     * is removed.
     *
     * @param {import('ol/Map').default} map The map.
     * @param {import('ol/layer/Base').default} layer The new background layer.
     * @returns {?import('ol/layer/Base').default} The previous background layer.
     */
    set(map: import("ol/Map").default, layer: import("ol/layer/Base").default): import("ol/layer/Base").default | null;
    /**
     * Return the current background layer overlay of a given map, used by the opacity slider.
     * `null` is returned if the map does not have an opacity background layer.
     *
     * @param {import('ol/Map').default} map Map.
     * @returns {?import('ol/layer/Base').default} layer The opacity background layer.
     */
    getOpacityBgLayer(map: import("ol/Map").default): import("ol/layer/Base").default | null;
    /**
     * Set an background layer overlay, used by the opacity slider.
     *
     * @param {import('ol/Map').default} map The map.
     * @param {import('ol/layer/Base').default} layer The opacity background layer.
     */
    setOpacityBgLayer(map: import("ol/Map").default, layer: import("ol/layer/Base").default): void;
    /**
     * @param {import('ol/Map').default} map The map.
     * @param {Object<string, string>} dimensions The global dimensions object.
     */
    updateDimensions(map: import("ol/Map").default, dimensions: {
        [x: string]: string;
    }): void;
}
export namespace MapBackgroundLayerManager {
    let $inject: string[];
}
export default myModule;
export type BackgroundEventDetails = {
    current: import("ol/layer/Base").default;
    previous: import("ol/layer/Base").default | null;
};
export type BackgroundEvent = import("ngeo/CustomEvent").default<BackgroundEventDetails>;
import olObservable from 'ol/Observable';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
import angular from 'angular';
