///
import { EventEmitter } from "events";
import PeerId from "peer-id";
import { Discv5, ENRInput } from "../service";
import { IDiscv5Config } from "../config";
export interface IDiscv5DiscoveryInputOptions extends Partial {
/**
* Local ENR associated with the local libp2p peer id
*/
enr: ENRInput;
/**
* The bind multiaddr for the discv5 UDP server
*
* NOTE: This MUST be a udp multiaddr
*/
bindAddr: string;
/**
* Remote ENRs used to bootstrap the network
*/
bootEnrs: ENRInput[];
/**
* Enable/disable discv5
* Note: this option is handled within libp2p, not within discv5
*/
enabled: boolean;
/**
* Lookup interval
*
* Declared in milliseconds
*/
lookupInterval?: number;
}
export interface IDiscv5DiscoveryOptions extends IDiscv5DiscoveryInputOptions {
peerId: PeerId;
}
/**
* Discv5Discovery is a libp2p peer-discovery compatable module
*/
export declare class Discv5Discovery extends EventEmitter {
static tag: string;
discv5: Discv5;
private started;
private lookupInterval;
constructor(options: IDiscv5DiscoveryOptions);
start(): Promise;
stop(): Promise;
findPeers(): Promise;
addEnr(enr: ENRInput): void;
handleEnr: (enr: ENRInput) => Promise;
}