import type { GetContainer } from '@rc-component/util'; import type { CSSProperties, ReactNode, SyntheticEvent } from 'react'; export type SemanticName = 'header' | 'body' | 'footer' | 'container' | 'title' | 'wrapper' | 'mask' | 'close'; export type ModalClassNames = Partial>; export type ModalStyles = Partial>; export type ClosableType = { closeIcon?: React.ReactNode; disabled?: boolean; afterClose?: () => any; }; export type IDialogPropTypes = { className?: string; keyboard?: boolean; style?: CSSProperties; rootStyle?: CSSProperties; mask?: boolean; children?: React.ReactNode; afterClose?: () => any; afterOpenChange?: (open: boolean) => void; onClose?: (e: SyntheticEvent | KeyboardEvent) => any; closable?: boolean | (ClosableType & React.AriaAttributes); maskClosable?: boolean; visible?: boolean; destroyOnHidden?: boolean; mousePosition?: { x: number; y: number; } | null; title?: ReactNode; footer?: ReactNode; transitionName?: string; maskTransitionName?: string; animation?: any; maskAnimation?: any; wrapStyle?: Record; bodyStyle?: Record; maskStyle?: Record; prefixCls?: string; wrapClassName?: string; width?: string | number; height?: string | number; zIndex?: number; bodyProps?: any; maskProps?: any; rootClassName?: string; classNames?: ModalClassNames; styles?: ModalStyles; wrapProps?: any; getContainer?: GetContainer | false; closeIcon?: ReactNode; modalRender?: (node: ReactNode) => ReactNode; forceRender?: boolean; focusTriggerAfterClose?: boolean; focusTrap?: boolean; /** Control whether to lock body scroll when modal opens. Default is true. */ scrollLock?: boolean; panelRef?: React.Ref; };