/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IToastAdapter } from './toast-adapter';
import { ToastBuilder, ToastPlacement } from './toast-constants';
export interface IToastFoundation extends ICustomElementFoundation {
    message: string;
    actionText: string;
    duration: number;
    placement: ToastPlacement;
    showClose: boolean;
    builder: ToastBuilder | string;
    show(): void;
    hide(): void;
}
/**
 * The foundation class behind the `ToastComponent` class that manages the state of a toast component instance.
 */
export declare class ToastFoundation implements IToastFoundation {
    private _adapter;
    private _message;
    private _actionText;
    private _duration;
    private _placement;
    private _showClose;
    private _hasAction;
    private _isActive;
    private _hideTimeout;
    private _builder;
    private _actionListener;
    private _closeListener;
    constructor(_adapter: IToastAdapter);
    initialize(): void;
    /**
     * Starts the animation of the toast and hides it after the duration.
     */
    show(): void;
    /**
     * Hides the toast and removes it from the DOM.
     */
    hide(emitEvent?: boolean): void;
    /**
     * Handles click events from the optional action button.
     * @param {MouseEvent} evt The mouse event.
     */
    private _onAction;
    private _onClose;
    /** The message to display in the toast. */
    get message(): string;
    set message(value: string);
    /** The text to display in the action button. */
    get actionText(): string;
    set actionText(value: string);
    /** The time in milliseconds to show the toast. */
    get duration(): number;
    set duration(value: number);
    /** The placement of the toast. */
    get placement(): ToastPlacement;
    set placement(value: ToastPlacement);
    get builder(): ToastBuilder | string;
    set builder(value: ToastBuilder | string);
    get showClose(): boolean;
    set showClose(value: boolean);
}
