/** * Base Voice - Abstract class for voice/TTS integrations * Matches mastra's MastraVoice pattern */ export interface VoiceConfig { apiKey?: string; model?: string; voice?: string; } export interface SpeakOptions { voice?: string; speed?: number; pitch?: number; format?: 'mp3' | 'wav' | 'ogg' | 'opus'; } export interface ListenOptions { language?: string; model?: string; } export interface Speaker { id: string; name: string; language?: string; gender?: 'male' | 'female' | 'neutral'; } /** * Abstract base class for voice providers */ export declare abstract class BaseVoiceProvider { readonly name: string; protected apiKey?: string; protected defaultVoice?: string; constructor(config: VoiceConfig & { name?: string; }); /** * Convert text to speech */ abstract speak(text: string, options?: SpeakOptions): Promise; /** * Convert speech to text */ abstract listen(audio: Buffer | ReadableStream, options?: ListenOptions): Promise; /** * Get available voices/speakers */ abstract getSpeakers(): Promise; /** * Check if provider is available */ abstract isAvailable(): Promise; } /** * OpenAI Voice Provider (TTS and Whisper) */ export declare class OpenAIVoiceProvider extends BaseVoiceProvider { private baseUrl; constructor(config?: VoiceConfig); speak(text: string, options?: SpeakOptions): Promise; listen(audio: Buffer | ReadableStream, options?: ListenOptions): Promise; getSpeakers(): Promise; isAvailable(): Promise; } /** * ElevenLabs Voice Provider */ export declare class ElevenLabsVoiceProvider extends BaseVoiceProvider { private baseUrl; constructor(config?: VoiceConfig); speak(text: string, options?: SpeakOptions): Promise; listen(_audio: Buffer | ReadableStream, _options?: ListenOptions): Promise; getSpeakers(): Promise; isAvailable(): Promise; } export declare function createOpenAIVoice(config?: VoiceConfig): OpenAIVoiceProvider; export declare function createElevenLabsVoice(config?: VoiceConfig): ElevenLabsVoiceProvider;