/** * Voice resolution logic — maps --voice / --provider flags to a concrete * voice identity (name + provider) that can be used for TTS generation. */ /** Kokoro voices available locally without any API access. */ export declare const KOKORO_VOICES: readonly [{ readonly name: "heart"; readonly kokoroId: "af_heart"; }, { readonly name: "bella"; readonly kokoroId: "af_bella"; }, { readonly name: "nicole"; readonly kokoroId: "af_nicole"; }, { readonly name: "nova"; readonly kokoroId: "af_nova"; }, { readonly name: "sarah"; readonly kokoroId: "af_sarah"; }, { readonly name: "adam"; readonly kokoroId: "am_adam"; }, { readonly name: "michael"; readonly kokoroId: "am_michael"; }]; export interface ResolvedVoice { name: string; provider: string; /** Provider-specific voice ID (e.g., "af_heart" for Kokoro, "aria" for ElevenLabs) */ providerId: string; tier: "free" | "premium"; } export interface AvailableVoice { name: string; provider: string; providerId: string; tier: "free" | "premium"; } /** * Build the full list of available voices — local Kokoro + optional API voices. */ export declare function buildAvailableVoices(apiVoices?: { voiceName: string; provider: string; voiceId: string; providerId: string; tier: "free" | "premium"; }[]): AvailableVoice[]; /** * Resolve a voice by name and optional provider. * * Resolution strategy: * 1. If --provider specified: match name within that provider * 2. If no --provider: match name across all providers, prefer free/kokoro on collision * 3. If no match: return null */ export declare function resolveVoice(name: string, provider: string | undefined, availableVoices: AvailableVoice[]): ResolvedVoice | null; /** * Check if a resolved voice requires cloud TTS (non-kokoro provider). */ export declare function isCloudVoice(voice: ResolvedVoice): boolean; /** Default Kokoro voice used as fallback. */ export declare const KOKORO_DEFAULT_VOICE: ResolvedVoice; /** * Resolve voice from CLI flags, fetching API voices if authenticated. * Falls back to default Kokoro voice if voice not found. * * Shared by generate and render commands. */ export declare function resolveVoiceFromFlags(voiceName: string | undefined, providerName: string | undefined, deps: { getDefaultVoice: () => { name: string; provider?: string; }; getToken: () => Promise; createApiClient: (token: string) => { get(path: string): Promise; }; demoVoicePreference?: { name: string; provider: string; } | null; }): Promise; //# sourceMappingURL=voice-resolver.d.ts.map