@voxket-ai/voxket-live
Version:
A React widget for embedding Voxket-powered audio/video/chat experiences.
92 lines (91 loc) • 2.67 kB
TypeScript
import { Room } from 'livekit-client';
import { VoxketEventEmitter } from './event-emitter';
import { ChatManager } from './chat-manager';
import { AgentManager } from './agent-manager';
import { VoxketEvents } from '../types/core';
/**
* StreamHandlerManager
*
* Manages all text and byte stream handlers including:
* - Chat message streams (lk.chat)
* - Transcription streams (lk.transcription)
* - Agent state change streams
* - Tool execution streams
* - Image attachment streams
* - Custom event emitter streams
* - Suggested response streams
*/
export declare class StreamHandlerManager {
private room;
private eventEmitter;
private chatManager;
private agentManager;
private textStreamHandlersRegistered;
private _eventEmitters;
constructor(eventEmitter: VoxketEventEmitter<VoxketEvents>, chatManager: ChatManager, agentManager: AgentManager);
/**
* Set the room instance for stream handling
* Automatically registers handlers when room is set and not already registered
*/
setRoom(room: Room | null): void;
/**
* Check if stream handlers are registered
*/
areHandlersRegistered(): boolean;
/**
* Reset handlers registration flag
*/
resetHandlersFlag(): void;
/**
* Setup all text stream handlers
*/
setupTextStreamHandlers(): void;
/**
* Register chat message handler (lk.chat)
*/
private registerChatHandler;
/**
* Register transcription handler (lk.transcription)
*/
private registerTranscriptionHandler;
/**
* Register suggested response handler
*/
private registerSuggestedResponseHandler;
/**
* Register agent state change handler
*/
private registerAgentStateHandler;
/**
* Register function tools execution handler
*/
private registerFunctionToolsHandler;
/**
* Register image text stream handler
*/
private registerImageTextStreamHandler;
/**
* Register image byte stream handler
*/
private registerImageByteStreamHandler;
/**
* Register handlers for common topics
*/
private registerCommonTopicHandlers;
/**
* Register wildcard handler for unhandled topics
*/
private registerWildcardHandler;
/**
* Register a custom event emitter for a specific topic
*/
registerEventEmitter(topic: string, handler: (data: string) => void): void;
/**
* Get all registered event emitters
*/
getRegisteredEventEmitters(): string[];
/**
* Check if an event emitter is registered for a topic
*/
hasEventEmitter(topic: string): boolean;
}