import * as react from 'react';
import { HTMLAttributes, ReactNode } from 'react';
import * as DialogPrimitive from '@radix-ui/react-dialog';
declare const Dialog: react.FC;
declare const DialogTrigger: react.ForwardRefExoticComponent>;
declare const DialogPortal: react.FC;
declare const DialogClose: react.ForwardRefExoticComponent>;
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
declare const DialogOverlay: react.ForwardRefExoticComponent, "ref"> & react.RefAttributes>;
interface DialogContentProps extends react.ComponentPropsWithoutRef {
size?: DialogSize;
showClose?: boolean;
}
declare const DialogContent: react.ForwardRefExoticComponent>;
declare const DialogHeader: {
({ className, ...props }: HTMLAttributes): react.JSX.Element;
displayName: string;
};
declare const DialogBody: {
({ className, ...props }: HTMLAttributes): react.JSX.Element;
displayName: string;
};
declare const DialogFooter: {
({ className, ...props }: HTMLAttributes): react.JSX.Element;
displayName: string;
};
declare const DialogTitle: react.ForwardRefExoticComponent, "ref"> & react.RefAttributes>;
declare const DialogDescription: react.ForwardRefExoticComponent, "ref"> & react.RefAttributes>;
interface DialogPanelProps {
open: boolean;
onClose?: () => void;
title?: ReactNode;
description?: ReactNode;
children?: ReactNode;
footer?: ReactNode;
size?: DialogSize;
showClose?: boolean;
}
/** Controlled dialog with title, body, and footer slots — same ergonomics as `Drawer`. */
declare function DialogPanel({ open, onClose, title, description, children, footer, size, showClose, }: DialogPanelProps): react.JSX.Element;
export { Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPanel, type DialogPanelProps, DialogPortal, type DialogSize, DialogTitle, DialogTrigger };