// Type definitions for libp2p 0.22.0 // Project: https://github.com/libp2p/js-libp2p // Definitions by: Jaco Greeff // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// /// /// /// /// /// /// /// /// /// /// declare namespace LibP2p { export type OptionsConfig = { contentRouting?: {}, dht?: { kBucketSize?: number }, peerDiscovery?: { autoDial?: boolean, enabled?: boolean, bootstrap?: { interval?: number enabled?: boolean list?: Multiaddr.Multiaddr[] }, mdns?: { interval?: number enabled?: boolean }, webRTCStar?: { interval?: number enabled?: boolean }, websocketStar?: { enabled?: boolean } }, peerRouting?: {}, pubsub?: { enabled?: boolean, emitSelf?: boolean, signMessages?: boolean, strictSigning?: boolean }, relay?: { enabled?: boolean, hop?: { enabled?: boolean, active?: boolean } } }; export type OptionsModules = { connEncryption?: Array, streamMuxer: Array, dht?: typeof LibP2pKadDht, peerDiscovery: Array, transport: LibP2pTransport[] }; export type Options = { config: OptionsConfig, modules: OptionsModules, peerBook?: PeerBook, peerInfo: PeerInfo, }; export type Events = 'peer:connect' | 'peer:disconnect' | 'peer:discovery' | 'start' | 'stop'; } declare class LibP2p { readonly _dht: LibP2pKadDht; constructor(options: LibP2p.Options); readonly peerInfo: PeerInfo; readonly peerBook: PeerBook; dial(peerInfo: PeerInfo): Promise; dialProtocol(peerInfo: PeerInfo | Multiaddr.Multiaddr, protocol: string): Promise; hangUp(peerInfo: PeerInfo): Promise; handle(protocol: string, handler: (protocol: string, conn: LibP2pConnection) => any, matcher?: (protocol: string, requestedProtocol: string, cb: (error: Error | null, accept: boolean) => void) => any): void; unhandle(protocol: string): void; isStarted(): boolean; on(event: LibP2p.Events, cb: (event: any) => any): this; once(event: LibP2p.Events, cb: (event: any) => any): this; removeListener(event: LibP2p.Events, cb: (event: any) => any): this; ping(peerInfo: PeerInfo): Promise; start(): Promise; stop(): Promise; } declare module 'libp2p' { export default LibP2p; }