import * as _mui_system from '@mui/system';
import { BoxProps } from '@mui/system';
import * as react from 'react';
import { ReactNode, FC } from 'react';
import { ModalUnstyledProps } from '@mui/base/ModalUnstyled';

interface ModalHeaderProps extends BoxProps {
    handleClose?: () => void;
    handleConfig?: () => void;
}

interface ModalProps extends Pick<ModalUnstyledProps, "onClose" | "open"> {
    children: ReactNode;
    className?: string;
}
interface ModalClasses {
    aside: string;
    backdrop: string;
    body: string;
    content: string;
    footer: string;
    header: string;
    modal: string;
    open: string;
    root: string;
    section: string;
}

declare const Modal: FC<ModalProps> & {
    Aside: react.ForwardRefExoticComponent<Omit<_mui_system.BoxProps<"div", {}>, "ref"> & react.RefAttributes<HTMLDivElement>>;
    Body: react.ForwardRefExoticComponent<Omit<_mui_system.BoxProps<"div", {}>, "ref"> & react.RefAttributes<HTMLDivElement>>;
    Footer: react.ForwardRefExoticComponent<Omit<_mui_system.BoxProps<"div", {}>, "ref"> & react.RefAttributes<HTMLDivElement>>;
    Header: react.ForwardRefExoticComponent<Omit<ModalHeaderProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
    Section: react.ForwardRefExoticComponent<Omit<_mui_system.BoxProps<"div", {}>, "ref"> & react.RefAttributes<HTMLDivElement>>;
};

declare const modalClasses: ModalClasses;

export { Modal as M, ModalProps as a, ModalClasses as b, modalClasses as m };
