import { type ReactNode } from 'react';
export interface ModalProps {
    open: boolean;
    onClose: () => void;
    title: string;
    children: ReactNode;
    actions?: ReactNode;
    /**
     * Accessible description for the dialog, announced after the title. Optional —
     * omit when the body content is self-explanatory.
     */
    description?: string;
}
/**
 * The canonical admin modal. Built on Radix `Dialog`, which provides the
 * accessibility contract for free: focus is trapped while open and restored to
 * the trigger on close, Escape and overlay-click dismiss, the surface is
 * exposed as `role="dialog"` + `aria-modal`, and the title/description are wired
 * via `aria-labelledby`/`aria-describedby`.
 *
 * The portal mounts inside `.actuate-admin` (see `adminPortalContainer`) so the
 * dialog inherits theme tokens and dark mode instead of rendering unstyled on
 * `document.body`.
 */
export declare function Modal({ open, onClose, title, children, actions, description }: ModalProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Modal.d.ts.map