import type { TranscriptionModel, SpeechModel } from '../_types/@internal_ai-sdk-v5/dist/index.js'; import type { ToolsInput } from '../agent/index.js'; import { MastraVoice } from './voice.js'; import type { VoiceEventType, VoiceEventMap } from '.'; export declare class CompositeVoice extends MastraVoice { protected speakProvider?: MastraVoice; protected listenProvider?: MastraVoice; protected realtimeProvider?: MastraVoice; constructor({ input, output, realtime, }: { input?: MastraVoice | TranscriptionModel; output?: MastraVoice | SpeechModel; realtime?: MastraVoice; }); /** * Convert text to speech using the configured provider * @param input Text or text stream to convert to speech * @param options Speech options including speaker and provider-specific options * @returns Audio stream or void if in realtime mode */ speak(input: string | NodeJS.ReadableStream, options?: { speaker?: string; } & any): Promise; listen(audioStream: NodeJS.ReadableStream, options?: any): Promise; getSpeakers(): Promise<{ voiceId: string; }[]>; getListener(): Promise<{ enabled: boolean; }>; updateConfig(options: Record): void; /** * Initializes a WebSocket or WebRTC connection for real-time communication * @returns Promise that resolves when the connection is established */ connect(options?: Record): Promise; /** * Relay audio data to the voice provider for real-time processing * @param audioData Audio data to send */ send(audioData: NodeJS.ReadableStream | Int16Array): Promise; /** * Trigger voice providers to respond */ answer(options?: Record): Promise; /** * Equip the voice provider with instructions * @param instructions Instructions to add */ addInstructions(instructions: string): void; /** * Equip the voice provider with tools * @param tools Array of tools to add */ addTools(tools: ToolsInput): void; /** * Disconnect from the WebSocket or WebRTC connection */ close(): void; /** * Register an event listener * @param event Event name (e.g., 'speaking', 'writing', 'error') * @param callback Callback function that receives event data */ on(event: E, callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void): void; /** * Remove an event listener * @param event Event name (e.g., 'speaking', 'writing', 'error') * @param callback Callback function to remove */ off(event: E, callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void): void; } //# sourceMappingURL=composite-voice.d.ts.map