UNPKG

@voxket-ai/voxket-live

Version:

A React widget for embedding Voxket-powered audio/video/chat experiences.

73 lines (72 loc) 2.12 kB
import { Room } from 'livekit-client'; import { VoxketEventEmitter } from './event-emitter'; import { ChatMessage, VoxketEvents } from '../types/core'; /** * ChatManager * * Manages all chat-related functionality including: * - Message storage and retrieval * - Sending text messages * - Sending file attachments * - Message updates (streaming messages) * - Markdown to plain text conversion */ export declare class ChatManager { private chatMessages; private activeTranscriptions; private room; private eventEmitter; private participantName; constructor(eventEmitter: VoxketEventEmitter<VoxketEvents>, participantName?: string); /** * Set the room instance for message sending */ setRoom(room: Room | null): void; /** * Update participant name */ setParticipantName(name: string): void; /** * Get all chat messages */ getChatMessages(): ChatMessage[]; /** * Add a new chat message */ addChatMessage(message: ChatMessage): void; /** * Update an existing chat message */ updateChatMessage(updatedMessage: ChatMessage): void; /** * Clear all chat messages and transcriptions */ clearChatMessages(): void; /** * Track a transcription message ID to prevent duplicates */ trackTranscription(participantKey: string, messageId: string): void; /** * Get existing transcription within time window (1 second) */ getActiveTranscription(participantKey: string): { messageId: string; timestamp: number; } | null; /** * Send a text message */ sendMessage(message: string, metadata?: Record<string, any>): Promise<void>; /** * Send multiple file attachments (images only) */ sendAttachments(files: File[], metadata?: Record<string, any>): Promise<void>; /** * Send a single file attachment */ sendAttachment(file: File, metadata?: Record<string, any>): Promise<void>; /** * Convert markdown text to plain text */ convertMarkdownToText(markdownText: string): string; }