import { type PlayAudioOptions } from '../audio/player'; import { type StartRecordingOptions } from '../audio/recorder'; import { type ChatOptions, type SarvamChatMessage, type SarvamRNClient } from '../client/SarvamRNClient'; import { type SpeechToTextOptions } from '../speech/speechToText'; import { type TextToSpeechOptions } from '../speech/textToSpeech'; export interface VoiceAssistantConfig { autoPlay?: boolean; initialMessages?: SarvamChatMessage[]; recordingOptions?: StartRecordingOptions; transcriptionOptions?: SpeechToTextOptions; chatOptions?: ChatOptions; textToSpeechOptions?: TextToSpeechOptions; playbackOptions?: PlayAudioOptions; } export interface VoiceAssistantResult { transcript: string; response: string; audioBase64?: string; audioMimeType?: string; } type TranscriptListener = (transcript: string) => void; type ResponseListener = (response: string) => void; type AudioListener = (audioBase64: string, mimeType: string) => void; export declare class VoiceAssistant { private readonly client; private readonly config; private readonly recorder; private readonly player; private readonly transcriptListeners; private readonly responseListeners; private readonly audioListeners; private listening; private processing; private readonly conversation; constructor(client: SarvamRNClient, config?: VoiceAssistantConfig); get isListening(): boolean; get isProcessing(): boolean; get messages(): SarvamChatMessage[]; onTranscript(listener: TranscriptListener): () => void; onResponse(listener: ResponseListener): () => void; onAudio(listener: AudioListener): () => void; startListening(recordingOptions?: StartRecordingOptions): Promise; stopListening(): Promise; resetConversation(messages?: SarvamChatMessage[]): void; stopAudioPlayback(): Promise; dispose(): Promise; private emitTranscript; private emitResponse; private emitAudio; } export {}; //# sourceMappingURL=VoiceAssistant.d.ts.map