import type { Config } from '../config/schema.js'; import { type ModelsJsonConfig } from '../config/models-json.js'; import { type ModelCatalogStore } from './model-catalog-store.js'; import { discoverProviderModels } from './model-discovery.js'; import { XopcCloudModelSource } from './xopc-cloud-model-source.js'; export interface ModelCatalogSyncStatus { running: boolean; refreshing: boolean; lastAttemptAt?: number; lastSuccessAt?: number; lastError?: string; sourceErrors?: Record; } export declare class ModelCatalogSyncService { private readonly options; private readonly xopcCloud; private timer; private refreshPromise; private refreshAllPromise; private status; constructor(options?: { intervalMs?: number; onUpdated?: (modelCount: number) => void; xopcCloud?: XopcCloudModelSource; getConfig?: () => Config; catalogStore?: ModelCatalogStore; loadProviders?: () => ModelsJsonConfig['providers']; discoverModels?: typeof discoverProviderModels; refreshModels?: () => void; getModelCount?: () => number; }); start(): void; stop(): void; getStatus(): ModelCatalogSyncStatus; refreshNow(): Promise>>; refreshAll(): Promise<{ updatedSources: string[]; }>; private refreshAllSources; }