///
import { EventEmitter } from 'events';
import { Duplex } from '../duplex';
import { Debug } from '@jacobbubu/debug';
import { ScuttlebuttOptions, Sources, Update, StreamOptions } from '../interfaces';
declare class AsyncScuttlebutt extends EventEmitter {
private _sign?;
private _verify?;
private _clones;
private _lock;
streams: number;
sources: Sources;
id: string;
accept: any;
readonly logger: Debug;
constructor(opts?: ScuttlebuttOptions | string);
isAccepted(peerAccept: any, update: Update): boolean;
applyUpdate(update: Update): Promise;
history(peerSources: Sources, accept?: any): Promise;
lockForHistory(cb: () => Promise): Promise;
_update(update: Update): Promise;
localUpdate(trx: any): Promise;
createStream(opts?: StreamOptions): Duplex;
createWriteStream(opts?: StreamOptions): Duplex;
createSinkStream(opts?: StreamOptions): Duplex;
createReadStream(opts?: StreamOptions): Duplex;
createSourceStream(opts?: StreamOptions): Duplex;
dispose(): void;
setId(id: string | null): this;
get clones(): number;
clone(): AsyncScuttlebutt;
}
export { AsyncScuttlebutt };