///
import { MaybeModel } from './actions';
export declare type ChangeInfo = PouchDB.Replication.SyncResult;
export declare type CompleteInfo = PouchDB.Replication.SyncResultComplete;
export declare type EventType = 'change' | 'active' | 'complete' | 'paused' | 'denied' | 'error';
export declare type Listener = () => void;
/**
* ReplicationWrapper wraps one or more PouchDB.Replication.Syncs and can be used
* to lazily add more sync results to the middleware after the fact
* (e.g. starting replication after the user logged in)
*/
export declare class ReplicationWrapper {
private wrapped;
private listeners;
constructor();
on(event: 'change', listener: (info: ChangeInfo) => void): this;
on(event: 'active', listener: () => void): this;
on(event: 'complete', listener: (info: CompleteInfo) => void): this;
on(event: 'paused', listener: (err: {}) => void): this;
on(event: 'denied', listener: (err: {}) => void): this;
on(event: 'error', listener: (err: {}) => void): this;
cancel(): void;
add(sync: PouchDB.Replication.Sync): this;
}