UNPKG

26.1 kBTypeScriptView Raw
1declare module 'stream' {
2 import EventEmitter = require('events');
3
4 class internal extends EventEmitter {
5 pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean | undefined; }): T;
6 }
7
8 namespace internal {
9 class Stream extends internal {
10 constructor(opts?: ReadableOptions);
11 }
12
13 interface ReadableOptions {
14 highWaterMark?: number | undefined;
15 encoding?: BufferEncoding | undefined;
16 objectMode?: boolean | undefined;
17 read?(this: Readable, size: number): void;
18 destroy?(this: Readable, error: Error | null, callback: (error: Error | null) => void): void;
19 autoDestroy?: boolean | undefined;
20 }
21
22 class Readable extends Stream implements NodeJS.ReadableStream {
23 /**
24 * A utility method for creating Readable Streams out of iterators.
25 */
26 static from(iterable: Iterable<any> | AsyncIterable<any>, options?: ReadableOptions): Readable;
27
28 readable: boolean;
29 readonly readableEncoding: BufferEncoding | null;
30 readonly readableEnded: boolean;
31 readonly readableFlowing: boolean | null;
32 readonly readableHighWaterMark: number;
33 readonly readableLength: number;
34 readonly readableObjectMode: boolean;
35 destroyed: boolean;
36 constructor(opts?: ReadableOptions);
37 _read(size: number): void;
38 read(size?: number): any;
39 setEncoding(encoding: BufferEncoding): this;
40 pause(): this;
41 resume(): this;
42 isPaused(): boolean;
43 unpipe(destination?: NodeJS.WritableStream): this;
44 unshift(chunk: any, encoding?: BufferEncoding): void;
45 wrap(oldStream: NodeJS.ReadableStream): this;
46 push(chunk: any, encoding?: BufferEncoding): boolean;
47 _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
48 destroy(error?: Error): this;
49
50 /**
51 * Event emitter
52 * The defined events on documents including:
53 * 1. close
54 * 2. data
55 * 3. end
56 * 4. error
57 * 5. pause
58 * 6. readable
59 * 7. resume
60 */
61 addListener(event: "close", listener: () => void): this;
62 addListener(event: "data", listener: (chunk: any) => void): this;
63 addListener(event: "end", listener: () => void): this;
64 addListener(event: "error", listener: (err: Error) => void): this;
65 addListener(event: "pause", listener: () => void): this;
66 addListener(event: "readable", listener: () => void): this;
67 addListener(event: "resume", listener: () => void): this;
68 addListener(event: string | symbol, listener: (...args: any[]) => void): this;
69
70 emit(event: "close"): boolean;
71 emit(event: "data", chunk: any): boolean;
72 emit(event: "end"): boolean;
73 emit(event: "error", err: Error): boolean;
74 emit(event: "pause"): boolean;
75 emit(event: "readable"): boolean;
76 emit(event: "resume"): boolean;
77 emit(event: string | symbol, ...args: any[]): boolean;
78
79 on(event: "close", listener: () => void): this;
80 on(event: "data", listener: (chunk: any) => void): this;
81 on(event: "end", listener: () => void): this;
82 on(event: "error", listener: (err: Error) => void): this;
83 on(event: "pause", listener: () => void): this;
84 on(event: "readable", listener: () => void): this;
85 on(event: "resume", listener: () => void): this;
86 on(event: string | symbol, listener: (...args: any[]) => void): this;
87
88 once(event: "close", listener: () => void): this;
89 once(event: "data", listener: (chunk: any) => void): this;
90 once(event: "end", listener: () => void): this;
91 once(event: "error", listener: (err: Error) => void): this;
92 once(event: "pause", listener: () => void): this;
93 once(event: "readable", listener: () => void): this;
94 once(event: "resume", listener: () => void): this;
95 once(event: string | symbol, listener: (...args: any[]) => void): this;
96
97 prependListener(event: "close", listener: () => void): this;
98 prependListener(event: "data", listener: (chunk: any) => void): this;
99 prependListener(event: "end", listener: () => void): this;
100 prependListener(event: "error", listener: (err: Error) => void): this;
101 prependListener(event: "pause", listener: () => void): this;
102 prependListener(event: "readable", listener: () => void): this;
103 prependListener(event: "resume", listener: () => void): this;
104 prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
105
106 prependOnceListener(event: "close", listener: () => void): this;
107 prependOnceListener(event: "data", listener: (chunk: any) => void): this;
108 prependOnceListener(event: "end", listener: () => void): this;
109 prependOnceListener(event: "error", listener: (err: Error) => void): this;
110 prependOnceListener(event: "pause", listener: () => void): this;
111 prependOnceListener(event: "readable", listener: () => void): this;
112 prependOnceListener(event: "resume", listener: () => void): this;
113 prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
114
115 removeListener(event: "close", listener: () => void): this;
116 removeListener(event: "data", listener: (chunk: any) => void): this;
117 removeListener(event: "end", listener: () => void): this;
118 removeListener(event: "error", listener: (err: Error) => void): this;
119 removeListener(event: "pause", listener: () => void): this;
120 removeListener(event: "readable", listener: () => void): this;
121 removeListener(event: "resume", listener: () => void): this;
122 removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
123
124 [Symbol.asyncIterator](): AsyncIterableIterator<any>;
125 }
126
127 interface WritableOptions {
128 highWaterMark?: number | undefined;
129 decodeStrings?: boolean | undefined;
130 defaultEncoding?: BufferEncoding | undefined;
131 objectMode?: boolean | undefined;
132 emitClose?: boolean | undefined;
133 write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
134 writev?(this: Writable, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void;
135 destroy?(this: Writable, error: Error | null, callback: (error: Error | null) => void): void;
136 final?(this: Writable, callback: (error?: Error | null) => void): void;
137 autoDestroy?: boolean | undefined;
138 }
139
140 class Writable extends Stream implements NodeJS.WritableStream {
141 readonly writable: boolean;
142 readonly writableEnded: boolean;
143 readonly writableFinished: boolean;
144 readonly writableHighWaterMark: number;
145 readonly writableLength: number;
146 readonly writableObjectMode: boolean;
147 readonly writableCorked: number;
148 destroyed: boolean;
149 constructor(opts?: WritableOptions);
150 _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
151 _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void;
152 _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
153 _final(callback: (error?: Error | null) => void): void;
154 write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean;
155 write(chunk: any, encoding: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
156 setDefaultEncoding(encoding: BufferEncoding): this;
157 end(cb?: () => void): this;
158 end(chunk: any, cb?: () => void): this;
159 end(chunk: any, encoding: BufferEncoding, cb?: () => void): this;
160 cork(): void;
161 uncork(): void;
162 destroy(error?: Error): this;
163
164 /**
165 * Event emitter
166 * The defined events on documents including:
167 * 1. close
168 * 2. drain
169 * 3. error
170 * 4. finish
171 * 5. pipe
172 * 6. unpipe
173 */
174 addListener(event: "close", listener: () => void): this;
175 addListener(event: "drain", listener: () => void): this;
176 addListener(event: "error", listener: (err: Error) => void): this;
177 addListener(event: "finish", listener: () => void): this;
178 addListener(event: "pipe", listener: (src: Readable) => void): this;
179 addListener(event: "unpipe", listener: (src: Readable) => void): this;
180 addListener(event: string | symbol, listener: (...args: any[]) => void): this;
181
182 emit(event: "close"): boolean;
183 emit(event: "drain"): boolean;
184 emit(event: "error", err: Error): boolean;
185 emit(event: "finish"): boolean;
186 emit(event: "pipe", src: Readable): boolean;
187 emit(event: "unpipe", src: Readable): boolean;
188 emit(event: string | symbol, ...args: any[]): boolean;
189
190 on(event: "close", listener: () => void): this;
191 on(event: "drain", listener: () => void): this;
192 on(event: "error", listener: (err: Error) => void): this;
193 on(event: "finish", listener: () => void): this;
194 on(event: "pipe", listener: (src: Readable) => void): this;
195 on(event: "unpipe", listener: (src: Readable) => void): this;
196 on(event: string | symbol, listener: (...args: any[]) => void): this;
197
198 once(event: "close", listener: () => void): this;
199 once(event: "drain", listener: () => void): this;
200 once(event: "error", listener: (err: Error) => void): this;
201 once(event: "finish", listener: () => void): this;
202 once(event: "pipe", listener: (src: Readable) => void): this;
203 once(event: "unpipe", listener: (src: Readable) => void): this;
204 once(event: string | symbol, listener: (...args: any[]) => void): this;
205
206 prependListener(event: "close", listener: () => void): this;
207 prependListener(event: "drain", listener: () => void): this;
208 prependListener(event: "error", listener: (err: Error) => void): this;
209 prependListener(event: "finish", listener: () => void): this;
210 prependListener(event: "pipe", listener: (src: Readable) => void): this;
211 prependListener(event: "unpipe", listener: (src: Readable) => void): this;
212 prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
213
214 prependOnceListener(event: "close", listener: () => void): this;
215 prependOnceListener(event: "drain", listener: () => void): this;
216 prependOnceListener(event: "error", listener: (err: Error) => void): this;
217 prependOnceListener(event: "finish", listener: () => void): this;
218 prependOnceListener(event: "pipe", listener: (src: Readable) => void): this;
219 prependOnceListener(event: "unpipe", listener: (src: Readable) => void): this;
220 prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
221
222 removeListener(event: "close", listener: () => void): this;
223 removeListener(event: "drain", listener: () => void): this;
224 removeListener(event: "error", listener: (err: Error) => void): this;
225 removeListener(event: "finish", listener: () => void): this;
226 removeListener(event: "pipe", listener: (src: Readable) => void): this;
227 removeListener(event: "unpipe", listener: (src: Readable) => void): this;
228 removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
229 }
230
231 interface DuplexOptions extends ReadableOptions, WritableOptions {
232 allowHalfOpen?: boolean | undefined;
233 readableObjectMode?: boolean | undefined;
234 writableObjectMode?: boolean | undefined;
235 readableHighWaterMark?: number | undefined;
236 writableHighWaterMark?: number | undefined;
237 writableCorked?: number | undefined;
238 read?(this: Duplex, size: number): void;
239 write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
240 writev?(this: Duplex, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void;
241 final?(this: Duplex, callback: (error?: Error | null) => void): void;
242 destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void;
243 }
244
245 // Note: Duplex extends both Readable and Writable.
246 class Duplex extends Readable implements Writable {
247 readonly writable: boolean;
248 readonly writableEnded: boolean;
249 readonly writableFinished: boolean;
250 readonly writableHighWaterMark: number;
251 readonly writableLength: number;
252 readonly writableObjectMode: boolean;
253 readonly writableCorked: number;
254 allowHalfOpen: boolean;
255 constructor(opts?: DuplexOptions);
256 _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
257 _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void;
258 _destroy(error: Error | null, callback: (error: Error | null) => void): void;
259 _final(callback: (error?: Error | null) => void): void;
260 write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean;
261 write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean;
262 setDefaultEncoding(encoding: BufferEncoding): this;
263 end(cb?: () => void): this;
264 end(chunk: any, cb?: () => void): this;
265 end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this;
266 cork(): void;
267 uncork(): void;
268 /**
269 * Event emitter
270 * The defined events on documents including:
271 * 1. close
272 * 2. data
273 * 3. drain
274 * 4. end
275 * 5. error
276 * 6. finish
277 * 7. pause
278 * 8. pipe
279 * 9. readable
280 * 10. resume
281 * 11. unpipe
282 */
283 addListener(event: 'close', listener: () => void): this;
284 addListener(event: 'data', listener: (chunk: any) => void): this;
285 addListener(event: 'drain', listener: () => void): this;
286 addListener(event: 'end', listener: () => void): this;
287 addListener(event: 'error', listener: (err: Error) => void): this;
288 addListener(event: 'finish', listener: () => void): this;
289 addListener(event: 'pause', listener: () => void): this;
290 addListener(event: 'pipe', listener: (src: Readable) => void): this;
291 addListener(event: 'readable', listener: () => void): this;
292 addListener(event: 'resume', listener: () => void): this;
293 addListener(event: 'unpipe', listener: (src: Readable) => void): this;
294 addListener(event: string | symbol, listener: (...args: any[]) => void): this;
295 emit(event: 'close'): boolean;
296 emit(event: 'data', chunk: any): boolean;
297 emit(event: 'drain'): boolean;
298 emit(event: 'end'): boolean;
299 emit(event: 'error', err: Error): boolean;
300 emit(event: 'finish'): boolean;
301 emit(event: 'pause'): boolean;
302 emit(event: 'pipe', src: Readable): boolean;
303 emit(event: 'readable'): boolean;
304 emit(event: 'resume'): boolean;
305 emit(event: 'unpipe', src: Readable): boolean;
306 emit(event: string | symbol, ...args: any[]): boolean;
307 on(event: 'close', listener: () => void): this;
308 on(event: 'data', listener: (chunk: any) => void): this;
309 on(event: 'drain', listener: () => void): this;
310 on(event: 'end', listener: () => void): this;
311 on(event: 'error', listener: (err: Error) => void): this;
312 on(event: 'finish', listener: () => void): this;
313 on(event: 'pause', listener: () => void): this;
314 on(event: 'pipe', listener: (src: Readable) => void): this;
315 on(event: 'readable', listener: () => void): this;
316 on(event: 'resume', listener: () => void): this;
317 on(event: 'unpipe', listener: (src: Readable) => void): this;
318 on(event: string | symbol, listener: (...args: any[]) => void): this;
319 once(event: 'close', listener: () => void): this;
320 once(event: 'data', listener: (chunk: any) => void): this;
321 once(event: 'drain', listener: () => void): this;
322 once(event: 'end', listener: () => void): this;
323 once(event: 'error', listener: (err: Error) => void): this;
324 once(event: 'finish', listener: () => void): this;
325 once(event: 'pause', listener: () => void): this;
326 once(event: 'pipe', listener: (src: Readable) => void): this;
327 once(event: 'readable', listener: () => void): this;
328 once(event: 'resume', listener: () => void): this;
329 once(event: 'unpipe', listener: (src: Readable) => void): this;
330 once(event: string | symbol, listener: (...args: any[]) => void): this;
331 prependListener(event: 'close', listener: () => void): this;
332 prependListener(event: 'data', listener: (chunk: any) => void): this;
333 prependListener(event: 'drain', listener: () => void): this;
334 prependListener(event: 'end', listener: () => void): this;
335 prependListener(event: 'error', listener: (err: Error) => void): this;
336 prependListener(event: 'finish', listener: () => void): this;
337 prependListener(event: 'pause', listener: () => void): this;
338 prependListener(event: 'pipe', listener: (src: Readable) => void): this;
339 prependListener(event: 'readable', listener: () => void): this;
340 prependListener(event: 'resume', listener: () => void): this;
341 prependListener(event: 'unpipe', listener: (src: Readable) => void): this;
342 prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
343 prependOnceListener(event: 'close', listener: () => void): this;
344 prependOnceListener(event: 'data', listener: (chunk: any) => void): this;
345 prependOnceListener(event: 'drain', listener: () => void): this;
346 prependOnceListener(event: 'end', listener: () => void): this;
347 prependOnceListener(event: 'error', listener: (err: Error) => void): this;
348 prependOnceListener(event: 'finish', listener: () => void): this;
349 prependOnceListener(event: 'pause', listener: () => void): this;
350 prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this;
351 prependOnceListener(event: 'readable', listener: () => void): this;
352 prependOnceListener(event: 'resume', listener: () => void): this;
353 prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this;
354 prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
355 removeListener(event: 'close', listener: () => void): this;
356 removeListener(event: 'data', listener: (chunk: any) => void): this;
357 removeListener(event: 'drain', listener: () => void): this;
358 removeListener(event: 'end', listener: () => void): this;
359 removeListener(event: 'error', listener: (err: Error) => void): this;
360 removeListener(event: 'finish', listener: () => void): this;
361 removeListener(event: 'pause', listener: () => void): this;
362 removeListener(event: 'pipe', listener: (src: Readable) => void): this;
363 removeListener(event: 'readable', listener: () => void): this;
364 removeListener(event: 'resume', listener: () => void): this;
365 removeListener(event: 'unpipe', listener: (src: Readable) => void): this;
366 removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
367 }
368
369 type TransformCallback = (error?: Error | null, data?: any) => void;
370
371 interface TransformOptions extends DuplexOptions {
372 read?(this: Transform, size: number): void;
373 write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
374 writev?(this: Transform, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void;
375 final?(this: Transform, callback: (error?: Error | null) => void): void;
376 destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void;
377 transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
378 flush?(this: Transform, callback: TransformCallback): void;
379 }
380
381 class Transform extends Duplex {
382 constructor(opts?: TransformOptions);
383 _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
384 _flush(callback: TransformCallback): void;
385 }
386
387 class PassThrough extends Transform { }
388
389 interface FinishedOptions {
390 error?: boolean | undefined;
391 readable?: boolean | undefined;
392 writable?: boolean | undefined;
393 }
394 function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
395 function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void;
396 namespace finished {
397 function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise<void>;
398 }
399
400 function pipeline<T extends NodeJS.WritableStream>(stream1: NodeJS.ReadableStream, stream2: T, callback?: (err: NodeJS.ErrnoException | null) => void): T;
401 function pipeline<T extends NodeJS.WritableStream>(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: T, callback?: (err: NodeJS.ErrnoException | null) => void): T;
402 function pipeline<T extends NodeJS.WritableStream>(
403 stream1: NodeJS.ReadableStream,
404 stream2: NodeJS.ReadWriteStream,
405 stream3: NodeJS.ReadWriteStream,
406 stream4: T,
407 callback?: (err: NodeJS.ErrnoException | null) => void,
408 ): T;
409 function pipeline<T extends NodeJS.WritableStream>(
410 stream1: NodeJS.ReadableStream,
411 stream2: NodeJS.ReadWriteStream,
412 stream3: NodeJS.ReadWriteStream,
413 stream4: NodeJS.ReadWriteStream,
414 stream5: T,
415 callback?: (err: NodeJS.ErrnoException | null) => void,
416 ): T;
417 function pipeline(
418 streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>,
419 callback?: (err: NodeJS.ErrnoException | null) => void,
420 ): NodeJS.WritableStream;
421 function pipeline(
422 stream1: NodeJS.ReadableStream,
423 stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
424 ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream | ((err: NodeJS.ErrnoException | null) => void)>,
425 ): NodeJS.WritableStream;
426 namespace pipeline {
427 function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.WritableStream): Promise<void>;
428 function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.WritableStream): Promise<void>;
429 function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.ReadWriteStream, stream4: NodeJS.WritableStream): Promise<void>;
430 function __promisify__(
431 stream1: NodeJS.ReadableStream,
432 stream2: NodeJS.ReadWriteStream,
433 stream3: NodeJS.ReadWriteStream,
434 stream4: NodeJS.ReadWriteStream,
435 stream5: NodeJS.WritableStream,
436 ): Promise<void>;
437 function __promisify__(streams: ReadonlyArray<NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream>): Promise<void>;
438 function __promisify__(
439 stream1: NodeJS.ReadableStream,
440 stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream,
441 ...streams: Array<NodeJS.ReadWriteStream | NodeJS.WritableStream>,
442 ): Promise<void>;
443 }
444
445 interface Pipe {
446 close(): void;
447 hasRef(): boolean;
448 ref(): void;
449 unref(): void;
450 }
451 }
452
453 export = internal;
454}
455declare module 'node:stream' {
456 import stream = require('stream');
457 export = stream;
458}