1 | declare module "net" {
|
2 | import * as stream from "stream";
|
3 | import * as events from "events";
|
4 | import * as dns from "dns";
|
5 |
|
6 | type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void;
|
7 |
|
8 | interface AddressInfo {
|
9 | address: string;
|
10 | family: string;
|
11 | port: number;
|
12 | }
|
13 |
|
14 | interface SocketConstructorOpts {
|
15 | fd?: number;
|
16 | allowHalfOpen?: boolean;
|
17 | readable?: boolean;
|
18 | writable?: boolean;
|
19 | }
|
20 |
|
21 | interface TcpSocketConnectOpts {
|
22 | port: number;
|
23 | host?: string;
|
24 | localAddress?: string;
|
25 | localPort?: number;
|
26 | hints?: number;
|
27 | family?: number;
|
28 | lookup?: LookupFunction;
|
29 | }
|
30 |
|
31 | interface IpcSocketConnectOpts {
|
32 | path: string;
|
33 | }
|
34 |
|
35 | type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts;
|
36 |
|
37 | class Socket extends stream.Duplex {
|
38 | constructor(options?: SocketConstructorOpts);
|
39 |
|
40 | // Extended base methods
|
41 | write(buffer: Buffer | Uint8Array | string, cb?: (err?: Error) => void): boolean;
|
42 | write(str: Buffer | Uint8Array | string, encoding?: string, cb?: (err?: Error) => void): boolean;
|
43 |
|
44 | connect(options: SocketConnectOpts, connectionListener?: () => void): this;
|
45 | connect(port: number, host: string, connectionListener?: () => void): this;
|
46 | connect(port: number, connectionListener?: () => void): this;
|
47 | connect(path: string, connectionListener?: () => void): this;
|
48 |
|
49 | setEncoding(encoding?: string): this;
|
50 | pause(): this;
|
51 | resume(): this;
|
52 | setTimeout(timeout: number, callback?: () => void): this;
|
53 | setNoDelay(noDelay?: boolean): this;
|
54 | setKeepAlive(enable?: boolean, initialDelay?: number): this;
|
55 | address(): AddressInfo | string;
|
56 | unref(): void;
|
57 | ref(): void;
|
58 |
|
59 | readonly bufferSize: number;
|
60 | readonly bytesRead: number;
|
61 | readonly bytesWritten: number;
|
62 | readonly connecting: boolean;
|
63 | readonly destroyed: boolean;
|
64 | readonly localAddress: string;
|
65 | readonly localPort: number;
|
66 | readonly remoteAddress?: string;
|
67 | readonly remoteFamily?: string;
|
68 | readonly remotePort?: number;
|
69 |
|
70 | // Extended base methods
|
71 | end(cb?: () => void): void;
|
72 | end(buffer: Buffer | Uint8Array | string, cb?: () => void): void;
|
73 | end(str: Buffer | Uint8Array | string, encoding?: string, cb?: () => void): void;
|
74 |
|
75 | /**
|
76 | * events.EventEmitter
|
77 | * 1. close
|
78 | * 2. connect
|
79 | * 3. data
|
80 | * 4. drain
|
81 | * 5. end
|
82 | * 6. error
|
83 | * 7. lookup
|
84 | * 8. timeout
|
85 | */
|
86 | addListener(event: string, listener: (...args: any[]) => void): this;
|
87 | addListener(event: "close", listener: (had_error: boolean) => void): this;
|
88 | addListener(event: "connect", listener: () => void): this;
|
89 | addListener(event: "data", listener: (data: Buffer) => void): this;
|
90 | addListener(event: "drain", listener: () => void): this;
|
91 | addListener(event: "end", listener: () => void): this;
|
92 | addListener(event: "error", listener: (err: Error) => void): this;
|
93 | addListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
|
94 | addListener(event: "timeout", listener: () => void): this;
|
95 |
|
96 | emit(event: string | symbol, ...args: any[]): boolean;
|
97 | emit(event: "close", had_error: boolean): boolean;
|
98 | emit(event: "connect"): boolean;
|
99 | emit(event: "data", data: Buffer): boolean;
|
100 | emit(event: "drain"): boolean;
|
101 | emit(event: "end"): boolean;
|
102 | emit(event: "error", err: Error): boolean;
|
103 | emit(event: "lookup", err: Error, address: string, family: string | number, host: string): boolean;
|
104 | emit(event: "timeout"): boolean;
|
105 |
|
106 | on(event: string, listener: (...args: any[]) => void): this;
|
107 | on(event: "close", listener: (had_error: boolean) => void): this;
|
108 | on(event: "connect", listener: () => void): this;
|
109 | on(event: "data", listener: (data: Buffer) => void): this;
|
110 | on(event: "drain", listener: () => void): this;
|
111 | on(event: "end", listener: () => void): this;
|
112 | on(event: "error", listener: (err: Error) => void): this;
|
113 | on(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
|
114 | on(event: "timeout", listener: () => void): this;
|
115 |
|
116 | once(event: string, listener: (...args: any[]) => void): this;
|
117 | once(event: "close", listener: (had_error: boolean) => void): this;
|
118 | once(event: "connect", listener: () => void): this;
|
119 | once(event: "data", listener: (data: Buffer) => void): this;
|
120 | once(event: "drain", listener: () => void): this;
|
121 | once(event: "end", listener: () => void): this;
|
122 | once(event: "error", listener: (err: Error) => void): this;
|
123 | once(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
|
124 | once(event: "timeout", listener: () => void): this;
|
125 |
|
126 | prependListener(event: string, listener: (...args: any[]) => void): this;
|
127 | prependListener(event: "close", listener: (had_error: boolean) => void): this;
|
128 | prependListener(event: "connect", listener: () => void): this;
|
129 | prependListener(event: "data", listener: (data: Buffer) => void): this;
|
130 | prependListener(event: "drain", listener: () => void): this;
|
131 | prependListener(event: "end", listener: () => void): this;
|
132 | prependListener(event: "error", listener: (err: Error) => void): this;
|
133 | prependListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
|
134 | prependListener(event: "timeout", listener: () => void): this;
|
135 |
|
136 | prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
137 | prependOnceListener(event: "close", listener: (had_error: boolean) => void): this;
|
138 | prependOnceListener(event: "connect", listener: () => void): this;
|
139 | prependOnceListener(event: "data", listener: (data: Buffer) => void): this;
|
140 | prependOnceListener(event: "drain", listener: () => void): this;
|
141 | prependOnceListener(event: "end", listener: () => void): this;
|
142 | prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
143 | prependOnceListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this;
|
144 | prependOnceListener(event: "timeout", listener: () => void): this;
|
145 | }
|
146 |
|
147 | interface ListenOptions {
|
148 | port?: number;
|
149 | host?: string;
|
150 | backlog?: number;
|
151 | path?: string;
|
152 | exclusive?: boolean;
|
153 | readableAll?: boolean;
|
154 | writableAll?: boolean;
|
155 | |
156 |
|
157 |
|
158 | ipv6Only?: boolean;
|
159 | }
|
160 |
|
161 |
|
162 | class Server extends events.EventEmitter {
|
163 | constructor(connectionListener?: (socket: Socket) => void);
|
164 | constructor(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void);
|
165 |
|
166 | listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this;
|
167 | listen(port?: number, hostname?: string, listeningListener?: () => void): this;
|
168 | listen(port?: number, backlog?: number, listeningListener?: () => void): this;
|
169 | listen(port?: number, listeningListener?: () => void): this;
|
170 | listen(path: string, backlog?: number, listeningListener?: () => void): this;
|
171 | listen(path: string, listeningListener?: () => void): this;
|
172 | listen(options: ListenOptions, listeningListener?: () => void): this;
|
173 | listen(handle: any, backlog?: number, listeningListener?: () => void): this;
|
174 | listen(handle: any, listeningListener?: () => void): this;
|
175 | close(callback?: (err?: Error) => void): this;
|
176 | address(): AddressInfo | string | null;
|
177 | getConnections(cb: (error: Error | null, count: number) => void): void;
|
178 | ref(): this;
|
179 | unref(): this;
|
180 | maxConnections: number;
|
181 | connections: number;
|
182 | listening: boolean;
|
183 |
|
184 | /**
|
185 | * events.EventEmitter
|
186 | * 1. close
|
187 | * 2. connection
|
188 | * 3. error
|
189 | * 4. listening
|
190 | */
|
191 | addListener(event: string, listener: (...args: any[]) => void): this;
|
192 | addListener(event: "close", listener: () => void): this;
|
193 | addListener(event: "connection", listener: (socket: Socket) => void): this;
|
194 | addListener(event: "error", listener: (err: Error) => void): this;
|
195 | addListener(event: "listening", listener: () => void): this;
|
196 |
|
197 | emit(event: string | symbol, ...args: any[]): boolean;
|
198 | emit(event: "close"): boolean;
|
199 | emit(event: "connection", socket: Socket): boolean;
|
200 | emit(event: "error", err: Error): boolean;
|
201 | emit(event: "listening"): boolean;
|
202 |
|
203 | on(event: string, listener: (...args: any[]) => void): this;
|
204 | on(event: "close", listener: () => void): this;
|
205 | on(event: "connection", listener: (socket: Socket) => void): this;
|
206 | on(event: "error", listener: (err: Error) => void): this;
|
207 | on(event: "listening", listener: () => void): this;
|
208 |
|
209 | once(event: string, listener: (...args: any[]) => void): this;
|
210 | once(event: "close", listener: () => void): this;
|
211 | once(event: "connection", listener: (socket: Socket) => void): this;
|
212 | once(event: "error", listener: (err: Error) => void): this;
|
213 | once(event: "listening", listener: () => void): this;
|
214 |
|
215 | prependListener(event: string, listener: (...args: any[]) => void): this;
|
216 | prependListener(event: "close", listener: () => void): this;
|
217 | prependListener(event: "connection", listener: (socket: Socket) => void): this;
|
218 | prependListener(event: "error", listener: (err: Error) => void): this;
|
219 | prependListener(event: "listening", listener: () => void): this;
|
220 |
|
221 | prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
222 | prependOnceListener(event: "close", listener: () => void): this;
|
223 | prependOnceListener(event: "connection", listener: (socket: Socket) => void): this;
|
224 | prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
225 | prependOnceListener(event: "listening", listener: () => void): this;
|
226 | }
|
227 |
|
228 | interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts {
|
229 | timeout?: number;
|
230 | }
|
231 |
|
232 | interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts {
|
233 | timeout?: number;
|
234 | }
|
235 |
|
236 | type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts;
|
237 |
|
238 | function createServer(connectionListener?: (socket: Socket) => void): Server;
|
239 | function createServer(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void): Server;
|
240 | function connect(options: NetConnectOpts, connectionListener?: () => void): Socket;
|
241 | function connect(port: number, host?: string, connectionListener?: () => void): Socket;
|
242 | function connect(path: string, connectionListener?: () => void): Socket;
|
243 | function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket;
|
244 | function createConnection(port: number, host?: string, connectionListener?: () => void): Socket;
|
245 | function createConnection(path: string, connectionListener?: () => void): Socket;
|
246 | function isIP(input: string): number;
|
247 | function isIPv4(input: string): boolean;
|
248 | function isIPv6(input: string): boolean;
|
249 | }
|