import type { OpenClawConfig } from "../config/config.js"; import type { ResolvedTtsConfig, TtsDirectiveOverrides } from "./tts.js"; export type SpeechProviderId = string; export type SpeechSynthesisTarget = "audio-file" | "voice-note"; export type SpeechProviderConfiguredContext = { cfg?: OpenClawConfig; config: ResolvedTtsConfig; }; export type SpeechSynthesisRequest = { text: string; cfg: OpenClawConfig; config: ResolvedTtsConfig; target: SpeechSynthesisTarget; overrides?: TtsDirectiveOverrides; }; export type SpeechSynthesisResult = { audioBuffer: Buffer; outputFormat: string; fileExtension: string; voiceCompatible: boolean; }; export type SpeechTelephonySynthesisRequest = { text: string; cfg: OpenClawConfig; config: ResolvedTtsConfig; }; export type SpeechTelephonySynthesisResult = { audioBuffer: Buffer; outputFormat: string; sampleRate: number; }; export type SpeechVoiceOption = { id: string; name?: string; category?: string; description?: string; locale?: string; gender?: string; personalities?: string[]; }; export type SpeechListVoicesRequest = { cfg?: OpenClawConfig; config?: ResolvedTtsConfig; apiKey?: string; baseUrl?: string; };