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;