import { default as React, ReactNode } from 'react';
import { DialogProps } from '@mui/material';
import { ButtonProps } from '../Buttons/Button/Button';
export type ModalProps = Omit<DialogProps, 'onClose' | 'title' | 'content'> & {
    /**
     * Title of the modal. Pass a string to have the modal auto-format the title, or pass a
     * component if you want more control over the style/appearance.
     */
    title?: ReactNode;
    /**
     * Called when the user closes the modal. Make sure to close your modal using this callback.
     */
    onClose?: () => void;
    /**
     * Position of the close button.
     *   - bottom (default): displays close button, with label `closeBtnLabel` (Cancel, by default), on the bottom-left corner.
     *   - top: display close button as an X (only when `title` is type string), in the top-right corner.
     *   - top-and-bottom: displays close button in both top and bottom
     */
    closeButtonPosition?: 'top' | 'bottom' | 'top-and-bottom';
    /**
     * Array of buttons that perform a MODIFYING action (not simply just closing the modal).
     */
    actions?: React.ReactNode[];
    /**
     * Label for the close/cancel button. Use when `closeButtonPosition` is `'bottom'` or `'top-and-bottom'`
     */
    closeBtnLabel?: string;
    /**
     * Override the default styling of the close/cancel button. Defaults are:
     * `{ color: 'primary', variant: 'text' }`
     */
    closeButtonProps?: Omit<ButtonProps, 'onClick'>;
    /**
     * Set to true to disable the modal from dismissing when the user clicks outside the modal (backdrop) or clicks the escape key.
     *
     * Recommended for modals with forms, to prevent users from accidentally dismissing the modal and losing the data they entered.
     */
    disableDismiss?: boolean;
};
/**
 * Modal (internal for now, might expose later)
 */
export declare const Modal: React.FC<ModalProps>;
export default Modal;
