///
import { EventEmitter } from 'events';
import { AnyAction, Dispatch } from 'redux';
import { Repo } from './Repo';
import { Message } from './Message';
/**
* A `Connection` keeps one local document synchronized with one peer's replica of the same
* document. It uses `Synchronizer` for the synchronization logic, and integrates it with our
* networking stack and with the Redux store.
*/
export declare class Connection extends EventEmitter {
private Synchronizer;
private peerSocket;
private dispatch;
private repo;
constructor(repo: Repo, peerSocket: WebSocket, dispatch: Dispatch);
receive: ({ data }: any) => Promise;
send: (message: Message) => void;
close: () => void;
}