import { type CatalogModel } from './model-catalog.js'; import type { FavoritesStore } from './favorites.js'; import type { BenchmarkStore } from './model-benchmarks.js'; /** * Parameters for catalog lifecycle operations. * Passed as a callback bundle so functions remain stateless * with respect to the ProviderRegistry class. */ export interface CatalogLifecycleContext { /** Returns the current catalog cache paths. */ getCatalogCachePaths(): { cachePath: string; tmpPath: string; }; /** Applies a freshly-fetched model list to the registry's catalog state. */ updateCatalogState(models: readonly CatalogModel[], fetchedAt?: number): void; /** Returns a snapshot of the current catalog models (for diff/notify). */ getCatalogModels(): readonly CatalogModel[]; readonly favoritesStore: Pick; readonly benchmarkStore: Pick; /** Triggers an async background catalog refresh (used by initCatalog). */ refreshCatalog(): Promise; } /** * Load the catalog from disk cache on startup. If the cache is absent or * stale, schedules a background refresh without blocking the caller. * * Extracted from ProviderRegistry.initCatalog() to isolate catalog * initialization logic from provider management concerns. */ export declare function initProviderCatalog(ctx: CatalogLifecycleContext): void; /** * Fetch an updated catalog from the remote source, persist it to the local * cache, apply it to the registry state, and emit change notifications. * * Extracted from ProviderRegistry.refreshCatalog() to isolate catalog * refresh logic from provider management concerns. */ export declare function refreshProviderCatalog(ctx: CatalogLifecycleContext): Promise; //# sourceMappingURL=registry-catalog-lifecycle.d.ts.map