/**
 * @typedef {function(): MessagePopup} PopupFactory
 */
/**
 * The options for a popup created by the popup factory.
 *
 * @typedef {Object} PopupOptions
 * @property {boolean} [autoDestroy=false] Whether the popup should be automatically destroyed when hidden
 *    or not.
 * @property {string} [cls] Extra class name to add to the popup.
 * @property {*} [content] The content of the popup. Either the content or URL must be set.
 * @property {string} [height] The height of the popup.
 * @property {string} [title] The title of the popup.
 * @property {string} [url] The URL to use for the iframe to include as content for the popup.
 * @property {string} [width] The width of the popup.
 */
/**
 * Provides a factory to create a popup in the page.
 * The factory returns a ngeo.message.Popup object.
 *
 * Example:
 *
 *     let popup = ngeoCreatePopup();
 *     popup.setTitle("A title");
 *     popup.setContent("Some content");
 *     popup.setOpen(true);
 *
 * @class
 * @param {angular.ICompileService} $compile The compile provider.
 * @param {angular.IScope} $rootScope The rootScope provider.
 * @param {angular.ISCEService} $sce Angular sce service.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @ngdoc service
 * @ngname ngeoCreatePopup
 * @hidden
 */
export function MessagePopup($compile: angular.ICompileService, $rootScope: angular.IScope, $sce: angular.ISCEService, $timeout: angular.ITimeoutService): void;
export class MessagePopup {
    /**
     * @typedef {function(): MessagePopup} PopupFactory
     */
    /**
     * The options for a popup created by the popup factory.
     *
     * @typedef {Object} PopupOptions
     * @property {boolean} [autoDestroy=false] Whether the popup should be automatically destroyed when hidden
     *    or not.
     * @property {string} [cls] Extra class name to add to the popup.
     * @property {*} [content] The content of the popup. Either the content or URL must be set.
     * @property {string} [height] The height of the popup.
     * @property {string} [title] The title of the popup.
     * @property {string} [url] The URL to use for the iframe to include as content for the popup.
     * @property {string} [width] The width of the popup.
     */
    /**
     * Provides a factory to create a popup in the page.
     * The factory returns a ngeo.message.Popup object.
     *
     * Example:
     *
     *     let popup = ngeoCreatePopup();
     *     popup.setTitle("A title");
     *     popup.setContent("Some content");
     *     popup.setOpen(true);
     *
     * @class
     * @param {angular.ICompileService} $compile The compile provider.
     * @param {angular.IScope} $rootScope The rootScope provider.
     * @param {angular.ISCEService} $sce Angular sce service.
     * @param {angular.ITimeoutService} $timeout Angular timeout service.
     * @ngdoc service
     * @ngname ngeoCreatePopup
     * @hidden
     */
    constructor($compile: angular.ICompileService, $rootScope: angular.IScope, $sce: angular.ISCEService, $timeout: angular.ITimeoutService);
    /**
     * The scope the compiled element is link to.
     *
     * @type {angular.IScope}
     */
    scope: angular.IScope;
    /**
     * @type {angular.ISCEService}
     */
    sce_: angular.ISCEService;
    /**
     * @type {angular.ITimeoutService}
     */
    timeout_: angular.ITimeoutService;
    /**
     * The element.
     *
     * @type {JQuery}
     */
    element_: JQuery;
    /**
     * @type {boolean}
     */
    autoDestroy_: boolean;
    /**
     * Get the current popup state.
     *
     * @returns {boolean} `true` if the popup is currently, otherwise `false`.
     */
    getOpen(): boolean;
    /**
     * Show/hide the popup.
     *
     * @param {boolean} open `true` to show the popup, `false` to hide it.
     */
    setOpen(open: boolean): void;
    /**
     * Destroy the popup.
     */
    destroy(): void;
    /**
     * Set the popup's title.
     *
     * @param {string} title The title.
     */
    setTitle(title: string): void;
    /**
     * Set the popup's content.
     * Note: the type of the `content` param is `*` instead of `string`, this
     * is because the content may be trusted using `$sce.trustAsHtml`.
     *
     * @param {string} content The content.
     * @param {boolean} [opt_trusted] Whether the content can be trusted.
     *     Default is false.
     */
    setContent(content: string, opt_trusted?: boolean): void;
    /**
     * Set the popup's content with an iframe using the given url.
     *
     * @param {string} url The url of the page.
     */
    setUrl(url: string): void;
    /**
     * Set the popup's width.
     *
     * @param {string} width Width the popup should have.
     */
    setWidth(width: string): void;
    /**
     * Set the popup's height.
     *
     * @param {string} height Height the popup should have.
     */
    setHeight(height: string): void;
    /**
     * Set the popup's width and height.
     *
     * @param {string} width Width the popup should have.
     * @param {string} height Height the popup should have.
     */
    setSize(width: string, height: string): void;
    /**
     * Set the popup's autoDestroy property.
     *
     * @param {boolean} autoDestroy Whether to automatically destroy the popup when
     *     being closed or not.
     */
    setAutoDestroy(autoDestroy: boolean): void;
    /**
     * Add an extra CSS class name to the popup.
     *
     * @param {string} cls Class name to add to the popup element.
     */
    addClass(cls: string): void;
    /**
     * Open a popup with the given properties.
     *
     * @param {PopupOptions} options Options.
     */
    open(options: PopupOptions): void;
}
/**
 * @param {angular.ICompileService} $compile Angular compile service.
 * @param {angular.IScope} $rootScope Angular rootScope service.
 * @param {angular.ISCEService} $sce Angular sce service.
 * @param {angular.ITimeoutService} $timeout Angular timeout service.
 * @returns {PopupFactory} The function to create a popup.
 * @hidden
 */
export function Factory($compile: angular.ICompileService, $rootScope: angular.IScope, $sce: angular.ISCEService, $timeout: angular.ITimeoutService): PopupFactory;
export namespace Factory {
    let $inject: string[];
}
export default myModule;
export type PopupFactory = () => MessagePopup;
/**
 * The options for a popup created by the popup factory.
 */
export type PopupOptions = {
    /**
     * Whether the popup should be automatically destroyed when hidden
     * or not.
     */
    autoDestroy?: boolean;
    /**
     * Extra class name to add to the popup.
     */
    cls?: string;
    /**
     * The content of the popup. Either the content or URL must be set.
     */
    content?: any;
    /**
     * The height of the popup.
     */
    height?: string;
    /**
     * The title of the popup.
     */
    title?: string;
    /**
     * The URL to use for the iframe to include as content for the popup.
     */
    url?: string;
    /**
     * The width of the popup.
     */
    width?: string;
};
import angular from 'angular';
/**
 * @type {angular.IModule}
 * @hidden
 */
declare const myModule: angular.IModule;
