import { Key, ReactElement } from 'react'; import type { Collection, CollectionChildren, CollectionStateBase, Node } from '@react-types/shared'; import { ThemeUICSSObject } from 'theme-ui'; import { Status } from './item'; export interface MessageItemProps { children?: React.ReactNode | string; bg?: string; color?: string; icon?: React.ElementType; isHidden?: boolean; 'data-id'?: string; status?: Status; } export interface MessageItem { text?: string; node?: React.ReactNode; key?: Key; props?: MessageItemProps; status?: Status; isHidden?: boolean; } export interface CollectionOptions>> extends Omit, 'children'> { children?: ReactElement | ReactElement[] | ((item: T) => ReactElement); } export interface MessagesProps { children: CollectionChildren; items?: MessageItem[]; onClose?: (key: Key) => void; sx?: ThemeUICSSObject; } export interface CloseButtonProps { color?: string; onPress?: () => void; variant?: string; className?: string; } export interface MessageProps { className?: string; item: { key?: Key; props?: MessageItemProps; }; onClose?: (key: Key) => void; }