import type { AuthManager } from '../auth/manager.js'; import type { AuthStatus } from '../auth/manager.js'; /** * Catálogo dinámico de modelos. * * Resuelve la lista real disponible contra `/v1/models` de cada provider * autenticado, con caché en `~/.squeezr-code/models-cache.json` (TTL 1h) * para no pagar 200-500ms en cada arranque. */ export interface ModelInfo { id: string; alias: string; label: string; provider: 'anthropic' | 'openai' | 'google'; implemented: boolean; } /** * Carga los modelos (desde caché si válida, fetch si expirada). * Idempotente: llamadas concurrentes comparten la misma Promise. */ export declare function loadModels(auth: AuthManager, status: AuthStatus): Promise; /** Devuelve los modelos cargados (o [] si aún no se ha llamado a loadModels). */ export declare function getLoadedModels(): ModelInfo[]; /** * Resolve any user-visible model reference (full ID, derived alias, or * family shortcut) to the full provider model ID used in API calls. * * Examples: * "sonnet" → "claude-sonnet-4-5-20250929" * "opus-4.7" → "claude-opus-4-7-20260401" * "claude-sonnet-4-5-...." → same (pass-through) * "5-codex" → "gpt-5-codex" (catalogue or digit-start fallback) * * If nothing matches AND the input is a family shortcut with a hardcoded * fallback, use that. Otherwise return the input unchanged (API will * produce a clear 404 instead of a silent misroute). */ export declare function resolveModelAlias(input: string): string; /** * Alias reservados: * opus / sonnet / haiku → último de cada familia Anthropic * pro / flash → último de cada familia Google */ export declare function resolveFamilyShortcut(input: string, models: ModelInfo[]): string | null; //# sourceMappingURL=models.d.ts.map