import * as React from "react";
export interface IModalProps {
    /**
     * Control modal's visibility
     */
    showModal: boolean;
    /**
     * Modal content
     */
    children: React.ReactElement<IModalHeaderProps> | [React.ReactElement<IModalHeaderProps>, React.ReactElement<IModalBodyProps>];
    /**
     * Overwrite the Modal styles by passing space separated class names
     */
    className?: string;
    /**
     * Sets the modal content to right-to-left
     */
    rtl?: boolean;
    /**
     * Hide the modal on esc key press
     * @default true
     */
    escKeyClose?: boolean;
    /**
     * Show/hide the close button within the modal
     * @default true
     */
    closeButton?: boolean;
    /**
     * Pass a reference to the element where the Modal needs to be rendered
     * @default document.body
     */
    portalTarget?: HTMLElement;
    /**
     * A list of Refs to be considered as a part of the Lock. The html elements in the list will be accessible while the Modal is open.
     */
    shards?: (HTMLElement | React.RefObject<any>)[];
    /**
     * Callback function for onHide
     */
    onHide?: () => void;
}
export interface IModalHeaderProps {
    /**
     * Header of the Modal
     */
    children?: React.ReactNode;
    /**
     * Dynamically updates the classes applied to the component
     */
    className?: string;
}
export interface IModalBodyProps {
    /**
     * Modal Body
     */
    children?: React.ReactNode;
    /**
     * Dynamically updates the classes applied to the component
     */
    className?: string;
}
/**
 * Modal component for displaying content in an overlay with optional header and close button.
 *
 * @example
 * ```tsx
 * <Modal showModal={modalVisible} onHide={() => setModalVisible(false)}>
 *   <Modal.Header>Modal Title</Modal.Header>
 *   <Modal.Body>Modal content goes here</Modal.Body>
 * </Modal>
 * ```
 */
declare const ModalComponent: React.ForwardRefExoticComponent<IModalProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Modal header component for rendering the title in the Modal.
 *
 * @example
 * ```tsx
 * <Modal.Header>Modal Title</Modal.Header>
 * ```
 */
declare const ModalHeader: React.ForwardRefExoticComponent<IModalHeaderProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Modal body component for rendering content inside the Modal.
 *
 * @example
 * ```tsx
 * <Modal.Body>Modal content goes here</Modal.Body>
 * ```
 */
declare const ModalBody: React.ForwardRefExoticComponent<IModalBodyProps & React.RefAttributes<HTMLDivElement>>;
type TModalCompoundComponent = typeof ModalComponent & {
    Header: typeof ModalHeader;
    Body: typeof ModalBody;
};
declare const Modal: TModalCompoundComponent;
export { Modal, ModalHeader, ModalBody };
