import * as React from 'react';
export type ModalShellProps = Readonly<{
    title: string;
    titleId: string;
    onClose: () => void;
    children: React.ReactNode;
    portalRoot?: HTMLElement | null;
    portal?: boolean;
    overlayClassName: string;
    modalClassName: string;
    renderSrOnlyTitle?: boolean;
    renderHeader?: (options: {
        title: string;
        titleId: string;
        onClose: () => void;
        closeButtonRef: React.RefObject<HTMLButtonElement | null>;
    }) => React.ReactNode;
    headerClassName?: string;
    titleClassName?: string;
    closeButtonClassName?: string;
    closeIcon?: React.ReactNode;
}>;
/**
 * Shared, unopinionated modal shell for interactive runtime flows.
 *
 * Styling is supplied by the caller via class names, while the shell owns
 * focus, escape handling, body-scroll locking, overlay clicks, and optional
 * portaling into a themed root.
 */
export declare function ModalShell({ title, titleId, onClose, children, portalRoot, portal, overlayClassName, modalClassName, renderSrOnlyTitle, renderHeader, headerClassName, titleClassName, closeButtonClassName, closeIcon, }: ModalShellProps): React.ReactNode;
