import type { IPortalElementProps } from '../../Primitives/Portal/IPortalElementProps';
import type { IDialogElementProps } from './IDialogElementProps';
/**
 * Represents the properties of a dialog element.
 *
 * @public
 */
export interface IDialogOptions extends Partial<IDialogElementProps>, Partial<IPortalElementProps> {
    navigateToClose?: boolean;
}
/**
 * Service for managing the display and behavior of dialog elements.
 * Provides methods to open and close dialog elements within a portal structure.
 *
 * @public
 */
export declare class DialogService {
    private readonly _dialogMap;
    private _portalElement?;
    /**
     * Constructs a new instance of the `DialogService` class.
     *
     * @public
     */
    constructor();
    /**
     * Opens a custom wrapper component containing a dialog within a portal.
     *
     * @public
     * @template T - Type of the wrapper component extending HTMLElement.
     * @template TData - Type of data provided to the wrapper component.
     * @template TResult - Expected return type of the resolved dialog result.
     * @param dialogId - Unique identifier for the dialog instance.
     * @param wrapperClass - Class of the wrapper component containing the dialog.
     * @param options - Properties for portal and dialog.
     * @param data - Optional data passed to the wrapper component.
     * @returns A promise resolving with the dialog result.
     */
    open<T extends HTMLElement, TResult>(dialogId: string, wrapperClass: new () => T, options?: IDialogOptions): Promise<TResult>;
    open<T extends HTMLElement, TData, TResult>(dialogId: string, wrapperClass: new (args: TData) => T, data: TData, options?: IDialogOptions): Promise<TResult>;
    /**
     * Closes the dialog in the wrapper component and optionally removes the wrapper from the DOM.
     *
     * @public
     * @template TResult - Type of result returned when the dialog is closed.
     * @param {string} dialogId - Unique identifier for the dialog instance.
     * @param {TResult} [result] - Optional result returned when closing the dialog.
     * @returns {Promise<void>} A promise resolving once the dialog is fully closed.
     */
    close<TResult>(dialogId: string, result?: TResult): Promise<void>;
    /**
     * Extends the dialog 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 dialog.
     */
    private extendToPortal;
}
/**
 * @public
 */
export declare class DialogServiceLocator {
    private static _current;
    static get current(): DialogService;
    static isSet(): boolean;
    static set(current: DialogService): void;
}
//# sourceMappingURL=DialogService.d.ts.map