import type { IPortalElementProps } from '../../Primitives/Portal/IPortalElementProps';
import type { IToastElementProps } from './IToastElementProps';
/**
 * Represents the `ToastService` class.
 *
 * @public
 */
export interface IToastOptions extends Partial<IToastElementProps>, Partial<IPortalElementProps> {
    id?: string;
    navigateToClose?: boolean;
}
/**
 * Represents the `Toast` constant.
 *
 * @public
 */
export declare namespace Toast {
    namespace Timeout {
        /**
         * The duration of a short (1500ms) toast message.
         *
         * @public
         * @readonly
         * @static
         */
        const SHORT: number;
        /**
         * The duration of a medium (3000ms) toast message.
         *
         * @public
         * @readonly
         * @static
         */
        const MEDIUM: number;
        /**
         * The duration of a long (6000ms) toast message.
         *
         * @public
         * @readonly
         * @static
         */
        const LONG = 6000;
    }
}
/**
 * Service for managing the display and behavior of message box elements.
 * Provides methods to open and close message box elements within a portal structure.
 *
 * @public
 */
export declare class ToastService {
    private readonly _toastMap;
    /**
     * Constructs a new instance of the `ToastService` class.
     *
     * @public
     */
    constructor();
    /**
     * Opens a custom wrapper component containing a message box within a portal.
     *
     * @public
     * @template TResult - Expected return type of the resolved message box result.
     * @param {IToastOptions} options - Properties for portal and message box.
     * @returns {Promise<TResult>} A promise resolving with the message box result.
     */
    open<TResult>(options?: IToastOptions): Promise<TResult>;
    /**
     * Closes the message box in the wrapper component and optionally removes the wrapper from the DOM.
     *
     * @public
     * @template TResult - Type of result returned when the message box is closed.
     * @param {string} toastId - Unique identifier for the message box instance.
     * @param {TResult} [result] - Optional result returned when closing the message box.
     * @returns {Promise<void>} A promise resolving once the message box is fully closed.
     */
    close<TResult>(toastId: string, result?: TResult): Promise<void>;
    /**
     * Extends the message box component by placing it within a portal structure.
     *
     * @private
     * @param portalProps - Properties to set on the portal.
     * @param element - The element to place within the portal.
     * @returns The created PortalElement containing the message box.
     */
    private extendToPortal;
    /**
     * Creates a new portal element and appends it to the document body.
     *
     * @private
     * @param props - Optional properties to set on the portal element.
     * @returns The created PortalElement.
     */
    private createPortal;
}
/**
 * The `ToastServiceLocator` class provides a locator service for the `ToastService` instance.
 *
 * @public
 */
export declare class ToastServiceLocator {
    private static _current;
    static get current(): ToastService;
    static isSet(): boolean;
    static set(current: ToastService): void;
}
//# sourceMappingURL=ToastService.d.ts.map