import { AriaAttributes, FC, HTMLAttributes, MouseEvent, ReactNode } from 'react'; export interface ModalProps extends HTMLAttributes { /** * Heading to display at the top of the modal. */ heading?: ReactNode; /** * The primary body content of the modal. */ children: ReactNode; /** * Content, generally buttons, can be passed to this prop in order to render * them within a special button group section at the bottom of the modal. */ buttonGroup?: ReactNode; /** * If given, modal will fire `onClose` (if provided) when the background is * clicked. */ closeOnBackgroundClick?: boolean; /** * If given, modal will fire `onClose` (if provided) when escape key is * pressed. */ closeOnEscape?: boolean; /** * Modal opens when true. */ open?: boolean; /** * If given, modal will have a close button, and clicking it will fire this * callback function. * @param event Either a mouse event (background or close button clicked) or * a keyboard event (escape key pressed). */ onClose?(event: KeyboardEvent | MouseEvent): void; /** * Modal does not have a max width. */ fullWidth?: boolean; /** * Do not unmount the modal when it is closed. */ noUnmount?: boolean; /** * Class for the outermost wrapper */ wrapperClassName?: string; /** * Provide alongside `onClose` for localized accessibility. * @default "Close" */ closeLabel?: AriaAttributes['aria-label']; /** @default "dialog" */ role?: HTMLAttributes['role']; /** @default true */ 'aria-modal'?: AriaAttributes['aria-atomic']; } export declare const Modal: FC;