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 declare type ModalSize = TypeAttributes.Size | 'full';
export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
    /** A modal can have different sizes */
    size?: ModalSize;
    /** 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
     * @deprecated Use size="full" instead.
     */
    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;
}
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;
