/** * Model configuration validation and resolution. * * Pure logic — no I/O, no side effects (except optional logger callback). * * Extracted from openclaw-plugin/src/hooks/prompt.ts (PRI-444) so that model * config validation can be unit-tested in core without mocking plugin I/O. */ /** * Minimal logger interface for core (structural typing — plugin's PluginLogger * satisfies this because `(...args: unknown[]) => void` is assignable to * `(msg: string) => void` under parameter bivariance). */ export interface CoreLogger { warn?(msg: string): void; info?(msg: string): void; error?(msg: string): void; } /** * Model configuration with primary model and optional fallback models. * Input shape for {@link resolveModelFromConfig} when config is an object. */ export interface ModelConfigObject { primary?: string; fallbacks?: string[]; } /** * Validate model format: must be "provider/model". * * provider: e.g., "openai", "anthropic" — the API provider name * model: e.g., "gpt-4", "claude-3-opus" — the specific model name */ export declare function isValidModelFormat(model: string): boolean; /** * Resolve model configuration for OpenClaw agents, supporting string and object formats. * * @param modelConfig - Model config: string (e.g. "provider/model") or { primary, fallbacks } object * @param logger - Optional logger for validation warnings * @returns Resolved model string, or null if config is missing/invalid */ export declare function resolveModelFromConfig(modelConfig: unknown, logger?: CoreLogger): string | null; //# sourceMappingURL=model-config.d.ts.map