syncflow-engine
Version:
A flexible and robust data synchronization library for JavaScript applications
33 lines (32 loc) • 1.41 kB
TypeScript
import { SyncStatus, SyncConfig, SyncEventType, SyncEventCallback, Entity, EntityType, SyncOperation } from "../types";
import { ISyncStore } from "./SyncStore";
import { ISyncEngine } from "../types/index";
export declare class SyncEngine implements ISyncEngine {
private readonly store;
private readonly config;
private status;
private readonly listeners;
private readonly entityListeners;
private syncInterval;
private readonly entities;
private isOffline;
constructor(store: ISyncStore, config?: SyncConfig, entityTypes?: EntityType[]);
init(): Promise<void>;
start(): Promise<void>;
stop(): Promise<void>;
sync(): Promise<void>;
private cleanupCompletedOperations;
removePendingOperations(): Promise<SyncOperation[]>;
getStatus(): SyncStatus;
addListener(event: SyncEventType, callback: SyncEventCallback): void;
removeListener(event: SyncEventType, callback: SyncEventCallback): void;
private setStatus;
private emit;
getEntities(entityType: EntityType): Promise<Entity[]>;
getEntityTypes(): EntityType[];
addEntityListener(entityType: EntityType, callback: (entities: Entity[]) => void): void;
removeEntityListener(entityType: EntityType, callback: (entities: Entity[]) => void): void;
private processOperation;
private handleOperationError;
getPendingOperations(): Promise<SyncOperation[]>;
}