/**
 * *
 */
export type MessageType = string;
export namespace MessageType {
    let ERROR: string;
    let INFORMATION: string;
    let SUCCESS: string;
    let WARNING: string;
}
/**
 * Abstract class for services that display messages.
 *
 * @class
 * @abstract
 * @hidden
 */
export default class _default {
    /**
     * Show the message.
     *
     * @abstract
     * @param {Message} message Message.
     * @protected
     */
    protected showMessage(message: Message): void;
    /**
     * Show disclaimer message string or object or list of disclame message
     * strings or objects.
     *
     * @param {string | Message | (string | Message)[]} object
     *     A message or list of messages as text or configuration objects.
     * @returns {void}
     */
    show(object: string | Message | (string | Message)[]): void;
    /**
     * Display the given error message or list of error messages.
     *
     * @param {string|string[]} message Message or list of messages.
     */
    error(message: string | string[]): void;
    /**
     * Display the given info message or list of info messages.
     *
     * @param {string|string[]} message Message or list of messages.
     */
    info(message: string | string[]): void;
    /**
     * Display the given success message or list of success messages.
     *
     * @param {string|string[]} message Message or list of messages.
     */
    success(message: string | string[]): void;
    /**
     * Display the given warning message or list of warning messages.
     *
     * @param {string|string[]} message Message or list of messages.
     */
    warn(message: string | string[]): void;
    /**
     * Returns an array of message object from any given message string, list of
     * message strings, message object or list message objects. The type can be
     * overridden here as well OR defined (if the message(s) is/are string(s),
     * defaults to 'information').
     *
     * @param {string | Message | (string | Message)[]}object
     *     A message or list of messages as text or configuration objects.
     * @param {string} [opt_type] The type of message to override the messages with.
     * @returns {Message[]} List of message objects.
     * @protected
     */
    protected getMessageObjects(object: string | Message | (string | Message)[], opt_type?: string): Message[];
}
/**
 * A message to display by the ngeo notification service.
 */
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;
};
