import { JsonDiff } from './remote/json_diff'; import { RemoteRepository } from './remote/remote_repository'; import { IJsonPatch, RemoteOptions, SyncCallback, SyncChangeCallback, SyncCombineDatabaseCallback, SyncCompleteCallback, SyncErrorCallback, SyncEvent, SyncLocalChangeCallback, SyncPauseCallback, SyncRemoteChangeCallback, SyncResult, SyncResultCancel, SyncResultNop, SyncResultPush, SyncResumeCallback, SyncStartCallback } from './types'; /** * Interface of Sync * * @public */ export interface SyncInterface { /*********************************************** * Public properties (readonly) ***********************************************/ remoteURL: string; engine: string; remoteRepository: RemoteRepository; options: RemoteOptions; remoteName: string; /*********************************************** * Public properties ***********************************************/ runBeforeLiveSync: (() => void) | undefined; /** * @internal */ eventHandlers: { change: { collectionPath: string; func: SyncChangeCallback; }[]; localChange: { collectionPath: string; func: SyncLocalChangeCallback; }[]; remoteChange: { collectionPath: string; func: SyncRemoteChangeCallback; }[]; combine: { collectionPath: string; func: SyncCombineDatabaseCallback; }[]; pause: { collectionPath: string; func: SyncPauseCallback; }[]; resume: { collectionPath: string; func: SyncResumeCallback; }[]; start: { collectionPath: string; func: SyncStartCallback; }[]; complete: { collectionPath: string; func: SyncCompleteCallback; }[]; error: { collectionPath: string; func: SyncErrorCallback; }[]; }; jsonDiff: JsonDiff; jsonPatch: IJsonPatch; /*********************************************** * Public methods ***********************************************/ init(): Promise; pause(): void; resume(options?: { interval?: number; retry?: number; }): void; close(): void; tryPush(): Promise; trySync(): Promise; currentRetries(): number; on(event: SyncEvent, callback: SyncCallback, collectionPath?: string): SyncInterface; off(event: SyncEvent, callback: SyncCallback): SyncInterface; } /** * Interface for SyncEvent * * @public */ export interface SyncEventInterface { onSyncEvent(remoteURL: string, event: SyncEvent, callback: SyncCallback): SyncInterface; onSyncEvent(sync: SyncInterface, event: SyncEvent, callback: SyncCallback): SyncInterface; /** * @internal */ onSyncEvent(remoteURLorSync: string | SyncInterface, event: SyncEvent, callback: SyncCallback): SyncInterface; offSyncEvent(remoteURL: string, event: SyncEvent, callback: SyncCallback): void; offSyncEvent(sync: SyncInterface, event: SyncEvent, callback: SyncCallback): void; /** * @internal */ offSyncEvent(remoteURLorSync: string | SyncInterface, event: SyncEvent, callback: SyncCallback): void; } //# sourceMappingURL=types_sync.d.ts.map