/** * TTS factory — registry-driven provider chain construction. * * Looks up SpeechProviderPlugin instances from the central registry * (src/voice/tts/speech-registry.ts), builds per-provider config via * plugin.resolveConfig, and filters out providers that report * isConfigured() === false. * * Side-effect import of `./providers/index.js` ensures all built-in providers * self-register before the first lookup. */ import './providers/index.js'; import type { SpeechProviderConfig, SpeechProviderPlugin } from './speech-provider-types.js'; import type { TTSConfig, TTSProvider } from './types.js'; /** A configured plugin ready to synthesize, with its resolved config snapshot. */ export interface ResolvedSpeechProvider { plugin: SpeechProviderPlugin; /** Provider id from the chain config (may differ from plugin.id when alias). */ providerId: TTSProvider; /** Per-provider normalized config (output of plugin.resolveConfig). */ providerConfig: SpeechProviderConfig; /** Plugin-shared timeout/maxLength carried from TTSConfig. */ timeoutMs: number; } /** Resolve a single provider id → plugin + per-call config, or null if unavailable. */ export declare function resolveSpeechProvider(providerId: TTSProvider, config: TTSConfig): ResolvedSpeechProvider | null; /** Order providers: explicit fallback when enabled, otherwise auto-select by registry order. */ export declare function resolveProviderOrder(primary: TTSProvider, fallback: TTSConfig['fallback'] | undefined, config: TTSConfig): TTSProvider[]; /** Resolve the full provider chain in priority order; only configured plugins included. */ export declare function resolveSpeechProviderChain(config: TTSConfig): ResolvedSpeechProvider[]; export declare function isTTSAvailable(config?: TTSConfig): boolean; export declare function isProviderConfigured(provider: TTSProvider, config: TTSConfig): boolean; export declare function getAvailableProviders(config: TTSConfig): TTSProvider[]; /** List all registered SpeechProviderPlugin ids — primarily for the gateway console. */ export declare function listRegisteredSpeechProviderIds(): string[];