/** * RealtimeAgent - Real-time voice/audio interaction agent * * Python parity with praisonaiagents/agent/realtime_agent.py * Enables real-time voice conversations using WebSocket connections. */ /** * Configuration for Realtime settings. */ export interface RealtimeConfig { /** Voice to use for responses */ voice?: 'alloy' | 'echo' | 'fable' | 'onyx' | 'nova' | 'shimmer'; /** Audio input format */ inputFormat?: 'pcm16' | 'g711_ulaw' | 'g711_alaw'; /** Audio output format */ outputFormat?: 'pcm16' | 'g711_ulaw' | 'g711_alaw'; /** Sample rate in Hz */ sampleRate?: number; /** Enable voice activity detection */ vadEnabled?: boolean; /** VAD threshold */ vadThreshold?: number; /** Timeout in seconds */ timeout?: number; } /** * Event types for realtime sessions. */ export type RealtimeEventType = 'session.created' | 'session.updated' | 'input_audio_buffer.append' | 'input_audio_buffer.commit' | 'input_audio_buffer.clear' | 'response.create' | 'response.done' | 'response.audio.delta' | 'response.audio.done' | 'response.text.delta' | 'response.text.done' | 'error'; /** * Realtime event. */ export interface RealtimeEvent { type: RealtimeEventType; data?: any; timestamp?: number; } /** * Configuration for creating a RealtimeAgent. */ export interface RealtimeAgentConfig { /** Agent name */ name?: string; /** Model to use */ llm?: string; /** Realtime configuration */ realtime?: boolean | RealtimeConfig; /** System instructions */ instructions?: string; /** Enable verbose output */ verbose?: boolean; /** API key */ apiKey?: string; } /** * Agent for real-time voice conversations. * * Uses WebSocket connections for low-latency audio streaming. * * @example * ```typescript * import { RealtimeAgent } from 'praisonai'; * * const agent = new RealtimeAgent({ * instructions: 'You are a helpful voice assistant', * realtime: { voice: 'nova' } * }); * * // Connect to realtime session * await agent.connect(); * * // Send audio * agent.sendAudio(audioBuffer); * * // Listen for responses * agent.on('response.audio.delta', (event) => { * playAudio(event.data); * }); * ``` */ export declare class RealtimeAgent { static readonly DEFAULT_MODEL = "gpt-4o-realtime-preview"; readonly name: string; private readonly llm; private readonly instructions?; private readonly verbose; private readonly realtimeConfig; private readonly apiKey?; private connected; private eventHandlers; constructor(config: RealtimeAgentConfig); private log; /** * Connect to the realtime session. */ connect(): Promise; /** * Disconnect from the realtime session. */ disconnect(): Promise; /** * Check if connected. */ isConnected(): boolean; /** * Send audio data to the session. */ sendAudio(audioData: ArrayBuffer | Uint8Array): void; /** * Commit the audio buffer for processing. */ commitAudio(): void; /** * Clear the audio buffer. */ clearAudio(): void; /** * Send a text message. */ sendText(text: string): Promise; /** * Register an event handler. */ on(eventType: RealtimeEventType, handler: (event: RealtimeEvent) => void): void; /** * Remove an event handler. */ off(eventType: RealtimeEventType, handler: (event: RealtimeEvent) => void): void; /** * Emit an event to handlers. */ private emit; /** * Get the current configuration. */ getConfig(): Required; /** * Update the session configuration. */ updateConfig(config: Partial): Promise; } /** * Create a RealtimeAgent instance. */ export declare function createRealtimeAgent(config: RealtimeAgentConfig): RealtimeAgent;