import { ComponentPropsWithoutRef } from 'react'; import { MediaAttachment } from '../../internal/components/MediaAttachment/types'; export type { AudioMediaAttachment, DocumentMediaAttachment, ImageMediaAttachment, MediaAttachment, MediaKind, VideoMediaAttachment, } from '../../internal/components/MediaAttachment/types'; export type UserMediaMessageProps = Omit, "children" | "content" | "style"> & { /** Drives the linked metadata and preview or player selected by media kind. */ media: MediaAttachment; /** * Announced as an alert. Empty strings render nothing. Pair with `onRetry` * to show retry. */ error?: string; /** Formatted for the current locale beneath the bubble. */ timestamp: Date | string | number; /** Copy source. Defaults to `media.fileName` when omitted. */ copyText?: string; /** Enables retry while `error` is present. */ onRetry?: () => void | Promise; /** * Hides the toolbar until hover or focus. Touch always shows it. Defaults to * `false`. */ revealToolbarOnHover?: boolean; /** * Enables rich image, video, and audio treatments. `false` collapses every * kind to the compact metadata row. Defaults to `true`. */ showPreview?: boolean; className?: string; };