import { ReactNode } from 'react';
export type DialogSize = 'sm' | 'md' | 'lg' | 'xl';
export interface DialogProps {
    isOpen: boolean;
    onClose: () => void;
    children: ReactNode;
    /** Max width of the dialog panel. Defaults to 'md' (~512px). */
    size?: DialogSize;
    testId?: string;
    /** Sets `role="alertdialog"` for prompts that interrupt the user. */
    role?: 'dialog' | 'alertdialog';
    /**
     * Whether clicking the backdrop closes the dialog. Defaults to true.
     * Pair with `isKeyboardDismissDisabled` to fully prevent dismissal.
     */
    isDismissable?: boolean;
    /** When true, Escape no longer closes the dialog. Defaults to false. */
    isKeyboardDismissDisabled?: boolean;
}
interface DialogSlotProps {
    children?: ReactNode;
    className?: string;
}
declare function DialogHeading({ children, className }: Readonly<DialogSlotProps>): import("react").JSX.Element;
declare function DialogContent({ children, className }: Readonly<DialogSlotProps>): import("react").JSX.Element;
declare function DialogFooter({ children, className }: Readonly<DialogSlotProps>): import("react").JSX.Element;
export declare const Dialog: (({ isOpen, onClose, children, size, testId, role, isDismissable, isKeyboardDismissDisabled, }: Readonly<DialogProps>) => import("react").JSX.Element) & {
    Heading: typeof DialogHeading;
    Content: typeof DialogContent;
    Footer: typeof DialogFooter;
};
export {};
//# sourceMappingURL=Dialog.d.ts.map