/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent } from '../core/base/base-component';
import { IWithDefaultAria } from '../core/mixins/internals/with-default-aria';
import { IWithElementInternals } from '../core/mixins/internals/with-element-internals';
import { IIconProperties } from '../icon';
import { ToastPlacement, ToastTheme } from './toast-constants';
export interface IToastProperties {
    open: boolean;
    duration: number;
    placement: ToastPlacement;
    actionText: string;
    dismissible: boolean;
    dismissLabel: string;
    theme: ToastTheme;
}
export interface IToastPresentConfiguration extends Partial<IToastProperties> {
    message?: string;
    element?: HTMLElement;
    className?: string | string[];
    icon?: Partial<IIconProperties>;
    topLayer?: boolean;
}
export interface IToastComponent extends IToastProperties, IWithElementInternals, IWithDefaultAria {
    show(): void;
    hide(): Promise<void>;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-toast': IToastComponent;
    }
    interface HTMLElementEventMap {
        'forge-toast-action': CustomEvent<void>;
        'forge-toast-close': CustomEvent<void>;
    }
}
declare const BaseClass: import("../constants").AbstractConstructor<import("../core/mixins/internals/with-element-internals").WithElementInternalsContract> & import("../constants").AbstractConstructor<import("../core/mixins/internals/with-default-aria").WithDefaultAriaContract> & typeof BaseComponent;
/**
 * @tag forge-toast
 *
 * @summary Toasts are non-modal notifications that appear in response to user interactions.
 *
 * @property {boolean} open - The open state.
 * @property {number} duration - The duration in milliseconds that the toast is displayed.
 * @property {ToastPlacement} placement - The placement of the toast.
 * @property {string} actionText - The text for the action button. This controls the visibility of the action button.
 * @property {boolean} dismissible - Whether the toast is dismissible (displays a close button).
 * @property {string} dismissLabel - The accessible label for the dismiss button.
 * @property {ToastTheme} theme - The theme of the toast.
 *
 * @attribute {boolean} open - The open state.
 * @attribute {number} duration - The duration in milliseconds that the toast is displayed.
 * @attribute {ToastPlacement} placement - The placement of the toast.
 * @attribute {string} action-text - The text for the action button. This controls the visibility of the action button.
 * @attribute {boolean} dismissible - Whether the toast is dismissible (displays a close button).
 * @attribute {string} dismiss-label - The accessible label for the dismiss button.
 * @attribute {ToastTheme} theme - The theme of the toast.
 *
 * @event {CustomEvent<void>} forge-toast-action - Dispatched when the action button is clicked.
 * @event {CustomEvent<void>} forge-toast-close - Dispatched when the toast is closed.
 *
 * @cssproperty --forge-toast-background - The background color of the toast.
 * @cssproperty --forge-toast-color - The text color of the toast.
 * @cssproperty --forge-toast-offset - The offset of the toast from the edge of the viewport.
 * @cssproperty --forge-toast-shape - The shape of the toast.
 * @cssproperty --forge-toast-elevation - The elevation of the toast.
 * @cssproperty --forge-toast-action-color - The text color of the action button.
 * @cssproperty --forge-toast-min-width - The minimum width of the toast.
 * @cssproperty --forge-toast-max-width - The maximum width of the toast.
 * @cssproperty --forge-toast-min-height - The minimum height of the toast.
 * @cssproperty --forge-toast-inline-padding - The padding of the toast when inline.
 * @cssproperty --forge-toast-spacing - The spacing between toasts.
 * @cssproperty --forge-toast-message-padding - The padding of the toast message.
 * @cssproperty --forge-toast-enter-duration - The duration of the enter animation.
 * @cssproperty --forge-toast-enter-timing - The timing function of the enter animation.
 * @cssproperty --forge-toast-exit-duration - The duration of the exit animation.
 * @cssproperty --forge-toast-exit-timing - The timing function of the exit animation.
 * @cssproperty --forge-toast-slide-origin - The origin of the slide animation.
 *
 * @csspart surface - The surface container.
 * @csspart message - The message container.
 * @csspart action-button - The action button.
 * @csspart close-button - The close button.
 * @csspart overlay - The `<forge-overlay>` element.
 */
export declare class ToastComponent extends BaseClass implements IToastComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    open: boolean;
    duration: number;
    placement: ToastPlacement;
    actionText: string;
    dismissible: boolean;
    dismissLabel: string;
    theme: ToastTheme;
    show(): void;
    hide(): Promise<void>;
    /**
     * Presents a toast notification.
     * @param config The configuration for the toast.
     * @returns A promise that resolves when the toast is closed.
     * @ignore CEM
     */
    static present({ message, element, icon, className, topLayer, ...config }: IToastPresentConfiguration): IToastComponent;
}
export {};
