This repository has been archived by the owner on Dec 24, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
index.d.ts
102 lines (92 loc) · 3.17 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// Type definitions for libp2p 0.22.0
// Project: https://github.com/libp2p/js-libp2p
// Definitions by: Jaco Greeff <https://github.com/jacogr>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="libp2p-bootstrap"/>
/// <reference types="interface-connection"/>
/// <reference types="interface-transport"/>
/// <reference types="libp2p-kad-dht"/>
/// <reference types="libp2p-mdns"/>
/// <reference types="libp2p-mplex"/>
/// <reference types="libp2p-secio"/>
/// <reference types="libp2p-spdy"/>
/// <reference types="peer-book"/>
/// <reference types="peer-info"/>
/// <reference types="pull-mplex"/>
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<LibP2pSecio>,
streamMuxer: Array<LibP2pMplex | LibP2pSpdy | PullMplex>,
dht?: typeof LibP2pKadDht,
peerDiscovery: Array<typeof LibP2pBootstrap>,
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<LibP2pConnection>;
dialProtocol(peerInfo: PeerInfo | Multiaddr.Multiaddr, protocol: string): Promise<LibP2pConnection>;
hangUp(peerInfo: PeerInfo): Promise<void>;
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<void>;
start(): Promise<void>;
stop(): Promise<void>;
}
declare module 'libp2p' {
export default LibP2p;
}