/**
 * Copyright Aquera Inc 2023
 *
 * This source code is licensed under the BSD-3-Clause license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { TemplateResult } from 'lit';
import '../nile-icon-button/nile-icon-button';
import NileElement from '../internal/nile-element';
import type { CSSResultGroup } from 'lit';
/**
 * Nile icon component.
 *
 * @tag nile-toast
 *
 * @dependency nile-icon-button
 *
 * @slot - The alert's main content.
 * @slot icon - An icon to show in the alert. Works best with `<nile-icon>`.
 *
 * @event nile-show - Emitted when the alert opens.
 * @event nile-after-show - Emitted after the alert opens and all animations are complete.
 * @event nile-hide - Emitted when the alert closes.
 * @event nile-after-hide - Emitted after the alert closes and all animations are complete.
 *
 * @csspart base - The component's base wrapper.
 * @csspart icon - The container that wraps the optional icon.
 * @csspart message - The container that wraps the alert's main content.
 * @csspart close-button - The close button, an `<nile-icon-button>`.
 * @csspart close-button__base - The close button's exported `base` part.
 *
 * @animation alert.show - The animation to use when showing the alert.
 * @animation alert.hide - The animation to use when hiding the alert.
 */
export declare class NileToast extends NileElement {
    static styles: CSSResultGroup;
    private autoHideTimeout;
    private readonly hasSlotController;
    base: HTMLElement;
    /**
     * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can
     * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.
     */
    open: boolean;
    noIcon: boolean;
    /** Enables a close button that allows the user to dismiss the alert. */
    closable: boolean;
    hasSlottedContent: boolean;
    hasSlottedIcon: boolean;
    prefixImageUrl: string;
    closeIconName: string;
    /** The alert's theme variant. */
    variant: 'success' | 'info' | 'warning' | 'error' | 'gray' | 'black';
    /**
     * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with
     * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning
     * the alert will not close on its own.
     */
    duration: number;
    title: string;
    content: string;
    tags: any[];
    firstUpdated(): void;
    private restartAutoHide;
    private handleCloseClick;
    private handleMouseMove;
    handleOpenChange(): Promise<void>;
    handleDurationChange(): void;
    /** Shows the alert. */
    show(): Promise<void>;
    /** Hides the alert */
    hide(): Promise<void>;
    getIconNameByVariant(): "var(--nile-icon-radiodone, var(--ng-icon-check-circle))" | "var(--nile-icon-info, var(--ng-icon-info-circle))" | "var(--nile-icon-warning, var(--ng-icon-alert-circle))";
    getIconColorByVariant(): "var(--nile-toast-color-icon-color-success, var(--ng-colors-fg-success-primary))" | "var(--nile-toast-color-icon-color-info, var(--ng-colors-fg-brand-primary-600))" | "var(--nile-toast-color-icon-color-warning, var(--ng-colors-fg-warning-primary))" | "var(--nile-toast-color-icon-color-error, var(--ng-colors-fg-error-primary))" | "var(--nile-toast-color-icon-color-gray, var(--ng-colors-fg-tertiary-600))" | "var(--nile-toast-color-icon-color-black)";
    handleSlotChange(e: any): void;
    /**
     * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when
     * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by
     * calling this method again. The returned promise will resolve after the alert is hidden.
     */
    toast(): Promise<void>;
    private toastTags;
    render(): TemplateResult<1>;
}
export default NileToast;
declare global {
    interface HTMLElementTagNameMap {
        'nile-toast': NileToast;
    }
}
