import type { CLIProxyProvider } from '../types';
import type { ProviderCatalog } from '../model-catalog';
import type { RemoteModelInfo } from '../management/management-api-types';
/** Cache structure stored on disk */
interface CatalogCacheData {
    providers: Record<string, RemoteModelInfo[]>;
    fetchedAt: number;
}
/** CCS provider → channel name mapping (reverse) */
export declare const PROVIDER_TO_CHANNEL: Record<string, string>;
/** Providers to sync from CLIProxyAPI */
export declare const SYNCABLE_PROVIDERS: CLIProxyProvider[];
export type CatalogSource = 'live' | 'cache' | 'static';
export interface ResolvedCatalogSnapshot {
    catalogs: Partial<Record<CLIProxyProvider, ProviderCatalog>>;
    source: CatalogSource;
    cacheAge: string | null;
}
/** Read cached catalog data, null if expired or missing */
export declare function getCachedCatalog(): CatalogCacheData | null;
/** Save catalog data to cache */
export declare function setCachedCatalog(providers: Record<string, RemoteModelInfo[]>): void;
/** Delete cache file */
export declare function clearCatalogCache(): boolean;
/** Get cache age in human-readable format, or null if no cache */
export declare function getCacheAge(): string | null;
export declare function refreshCatalogFromProxy(): Promise<Record<string, RemoteModelInfo[]> | null>;
/**
 * Merge remote models with static catalog for a provider.
 * Remote fields override static where present.
 * Static-only fields preserved: broken, deprecated, deprecationReason, issueUrl, tier.
 * Models in remote but not in static → added.
 * Models removed upstream stay hidden; UI falls back to static only when live data is unavailable.
 */
export declare function mergeCatalog(provider: CLIProxyProvider, remoteModels: RemoteModelInfo[]): ProviderCatalog | undefined;
/**
 * Get resolved catalog for a provider.
 * Uses cached remote data if available, falls back to static.
 */
export declare function getResolvedCatalog(provider: CLIProxyProvider): ProviderCatalog | undefined;
/**
 * Get all resolved catalogs (for Dashboard).
 */
export declare function getAllResolvedCatalogs(): Partial<Record<CLIProxyProvider, ProviderCatalog>>;
export declare function getResolvedCatalogSnapshot(): Promise<ResolvedCatalogSnapshot>;
export {};
//# sourceMappingURL=catalog-cache.d.ts.map