import { Core } from '@strapi/strapi'; /** Supported TTS provider identifiers (single source of truth for admin + routes). */ export declare const TTS_PROVIDER_IDS: readonly ["elevenlabs", "openai"]; export type TtsProviderId = (typeof TTS_PROVIDER_IDS)[number]; export type TtsImplementationStatus = "live" | "coming_soon"; export type PublicTtsProvider = { id: TtsProviderId; label: string; implementationStatus: TtsImplementationStatus; configured: boolean; /** Whether this provider may appear as a tab in the plugin admin (from `adminProviderTabs` + defaults). */ showInAdminTab: boolean; docsUrl?: string; }; export declare function isTtsProviderId(value: string): value is TtsProviderId; /** * Normalize query/body `provider` / `providerId` (default elevenlabs). */ export declare function normalizeTtsProviderParam(raw: string | string[] | undefined): string; export type ProviderResolution = { ok: true; providerId: TtsProviderId; } | { ok: false; reason: "unknown" | "not_live"; providerId: string; }; export declare function resolveLiveTtsProvider(raw: string | string[] | undefined): ProviderResolution; /** * Provider ids allowed as admin tabs: full catalog when `adminProviderTabs` is unset/empty; * otherwise only known ids from that list (deduped, order preserved). */ export declare function getAdminTabProviderIds(strapi: Core.Strapi): TtsProviderId[]; export declare function listPublicTtsProviders(strapi: Core.Strapi): PublicTtsProvider[];