import { Message } from '@lumino/messaging';
import { Widget } from '@lumino/widgets';
/**
 * A widget which implements a notification popup.
 */
export declare class Notification extends Widget {
    /**
     * Construct a new notification.
     *
     * @param options - The options for initializing the notification.
     */
    constructor(options: Notification.IOptions);
    /**
     * Handle the DOM events for the notification.
     *
     * @param event - The DOM event sent to the notification.
     *
     * #### Notes
     * This method implements the DOM `EventListener` interface and is
     * called in response to events on the notification's DOM node.
     *
     * This should not be called directly by user code.
     */
    handleEvent(event: Event): void;
    /**
     * Get the placement of the notification.
     */
    /**
    * Set the placement of the notification.
    */
    placement: Notification.Placement;
    /**
     * Get the current value of the message.
     */
    /**
    * Set the current value of the message.
    *
    */
    message: string;
    /**
     * Get the node presenting the message.
     */
    readonly messageNode: HTMLSpanElement;
    /**
     * A method invoked on a 'before-attach' message.
     */
    protected onBeforeAttach(msg: Message): void;
    /**
     * A method invoked on an 'after-detach' message.
     */
    protected onAfterDetach(msg: Message): void;
    /**
     * A method invoked on an 'update-request' message.
     */
    protected onUpdateRequest(msg: Message): void;
    /**
     * Handle the `'mousedown'` event for the notification.
     */
    private _evtMouseDown;
    private _target;
    private _message;
    private _placement;
}
/**
 * The namespace for the `Notification` class statics.
 */
export declare namespace Notification {
    /**
     * A type alias for a notification placement.
     */
    type Placement = 'top' | 'bottom' | 'left' | 'right';
    /**
     * An options object for creating a notification.
     */
    interface IOptions {
        /**
         * Target element to attach notification to.
         *
         */
        target: HTMLElement;
        /**
         * The message to show on notification.
         */
        message?: string;
        /**
         * The placement of the notification.
         *
         * The default is `'bottom'`.
         */
        placement?: Placement;
        /**
         * Duration in ms after which to close notification popup.
         *
         * The default is undefined, and notification is kept visible
         * Timeout value needs to be greater than zero
         */
        timeout?: number;
    }
}
//# sourceMappingURL=notification.d.ts.map