import { HTMLAttributes, ReactNode } from 'react'; import { ChatReactionItem } from './chat-reaction-list.js'; import { ChatMentionParticipant } from './mentions.js'; export interface ChatMessageAttachment { href: string; id?: string; label: string; } export interface ChatMessageProps extends Omit, "content" | "id"> { actions?: ReactNode; attachments?: readonly ChatMessageAttachment[]; body?: ReactNode; bodyText?: string | null; className?: string; compact?: boolean; footer?: ReactNode; hideAvatar?: boolean; hideMeta?: boolean; id: string; isDeleted?: boolean; isEdited?: boolean; isOwn?: boolean; isSelected?: boolean; knownParticipants?: readonly ChatMentionParticipant[]; onMentionClick?: (mention: string, participant?: ChatMentionParticipant) => void; onReactionPress?: (reaction: ChatReactionItem) => void; onSelect?: () => void; reactions?: readonly ChatReactionItem[]; replyPreview?: ReactNode; senderAvatar?: string | null; senderLabel: string; timestamp?: string | null; } /** * Discussion-style message card (issue-thread surface, not consumer chat bubble). * * Presentational primitive — fully supported; you own the data. * {@link AthenaChatMessageList} renders the whole transcript including this * card, reactions and message actions from Athena state, but there is no * connected equivalent for a single message. */ export declare function ChatMessage({ actions, attachments, body, bodyText, className, compact, footer, hideAvatar, hideMeta, id, isDeleted, isEdited, isOwn: _isOwn, isSelected, knownParticipants, onMentionClick, onReactionPress, onSelect, reactions, replyPreview, senderAvatar, senderLabel, timestamp, ...props }: ChatMessageProps): import("react").JSX.Element;