import * as React from "react";
import * as DialogPrimitive from "@radix-ui/react-dialog";
export type ScrollableDialogShellProps = {
    header: React.ReactNode;
    footer?: React.ReactNode;
    children: React.ReactNode;
    /**
     * When true, makes the dialog full-screen on small viewports with fixed header/footer.
     * On `sm+`, it uses the normal centered modal sizing.
     */
    mobileFullscreen?: boolean;
    /** Desktop max width class, used when `mobileFullscreen` is true (default: 'sm:max-w-3xl') */
    desktopMaxWidth?: string;
    /** Desktop height class, used when `mobileFullscreen` is true (default: 'sm:h-[80vh]') */
    desktopHeight?: string;
    /** Maximum width class (default: 'max-w-3xl') */
    maxWidth?: string;
    /** Height class - fixed height to prevent layout jumping (default: 'h-[80vh]') */
    height?: string;
    /** Disable open/close motion classes (useful for canvas/pointer-heavy UIs). */
    disableMotion?: boolean;
    /** Whether to show the close button (default: true) */
    showCloseButton?: boolean;
    /** Additional className for the content wrapper */
    className?: string;
    /** Optional className overrides for the fixed header wrapper */
    headerClassName?: string;
    /** Optional className overrides for the scrollable content wrapper */
    bodyClassName?: string;
    /** Optional className overrides for the fixed footer wrapper */
    footerClassName?: string;
    /** Optional wrapper for header/body/footer inside the portal. */
    wrapContent?: (content: React.ReactNode) => React.ReactNode;
} & Omit<React.ComponentProps<typeof DialogPrimitive.Content>, 'title'>;
export declare function ScrollableDialogShell({ header, footer, children, mobileFullscreen, desktopMaxWidth, desktopHeight, maxWidth, height, disableMotion, showCloseButton, className, headerClassName, bodyClassName, footerClassName, wrapContent, ...props }: ScrollableDialogShellProps): React.ReactElement;
