/**
 * 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[];
