import type { CSSProperties, ReactNode } from 'react'; export type MlModalPlacementEnum = 'top' | 'right' | 'bottom' | 'left' | 'center'; export type MlModalStatusEnum = 'inactivating' | 'inactive' | 'loading' | 'activating' | 'active'; export type MlModalAnimationStatusEnum = 'IN' | 'OUT'; export interface MlModalProps { disable?: boolean; triggerStyle?: CSSProperties; triggerClassName?: string; panelStyle?: CSSProperties; panelClassName?: string; triggerSlot: (opts: { status: MlModalStatusEnum }) => ReactNode; panelSlot: (opts: { close: () => void; loaderData: any }) => ReactNode; maskCloseable?: boolean; placement?: MlModalPlacementEnum; loader?: () => Promise; }