import React from 'react';
import { BaseModalProps } from '../Overlay/Modal';
import ModalDialog from './ModalDialog';
import ModalBody from './ModalBody';
import ModalHeader from './ModalHeader';
import ModalTitle from './ModalTitle';
import ModalFooter from './ModalFooter';
import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
export interface ModalProps extends BaseModalProps {
    /** A modal can have different sizes */
    size?: TypeAttributes.Size;
    /** Set the duration of the animation */
    animationTimeout?: number;
    /** Set an animation effect for Modal, the default is Bounce.  */
    animation?: React.ElementType;
    /** CSS class applied to Dialog DOM nodes */
    dialogClassName?: string;
    /** CSS style applied to dialog DOM nodes */
    dialogStyle?: React.CSSProperties;
    /** Full screen */
    full?: boolean;
    /** You can use a custom element type for Dialog */
    dialogAs?: React.ElementType;
    /** Automatically sets the height when the body content is too long. */
    overflow?: boolean;
    /** Render Modal as Drawer */
    drawer?: boolean;
}
export interface ModalContextProps {
    /** Pass the close event callback to the header close button. */
    onModalClose: (event: React.MouseEvent<Element, MouseEvent>) => void;
    /** Pass the latest style to body. */
    getBodyStyles?: () => React.CSSProperties;
}
export declare const ModalContext: React.Context<ModalContextProps>;
interface ModalComponent extends RsRefForwardingComponent<'div', ModalProps> {
    Body: typeof ModalBody;
    Header: typeof ModalHeader;
    Title: typeof ModalTitle;
    Footer: typeof ModalFooter;
    Dialog: typeof ModalDialog;
}
declare const Modal: ModalComponent;
export default Modal;
