import { VoiceSettings, PlaybackState, ChunkingOptions } from './types/audio.js'; import { ControlServerConfig } from './types/control.js'; export interface JarvisConfig { apiKey?: string; voice?: string; speed?: number; chunking?: Partial; controlServer?: Partial; autoStartServer?: boolean; } export declare class JarvisController { private textChunker; private elevenLabsClient; private bufferManager; private controlServer; private currentVoiceSettings; private isInitialized; constructor(config?: JarvisConfig); startControlServer(): Promise; stopControlServer(): Promise; speakText(text: string, options?: { voice?: string; speed?: number; chunking?: Partial; waitForCompletion?: boolean; }): Promise; private waitForPlaybackCompletion; getNextSegment(): Promise<{ audioBuffer?: ArrayBuffer; duration?: number; isComplete: boolean; }>; getPlaybackState(): PlaybackState; pause(): void; resume(): void; stop(): void; rewind(): boolean; skipForward(): boolean; replayCurrentSegment(): boolean; seekToChunk(chunkIndex: number): boolean; changeSpeed(speed: number): void; changeVoice(voice: string): void; getVoiceSettings(): VoiceSettings; updateVoiceSettings(settings: Partial): void; getAvailableVoices(): string[]; getControlServerPort(): number; isControlServerRunning(): boolean; getProgress(): { currentChunk: number; totalChunks: number; completionPercentage: number; estimatedTimeRemaining: number; }; getSegmentsSummary(): Array<{ id: string; order: number; text: string; status: string; duration?: number; isCurrent: boolean; }>; cleanup(): void; static createWithDefaults(apiKey?: string): Promise; static getDefaultVoiceSettings(): VoiceSettings; } //# sourceMappingURL=jarvis-controller.d.ts.map