import type { ServeConfig, ResolvedModelEntry } from './core/model-registry.js'; interface RawServeConfig { serve?: { models?: Record; publicBaseUrl?: string; cors?: { origins?: unknown; }; openai?: RawOpenAIOptions; }; } interface RawOpenAIOptions { audio?: { speech?: { defaultVoice?: unknown; /** Map OpenAI `voice` -> `serve.models` alias (see ServeConfig.openai.audio.speech.voices). */ voices?: unknown; /** Cap on `input` length; `null` disables. See ServeConfig.openai.audio.speech.maxInputChars. */ maxInputChars?: unknown; }; }; } interface ConstantModelEntry { model: string; type?: string; default?: boolean; preload?: boolean; config?: Record; } interface ExplicitModelEntry { src: string; type: string; default?: boolean; preload?: boolean; config?: Record; } interface CLIServeOptions { model?: string | string[] | undefined; publicBaseUrl?: string | undefined; corsOrigins?: string[] | undefined; } export declare function parseServeConfig(rawConfig: RawServeConfig, cliOptions: CLIServeOptions): ServeConfig; export declare function normalizeEndpointCategory(sdkType: string): string; /** * Resolves explicit serve.models entries: maps the virtual whisper translation * alias to whispercpp-transcription + forces translate=true for SDK loadModel * (whisper modelConfig is flat whisper fields, not a nested whisperConfig object). * Exported for unit tests. */ export declare function resolveExplicitServeModel(type: string, config: Record): { sdkType: string; endpointCategory: string; config: Record; }; export declare function resolveModelConstant(alias: string, entry: ConstantModelEntry): ResolvedModelEntry; export declare function resolveModelAlias(serveConfig: ServeConfig, modelName: string | null | undefined): ResolvedModelEntry | null; export {}; //# sourceMappingURL=config.d.ts.map