import { LitElement, nothing, PropertyValues, TemplateResult } from 'lit';
import '../../button/ui-button.js';
import '../../icon-button/ui-icon-button.js';
import '../../icons/ui-icon.js';
/**
 * Snackbars provide brief messages about app processes at the bottom of the screen.
 *
 * Snackbars inform users of a process that an app has performed or will perform.
 * They appear temporarily, towards the bottom of the screen.
 * They shouldn’t interrupt the user experience, and they don’t require user input to disappear.
 *
 * Only one snackbar may be displayed at a time.
 *
 * A snackbar can contain a single action. "Dismiss" or "cancel" actions are optional.
 *
 * Snackbars communicate messages that are minimally interruptive and don’t require user action.
 *
 * **Caution**, Do not use this element directly.
 *
 * A snackbar is the UI to render in the application. It does not care whether another
 * message is already rendered. Use `SnackNotifications` to manage notification system.
 * The `SnackNotifications` will position toasts directly under the `body` which will make
 * it easier to manage especially when relative / absolute positioning is used.
 *
 * @fires open - When the open state changes. Note, this event is not dispatched when it was programmatically closed.
 * @fires dismiss - When the message was closed via the API.
 * @fires action - When the action button was activated.
 */
export declare class Snackbar extends LitElement {
    /**
     * 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
     * @attribute
     */
    accessor persistent: boolean;
    /**
     * Whether the snackbar can be cancelled via user interaction.
     *
     * @default true
     * @attribute
     */
    accessor cancellable: boolean;
    /**
     * The time in milliseconds after which the message is removed.
     * Has not effect when `persistent` flag is set.
     *
     * @default 5000
     * @attribute
     */
    accessor timeout: number;
    /**
     * The action to render next to the message.
     * There can be only one action.
     * It is only rendered when `actionCallback` is set.
     *
     * @attribute
     */
    accessor action: string | undefined;
    /**
     * Whether to render affordable "close" icon.
     *
     * @attribute
     */
    accessor close: boolean | undefined;
    /**
     * Whether the message is being rendered.
     *
     * @attribute
     */
    accessor open: boolean | undefined;
    protected dismissed?: boolean;
    protected timer?: number;
    protected touchXStart?: number;
    protected touchYStart?: number;
    constructor();
    protected updated(cp: PropertyValues<this>): void;
    /**
     * Dismisses the snackbar
     */
    dismiss(): void;
    protected setupTimeout(): void;
    protected clearTimer(): void;
    protected timeoutHandler(): void;
    protected touchstartHandler(e: TouchEvent): void;
    protected touchendHandler(e: TouchEvent): void;
    protected actionHandler(): void;
    protected transitionendHandler(): void;
    protected closeHandler(): void;
    protected render(): TemplateResult;
    protected renderAction(): TemplateResult | typeof nothing;
    protected renderIcon(): TemplateResult | typeof nothing;
}
//# sourceMappingURL=Snackbar.d.ts.map