import * as React from "react";
import * as DialogPrimitive from "@radix-ui/react-dialog";
/**
 * ScrollableDialogContent
 *
 * A Dialog content variant with fixed header/footer and scrollable content area.
 * This is the standard modal pattern for forms and content-heavy dialogs.
 *
 * @example
 * ```tsx
 * <Dialog open={open} onOpenChange={setOpen}>
 *   <ScrollableDialogContent
 *     title="Section Styles"
 *     description="Configure section appearance"
 *     footer={<Button onClick={() => setOpen(false)}>Done</Button>}
 *   >
 *     <FormFields />
 *   </ScrollableDialogContent>
 * </Dialog>
 * ```
 */
export type ScrollableDialogContentProps = {
    /** Dialog title displayed in the fixed header */
    title: React.ReactNode;
    /** Optional description below the title */
    description?: React.ReactNode;
    /** Content rendered in the fixed footer area */
    footer?: React.ReactNode;
    /** Main scrollable content */
    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;
};
declare function ScrollableDialogContent({ title, description, footer, children, mobileFullscreen, desktopMaxWidth, desktopHeight, maxWidth, height, disableMotion, showCloseButton, className, headerClassName, bodyClassName, footerClassName, ['aria-describedby']: ariaDescribedBy, ...props }: ScrollableDialogContentProps & Omit<React.ComponentProps<typeof DialogPrimitive.Content>, 'title'>): React.ReactElement;
export { ScrollableDialogContent };
