// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. import { EventEmitter } from "ext:deno_node/_events.d.ts"; import { Buffer } from "node:buffer"; /** One of: * | "ascii" * | "utf8" * | "utf-8" * | "utf16le" * | "ucs2" * | "ucs-2" * | "base64" * | "base64url" * | "latin1" * | "binary" * | "hex"; */ export type BufferEncoding = string; export interface Buffered { chunk: Buffer; encoding: string; callback: (err?: Error | null) => void; } export interface ErrnoException extends Error { errno?: number | undefined; code?: string | undefined; path?: string | undefined; syscall?: string | undefined; } export interface ReadableStream extends EventEmitter { readable: boolean; read(size?: number): string | Buffer; setEncoding(encoding: BufferEncoding): this; pause(): this; resume(): this; isPaused(): boolean; pipe( destination: T, options?: { end?: boolean | undefined }, ): T; unpipe(destination?: WritableStream): this; unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; wrap(oldStream: ReadableStream): this; [Symbol.asyncIterator](): AsyncIterableIterator; } export interface WritableStream extends EventEmitter { writable: boolean; write( buffer: Uint8Array | string, cb?: (err?: Error | null) => void, ): boolean; write( str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void, ): boolean; end(cb?: () => void): void; end(data: string | Uint8Array, cb?: () => void): void; end(str: string, encoding?: BufferEncoding, cb?: () => void): void; } export interface ReadWriteStream extends ReadableStream, WritableStream {}