import { CSSProperties, ReactNode } from 'react'; type AsProp = keyof HTMLElementTagNameMap; type ModalFooterProps = { /** replace footer or pass `null` for no footer */ footerComponent?: ReactNode; /** content slot for buttons in footer */ footerActions?: ReactNode; /** content slot on left side of footer */ footerContentBefore?: ReactNode; /** target footer container */ footerStyle?: Readonly; }; export type ModalProps = ModalFooterProps & { isOpen: boolean; onClose: () => void; title: string; /** HTML element for the overall container (e.g., `as="form"`) */ as?: AsProp; /** rendered in main content area */ children?: ReactNode; /** target modal container */ containerStyle?: Readonly; /** for automation testing */ 'data-testid__close-button'?: string; /** target main content area */ bodyStyle?: Readonly; /** target header container */ headerStyle?: Readonly; /** replace header or pass `null` for no header */ headerComponent?: ReactNode | null; /** content slot below title in header */ headerContentAfter?: ReactNode; /** `small (600)` | `medium (900)` | `large (full)` */ size?: 'small' | 'medium' | 'large'; }; /** * - `Modal` is a controlled component; you must manage the `isOpen` state and provide an `onClose` handler * - `title` is required for accessibility. If you replace or provide no header via props, it will be read via `aria-label` * - The modal body (main content area) has padding is scrollable by default. Overwrite via `bodyStyle`. * - Use `design="outline"` for non-primary footer actions (e.g. Cancel) to visually distinguish them from the primary action. */ export declare function Modal({ isOpen, onClose, as, children, 'data-testid__close-button': dataTestIdCloseButton, bodyStyle, containerStyle, headerStyle, footerStyle, headerComponent, headerContentAfter, footerComponent, footerActions, footerContentBefore, size, title, ...props }: ModalProps): import("react/jsx-runtime").JSX.Element; export default Modal;