import { ICoordinator, DatabaseAdapter, SyncView, DataChangeSet, SyncViewItem, SyncQueryOptions, SyncQueryResult } from './types';
export declare class Coordinator implements ICoordinator {
    syncView: SyncView;
    adapter: DatabaseAdapter;
    private readonly TOMBSTONE_STORE;
    private readonly TOMBSTONE_RETENTION;
    private initialized;
    constructor(adapter: DatabaseAdapter);
    initSync(): Promise<void>;
    private ensureInitialized;
    disposeSync(): Promise<void>;
    getCurrentView(): Promise<SyncView>;
    readAll<T extends {
        id: string;
    }>(storeName: string): Promise<T[]>;
    readBulk<T extends {
        id: string;
    }>(storeName: string, ids: string[]): Promise<T[]>;
    putBulk<T extends {
        id: string;
    }>(storeName: string, items: T[]): Promise<T[]>;
    extractChanges<T extends {
        id: string;
    }>(items: SyncViewItem[]): Promise<DataChangeSet>;
    applyChanges<T extends {
        id: string;
    }>(changeSet: DataChangeSet): Promise<void>;
    deleteBulk(storeName: string, ids: string[]): Promise<void>;
    getAdapter(): Promise<DatabaseAdapter>;
    rebuildSyncView(): Promise<void>;
    query<T extends {
        id: string;
    }>(storeName: string, options?: SyncQueryOptions): Promise<SyncQueryResult<T>>;
    private clearOldTombstones;
    private addTombstones;
}
