import type { IDataSource } from './data-source.js'; import type { SqliteStore } from './sqlite-store.js'; export interface ISyncOptions { force?: boolean; batchSize?: number; } export interface ISyncProgress { sourceId: string; status: 'idle' | 'syncing' | 'completed' | 'error'; progress: number; total?: number; synced?: number; error?: string; startedAt?: number; completedAt?: number; } export interface ISyncManagerConfig { syncIntervalMs?: number; minSyncIntervalMs?: number; maxRetries?: number; } export declare class SyncManager { private readonly store; private readonly dataSources; private readonly config; private readonly progress; private syncInterval; private isSyncing; constructor(store: SqliteStore, config?: ISyncManagerConfig); registerDataSource(dataSource: IDataSource): void; unregisterDataSource(sourceId: string): void; getProgress(sourceId?: string): ISyncProgress | Map; startBackgroundSync(): void; stopBackgroundSync(): void; syncAll(options?: ISyncOptions): Promise>; syncSource(sourceId: string, dataSource?: IDataSource, options?: ISyncOptions): Promise; } //# sourceMappingURL=sync-manager.d.ts.map