import React from 'react'; import type { SxProps } from '@mui/material/styles'; import type { TypographyProps } from '@mui/material'; export interface DialogBaseProps { isOpen: boolean; onClose(): void; type?: 'passive' | 'action'; nonModal?: boolean; title: string; titleIcon?: React.ReactNode; titleVariant?: TypographyProps['variant']; children: React.ReactNode; actions?: React.ReactNode; enableBackdropClose?: boolean; size?: 'small' | 'medium'; sx?: SxProps; style?: React.CSSProperties; className?: string; } export interface PassiveDialogType extends DialogBaseProps { type: 'passive'; actions?: undefined; enableBackdropClose?: true; } export interface ActionDialogType extends DialogBaseProps { type: 'action'; actions: React.ReactNode; enableBackdropClose?: boolean; } export interface PassiveModalProps extends PassiveDialogType { nonModal?: false; } export interface ActionModalProps extends ActionDialogType { nonModal?: false; } export type ModalProps = PassiveModalProps | ActionModalProps; export interface PassiveNonModalProps extends PassiveDialogType { nonModal?: true; } export interface ActionNonModalProps extends ActionDialogType { nonModal?: true; enableBackdropClose?: false; } export type NonModalProps = PassiveNonModalProps | ActionNonModalProps; export type DialogProps = ModalProps | NonModalProps; declare function Dialog(props: DialogProps): React.ReactPortal | null; export default Dialog;