import type { MessageBoxResult } from '../../../Types/MessageBoxResult';
import type { IPortalElementProps } from '../../Primitives/Portal/IPortalElementProps';
import type { IMessageBoxElementProps } from './IMessageBoxElementProps';
/**
 * Represents the properties of a message box element.
 *
 * @public
 */
export interface IMessageBoxOptions extends Partial<IMessageBoxElementProps>, Partial<IPortalElementProps> {
    navigateToClose?: boolean;
}
/**
 * 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 MessageBoxService {
    private readonly _messageBoxMap;
    private _portalElement?;
    /**
     * Constructs a new instance of the `MessageBoxService` class.
     *
     * @public
     */
    constructor();
    /**
     * Opens a custom wrapper component containing a message box within a portal.
     *
     * @public
     * @param messageBoxId - Unique identifier for the message box instance.
     * @param options - Properties for portal and message box.
     * @returns A promise resolving with the result of the message box.
     */
    open(messageBoxId: string, options?: IMessageBoxOptions): Promise<MessageBoxResult>;
    /**
     * Closes the message box in the wrapper component and optionally removes the wrapper from the DOM.
     *
     * @public
     * @param {string} messageBoxId - Unique identifier for the message box instance.
     * @returns {Promise<void>} A promise resolving once the message box is fully closed.
     */
    close(messageBoxId: string): 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;
}
/**
 * @public
 */
export declare class MessageBoxServiceLocator {
    private static _current;
    static get current(): MessageBoxService;
    static isSet(): boolean;
    static set(current: MessageBoxService): void;
}
//# sourceMappingURL=MessageBoxService.d.ts.map