import type { Api, Model, ModelSpec } from "./types.js"; interface CacheEntry { models: ModelSpec[]; fresh: boolean; authoritative: boolean; updatedAt: number; /** Model ids whose live headers were intentionally omitted from disk. */ headerOmittedModelIds: readonly string[]; /** Header-bearing model ids that cannot be rebuilt from the static source. */ unrestorableHeaderModelIds: readonly string[]; /** Whether unrestorable markers predate request-model header matching. */ legacyHeaderRestoreMarkers: boolean; /** * Hash of the static catalog slice that was merged into `models` when this * row was written. `resolveProviderModels` compares against the current * static fingerprint and bypasses the static+cache re-merge when they * match — the cache already incorporates the same static state. */ staticFingerprint: string; } export declare function readModelCache(providerId: string, ttlMs: number, now: () => number, dbPath?: string): CacheEntry | null; export declare function writeModelCache(providerId: string, updatedAt: number, models: Model[], authoritative: boolean, staticFingerprint: string, dbPath?: string, staticHeaderSources?: readonly Model[], restorableHeaderFallback?: Record): void; export {};