import { Snackbar } from '../snackbar/internals/Snackbar.js';
import '../snackbar/ui-snackbar.js';
export interface ISnackInit {
    /**
     * When set the snackbar does not timeout.
     * It has to be cancelled by user interaction or programmatically.
     *
     * When the `cancellable` is set to false the user won't be able to dismiss the
     * snackbar and the application must remove the snackbar after the process
     * finish. Otherwise another snackbar won't appear.
     *
     * @default false
     */
    persistent?: boolean;
    /**
     * Whether the snackbar can be cancelled via user interaction.
     *
     * @default true
     */
    cancellable?: boolean;
    /**
     * The time in milliseconds after which the message is removed.
     * Has not effect when `persistent` flag is set.
     *
     * @default 5000
     */
    timeout?: number;
    /**
     * The action to render next to the message.
     * There can be only one action.
     * It is only rendered when `actionCallback` is set.
     */
    actionLabel?: string;
    /**
     * The callback function called when the action was activated by the user.
     */
    actionCallback?: () => void;
    /**
     * Whether to render affordable "close" icon.
     */
    close?: boolean;
    /**
     * Callback called when the message was closed either by the user interaction
     * or by a timeout.
     * Note, it is not called when the message is closed programmatically.
     */
    closed?: () => void;
}
interface INotificationInfo {
    element: Snackbar;
    init?: ISnackInit;
}
/**
 * A class that manages user notifications via a snackbar (toast messages).
 */
export declare class SnackNotifications {
    protected static current?: INotificationInfo;
    protected static stack: INotificationInfo[];
    /**
     * Notifies a user about something using default settings.
     * @param message The message to show
     * @param timeout Optionally the timeout after which the message will disappear.
     */
    static notify(message: string, timeout?: number): Snackbar;
    /**
     * Notifies the user about something with full configuration options available.
     * @param message The message to show
     * @param init Snack configuration options.
     */
    static notify(message: string, init: ISnackInit): Snackbar;
    protected static schedule(): void;
    protected static actionHandler(e: Event): void;
    protected static openHandler(e: Event): void;
    protected static dismissHandler(e: Event): void;
    static cancel(snack: Snackbar): void;
    static clear(): void;
}
export {};
//# sourceMappingURL=SnackNotifications.d.ts.map