// 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 = { dht?: { kBucketSize?: number }, EXPERIMENTAL?: { pubsub?: boolean, dht?: boolean }, peerDiscovery?: { mdns?: { interval?: number enabled?: boolean }, webrtcStar?: { interval?: number enabled?: boolean } }, peerRouting?: {}, contentRouting?: {}, 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; dial(peerInfo: PeerInfo, cb: (error: Error | null) => any): void; dialProtocol(peerInfo: PeerInfo | Multiaddr.Multiaddr, protocol: string, cb: (error: Error | null, conn?: LibP2pConnection) => any): void; handle(protocol: string, handler: (protocol: string, conn: LibP2pConnection) => any, matcher?: (protocol: string, requestedProtocol: string, cb: (error: Error | null, accept: boolean) => void) => any): void; isStarted(): boolean; on(event: LibP2p.Events, cb: (event: any) => any): void; ping(peerInfo: PeerInfo, callback: (error: Error | null, ping: any) => void): void; start(cb: (error: Error | null) => any): void; stop(cb: (error: Error | null) => any): void; } declare module 'libp2p' { export default LibP2p; }