import { type PropsWithChildren } from 'react';
import React from 'react';
export type ModalCloseEvent = KeyboardEvent | React.KeyboardEvent | React.MouseEvent<HTMLButtonElement | HTMLDivElement>;
export type ModalCloseSource = 'overlay' | 'button' | 'escape';
export type ModalProps = {
    /** If true, modal is opened or visible. */
    open: boolean;
    /** Custom class to be applied to the modal root div */
    className?: string;
    /** Callback handler for closing of modal. */
    onClose?: (event: ModalCloseEvent) => void;
    /** Optional handler to intercept closing logic. Return false to prevent onClose. */
    onCloseAttempt?: (source: ModalCloseSource, event: ModalCloseEvent) => boolean;
};
export declare const Modal: ({ children, className, onClose, onCloseAttempt, open, }: PropsWithChildren<ModalProps>) => React.JSX.Element | null;
