import { type ReactElement, type ReactNode, type RefObject } from "react";
/**
 * @internal
 * @since 6.0.0
 */
export type PortalContainerNode = Element | DocumentFragment | null;
/**
 * @internal
 * @since 6.0.0
 */
export type PortalContainer = PortalContainerNode | RefObject<PortalContainerNode>;
export declare const PORTAL_CONTAINER_ID = "rmd-portal-container";
/**
 * @internal
 * @since 6.0.0
 */
export declare function usePortalContainer(): PortalContainerNode;
/** @since 6.0.0 */
export interface PortalContainerProviderProps {
    /**
     * An optional container element to use. When this is `undefined`, a
     * `<div id="rmd-portal-container"></div>` will be added as the last child to
     * the `document.body` and be used as the container element.
     */
    container?: PortalContainer;
    children: ReactNode;
}
/**
 * **Client Component**
 *
 * This component allows for all child `Portal` components to render within the
 * same container element. If a custom `container` element is not provided, a
 * `<div id="rmd-portal-container"></div>` will be added as the last child to
 * the `document.body` and be used as the container element.
 *
 * @see {@link Portal}
 * @since 6.0.0
 */
export declare function PortalContainerProvider(props: PortalContainerProviderProps): ReactElement;
