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[]>;
}
