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