/**
 * Used metadata:
 *
 *  - `disclaimer`: The disclaimer text for this element.
 *      For WMS and WMTS layers, layer groups and themes.
 *
 * @param {JQuery} $element Element.
 * @param {angular.ISCEService} $sce Angular sce service.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @param {angular.IScope} $rootScope Angular rootScope.
 * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog.
 * @param {import('ngeo/message/Disclaimer').MessageDisclaimerService} ngeoDisclaimer Ngeo Disclaimer
 *    service.
 * @param {import('ngeo/misc/EventHelper').EventHelper} ngeoEventHelper Ngeo Event Helper.
 * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper.
 * @param {import('gmf/options').gmfDisclaimerOptions} gmfDisclaimerOptions The options.
 * @class
 * @ngdoc controller
 * @ngname GmfDisclaimerController
 */
export function DisclaimerController($element: JQuery, $sce: angular.ISCEService, $timeout: angular.ITimeoutService, $rootScope: angular.IScope, gettextCatalog: angular.gettext.gettextCatalog, ngeoDisclaimer: import("ngeo/message/Disclaimer").MessageDisclaimerService, ngeoEventHelper: import("ngeo/misc/EventHelper").EventHelper, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper, gmfDisclaimerOptions: import("gmf/options").gmfDisclaimerOptions): void;
export class DisclaimerController {
    /**
     * Used metadata:
     *
     *  - `disclaimer`: The disclaimer text for this element.
     *      For WMS and WMTS layers, layer groups and themes.
     *
     * @param {JQuery} $element Element.
     * @param {angular.ISCEService} $sce Angular sce service.
     * @param {angular.ITimeoutService} $timeout Angular timeout service.
     * @param {angular.IScope} $rootScope Angular rootScope.
     * @param {angular.gettext.gettextCatalog} gettextCatalog Gettext catalog.
     * @param {import('ngeo/message/Disclaimer').MessageDisclaimerService} ngeoDisclaimer Ngeo Disclaimer
     *    service.
     * @param {import('ngeo/misc/EventHelper').EventHelper} ngeoEventHelper Ngeo Event Helper.
     * @param {import('ngeo/map/LayerHelper').LayerHelper} ngeoLayerHelper Ngeo Layer Helper.
     * @param {import('gmf/options').gmfDisclaimerOptions} gmfDisclaimerOptions The options.
     * @class
     * @ngdoc controller
     * @ngname GmfDisclaimerController
     */
    constructor($element: JQuery, $sce: angular.ISCEService, $timeout: angular.ITimeoutService, $rootScope: angular.IScope, gettextCatalog: angular.gettext.gettextCatalog, ngeoDisclaimer: import("ngeo/message/Disclaimer").MessageDisclaimerService, ngeoEventHelper: import("ngeo/misc/EventHelper").EventHelper, ngeoLayerHelper: import("ngeo/map/LayerHelper").LayerHelper, gmfDisclaimerOptions: import("gmf/options").gmfDisclaimerOptions);
    /**
     * @type {import('gmf/options').gmfDisclaimerOptions}
     */
    options: import("gmf/options").gmfDisclaimerOptions;
    /**
     * @type {?import('ol/Map').default}
     */
    map: import("ol/Map").default | null;
    /**
     * Visibility that is set to true when a new msg is there.
     *
     * @type {boolean}
     */
    visibility: boolean;
    /**
     * Trusted html messages that can be displayed as html.
     *
     * @type {string|undefined}
     */
    msg: string | undefined;
    /**
     * @type {string[]}
     */
    msgs_: string[];
    /**
     * @type {angular.ISCEService}
     */
    sce_: angular.ISCEService;
    /**
     * @type {angular.ITimeoutService}
     */
    timeout_: angular.ITimeoutService;
    /**
     * @type {angular.IScope}
     */
    rootScope_: angular.IScope;
    /**
     * @type {angular.gettext.gettextCatalog}
     */
    gettextCatalog_: angular.gettext.gettextCatalog;
    /**
     * @type {JQuery}
     */
    element_: JQuery;
    /**
     * @type {import('ngeo/message/Disclaimer').MessageDisclaimerService}
     */
    disclaimer_: import("ngeo/message/Disclaimer").MessageDisclaimerService;
    /**
     * @type {import('ngeo/misc/EventHelper').EventHelper}
     */
    eventHelper_: import("ngeo/misc/EventHelper").EventHelper;
    /**
     * @type {import('ngeo/map/LayerHelper').LayerHelper}
     */
    ngeoLayerHelper_: import("ngeo/map/LayerHelper").LayerHelper;
    /**
     * @type {?import('ol/layer/Group').default}
     */
    dataLayerGroup_: import("ol/layer/Group").default | null;
    /**
     * Initialize the controller.
     */
    $onInit(): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleLayersAdd_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {Event|import('ol/events/Event').default} evt Event.
     */
    handleLayersRemove_(evt: Event | import("ol/events/Event").default): void;
    /**
     * @param {import('ol/layer/Base').default} layer Layer.
     */
    registerLayer_(layer: import("ol/layer/Base").default): void;
    /**
     * @param {import('ol/layer/Base').default} layer Layer.
     */
    unregisterLayer_(layer: import("ol/layer/Base").default): void;
    $onDestroy(): void;
    /**
     * @param {string} layerUid Layer identifier.
     * @param {string} msg Disclaimer message.
     */
    showDisclaimerMessage_(layerUid: string, msg: string): void;
    /**
     * @param {import('ol/layer/Base').default} layer Layer
     */
    closeAll_(layer: import("ol/layer/Base").default): void;
    /**
     * @param {import('ol/layer/Base').default} layer Layer
     */
    showAll_(layer: import("ol/layer/Base").default): void;
    /**
     * @param {import('ol/layer/Base').default} layer Layer
     */
    update_(layer: import("ol/layer/Base").default): void;
    /**
     * @param {string} layerUid Layer identifier.
     * @param {string} msg Disclaimer message.
     */
    closeDisclaimerMessage_(layerUid: string, msg: string): void;
}
export namespace DisclaimerController {
    let $inject: string[];
}
export default myModule;
/**
 * Extension of type {import('ngeo/message/Message').Message}
 */
export type Message = {
    /**
     * The delay in milliseconds the message is shown
     */
    delay?: number;
    /**
     * Whether the message should be displayed inside a popup window or not.
     */
    popup?: boolean;
    /**
     * The message text to display.
     */
    msg: string;
    /**
     * The target element (or selector to get the element) in which
     * to display the message. If not defined, then the default target of the notification service is used.
     */
    target?: JQuery | Element | string;
    /**
     * The type of message.
     */
    type?: string;
    /**
     * The layer ID
     */
    layerUid?: string;
};
import angular from 'angular';
/**
 * Extension of type {import('ngeo/message/Message').Message}
 *
 * @typedef {Object} Message
 * @property {number} [delay=7000] The delay in milliseconds the message is shown
 * @property {boolean} [popup=false] Whether the message should be displayed inside a popup window or not.
 * @property {string} msg The message text to display.
 * @property {JQuery|Element|string} [target] The target element (or selector to get the element) in which
 *    to display the message. If not defined, then the default target of the notification service is used.
 * @property {string} [type='info'] The type of message.
 * @property {string} [layerUid] The layer ID
 */
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
