import { ReactNode } from 'react'; export interface ChatMentionParticipant { id?: string; image?: string | null; name: string; username?: string | null; } export interface ParseMentionsOptions { knownParticipants?: readonly ChatMentionParticipant[]; onMentionClick?: (mention: string, participant?: ChatMentionParticipant) => void; } /** * Renders plain text with `@mention` tokens emphasized without HTML injection. * * Fully supported for plain `@handle` text with no Athena involvement. Note it * re-parses handles out of display text, so a renamed or ambiguous handle * changes what renders. For Athena-backed messages use * {@link segmentMentionText}, which reads the structural * `{ offset, length, user_id }` spans resolved once at send time and stays * correct regardless of later handle changes. */ export declare function renderMessageWithMentions(text: string, options?: ParseMentionsOptions): ReactNode[]; /** * Extracts unique `@mention` handles from text. * * Fully supported for plain `@handle` text with no Athena involvement. Returns * bare handle strings, which cannot be turned back into user ids unambiguously. * For Athena-backed sends use {@link resolveMentionsFromText}, which resolves * handles against a participant list and returns structural * `{ offset, length, user_id }` spans. */ export declare function extractMentions(text: string): string[];