 85bf1341f3
			
		
	
	85bf1341f3
	
	
	
		
			
			Frontend Enhancements: - Complete React TypeScript frontend with modern UI components - Distributed workflows management interface with real-time updates - Socket.IO integration for live agent status monitoring - Agent management dashboard with cluster visualization - Project management interface with metrics and task tracking - Responsive design with proper error handling and loading states Backend Infrastructure: - Distributed coordinator for multi-agent workflow orchestration - Cluster management API with comprehensive agent operations - Enhanced database models for agents and projects - Project service for filesystem-based project discovery - Performance monitoring and metrics collection - Comprehensive API documentation and error handling Documentation: - Complete distributed development guide (README_DISTRIBUTED.md) - Comprehensive development report with architecture insights - System configuration templates and deployment guides The platform now provides a complete web interface for managing the distributed AI cluster with real-time monitoring, workflow orchestration, and agent coordination capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			549 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			549 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /// <reference types="node" />
 | |
| /// <reference types="node" />
 | |
| /// <reference types="node" />
 | |
| /// <reference types="node" />
 | |
| import { EventEmitter } from 'node:events';
 | |
| import { StringDecoder } from 'node:string_decoder';
 | |
| /**
 | |
|  * Same as StringDecoder, but exposing the `lastNeed` flag on the type
 | |
|  */
 | |
| type SD = StringDecoder & {
 | |
|     lastNeed: boolean;
 | |
| };
 | |
| export type { SD, Pipe, PipeProxyErrors };
 | |
| /**
 | |
|  * Return true if the argument is a Minipass stream, Node stream, or something
 | |
|  * else that Minipass can interact with.
 | |
|  */
 | |
| export declare const isStream: (s: any) => s is NodeJS.WriteStream | NodeJS.ReadStream | Minipass<any, any, any> | (NodeJS.ReadStream & {
 | |
|     fd: number;
 | |
| }) | (EventEmitter & {
 | |
|     pause(): any;
 | |
|     resume(): any;
 | |
|     pipe(...destArgs: any[]): any;
 | |
| }) | (NodeJS.WriteStream & {
 | |
|     fd: number;
 | |
| }) | (EventEmitter & {
 | |
|     end(): any;
 | |
|     write(chunk: any, ...args: any[]): any;
 | |
| });
 | |
| /**
 | |
|  * Return true if the argument is a valid {@link Minipass.Readable}
 | |
|  */
 | |
| export declare const isReadable: (s: any) => s is Minipass.Readable;
 | |
| /**
 | |
|  * Return true if the argument is a valid {@link Minipass.Writable}
 | |
|  */
 | |
| export declare const isWritable: (s: any) => s is Minipass.Readable;
 | |
| declare const EOF: unique symbol;
 | |
| declare const MAYBE_EMIT_END: unique symbol;
 | |
| declare const EMITTED_END: unique symbol;
 | |
| declare const EMITTING_END: unique symbol;
 | |
| declare const EMITTED_ERROR: unique symbol;
 | |
| declare const CLOSED: unique symbol;
 | |
| declare const READ: unique symbol;
 | |
| declare const FLUSH: unique symbol;
 | |
| declare const FLUSHCHUNK: unique symbol;
 | |
| declare const ENCODING: unique symbol;
 | |
| declare const DECODER: unique symbol;
 | |
| declare const FLOWING: unique symbol;
 | |
| declare const PAUSED: unique symbol;
 | |
| declare const RESUME: unique symbol;
 | |
| declare const BUFFER: unique symbol;
 | |
| declare const PIPES: unique symbol;
 | |
| declare const BUFFERLENGTH: unique symbol;
 | |
| declare const BUFFERPUSH: unique symbol;
 | |
| declare const BUFFERSHIFT: unique symbol;
 | |
| declare const OBJECTMODE: unique symbol;
 | |
| declare const DESTROYED: unique symbol;
 | |
| declare const ERROR: unique symbol;
 | |
| declare const EMITDATA: unique symbol;
 | |
| declare const EMITEND: unique symbol;
 | |
| declare const EMITEND2: unique symbol;
 | |
| declare const ASYNC: unique symbol;
 | |
| declare const ABORT: unique symbol;
 | |
| declare const ABORTED: unique symbol;
 | |
| declare const SIGNAL: unique symbol;
 | |
| declare const DATALISTENERS: unique symbol;
 | |
| declare const DISCARDED: unique symbol;
 | |
| /**
 | |
|  * Options that may be passed to stream.pipe()
 | |
|  */
 | |
| export interface PipeOptions {
 | |
|     /**
 | |
|      * end the destination stream when the source stream ends
 | |
|      */
 | |
|     end?: boolean;
 | |
|     /**
 | |
|      * proxy errors from the source stream to the destination stream
 | |
|      */
 | |
|     proxyErrors?: boolean;
 | |
| }
 | |
| /**
 | |
|  * Internal class representing a pipe to a destination stream.
 | |
|  *
 | |
|  * @internal
 | |
|  */
 | |
| declare class Pipe<T extends unknown> {
 | |
|     src: Minipass<T>;
 | |
|     dest: Minipass<any, T>;
 | |
|     opts: PipeOptions;
 | |
|     ondrain: () => any;
 | |
|     constructor(src: Minipass<T>, dest: Minipass.Writable, opts: PipeOptions);
 | |
|     unpipe(): void;
 | |
|     proxyErrors(_er: any): void;
 | |
|     end(): void;
 | |
| }
 | |
| /**
 | |
|  * Internal class representing a pipe to a destination stream where
 | |
|  * errors are proxied.
 | |
|  *
 | |
|  * @internal
 | |
|  */
 | |
| declare class PipeProxyErrors<T> extends Pipe<T> {
 | |
|     unpipe(): void;
 | |
|     constructor(src: Minipass<T>, dest: Minipass.Writable, opts: PipeOptions);
 | |
| }
 | |
| export declare namespace Minipass {
 | |
|     /**
 | |
|      * Encoding used to create a stream that outputs strings rather than
 | |
|      * Buffer objects.
 | |
|      */
 | |
|     export type Encoding = BufferEncoding | 'buffer' | null;
 | |
|     /**
 | |
|      * Any stream that Minipass can pipe into
 | |
|      */
 | |
|     export type Writable = Minipass<any, any, any> | NodeJS.WriteStream | (NodeJS.WriteStream & {
 | |
|         fd: number;
 | |
|     }) | (EventEmitter & {
 | |
|         end(): any;
 | |
|         write(chunk: any, ...args: any[]): any;
 | |
|     });
 | |
|     /**
 | |
|      * Any stream that can be read from
 | |
|      */
 | |
|     export type Readable = Minipass<any, any, any> | NodeJS.ReadStream | (NodeJS.ReadStream & {
 | |
|         fd: number;
 | |
|     }) | (EventEmitter & {
 | |
|         pause(): any;
 | |
|         resume(): any;
 | |
|         pipe(...destArgs: any[]): any;
 | |
|     });
 | |
|     /**
 | |
|      * Utility type that can be iterated sync or async
 | |
|      */
 | |
|     export type DualIterable<T> = Iterable<T> & AsyncIterable<T>;
 | |
|     type EventArguments = Record<string | symbol, unknown[]>;
 | |
|     /**
 | |
|      * The listing of events that a Minipass class can emit.
 | |
|      * Extend this when extending the Minipass class, and pass as
 | |
|      * the third template argument.  The key is the name of the event,
 | |
|      * and the value is the argument list.
 | |
|      *
 | |
|      * Any undeclared events will still be allowed, but the handler will get
 | |
|      * arguments as `unknown[]`.
 | |
|      */
 | |
|     export interface Events<RType extends any = Buffer> extends EventArguments {
 | |
|         readable: [];
 | |
|         data: [chunk: RType];
 | |
|         error: [er: unknown];
 | |
|         abort: [reason: unknown];
 | |
|         drain: [];
 | |
|         resume: [];
 | |
|         end: [];
 | |
|         finish: [];
 | |
|         prefinish: [];
 | |
|         close: [];
 | |
|         [DESTROYED]: [er?: unknown];
 | |
|         [ERROR]: [er: unknown];
 | |
|     }
 | |
|     /**
 | |
|      * String or buffer-like data that can be joined and sliced
 | |
|      */
 | |
|     export type ContiguousData = Buffer | ArrayBufferLike | ArrayBufferView | string;
 | |
|     export type BufferOrString = Buffer | string;
 | |
|     /**
 | |
|      * Options passed to the Minipass constructor.
 | |
|      */
 | |
|     export type SharedOptions = {
 | |
|         /**
 | |
|          * Defer all data emission and other events until the end of the
 | |
|          * current tick, similar to Node core streams
 | |
|          */
 | |
|         async?: boolean;
 | |
|         /**
 | |
|          * A signal which will abort the stream
 | |
|          */
 | |
|         signal?: AbortSignal;
 | |
|         /**
 | |
|          * Output string encoding. Set to `null` or `'buffer'` (or omit) to
 | |
|          * emit Buffer objects rather than strings.
 | |
|          *
 | |
|          * Conflicts with `objectMode`
 | |
|          */
 | |
|         encoding?: BufferEncoding | null | 'buffer';
 | |
|         /**
 | |
|          * Output data exactly as it was written, supporting non-buffer/string
 | |
|          * data (such as arbitrary objects, falsey values, etc.)
 | |
|          *
 | |
|          * Conflicts with `encoding`
 | |
|          */
 | |
|         objectMode?: boolean;
 | |
|     };
 | |
|     /**
 | |
|      * Options for a string encoded output
 | |
|      */
 | |
|     export type EncodingOptions = SharedOptions & {
 | |
|         encoding: BufferEncoding;
 | |
|         objectMode?: false;
 | |
|     };
 | |
|     /**
 | |
|      * Options for contiguous data buffer output
 | |
|      */
 | |
|     export type BufferOptions = SharedOptions & {
 | |
|         encoding?: null | 'buffer';
 | |
|         objectMode?: false;
 | |
|     };
 | |
|     /**
 | |
|      * Options for objectMode arbitrary output
 | |
|      */
 | |
|     export type ObjectModeOptions = SharedOptions & {
 | |
|         objectMode: true;
 | |
|         encoding?: null;
 | |
|     };
 | |
|     /**
 | |
|      * Utility type to determine allowed options based on read type
 | |
|      */
 | |
|     export type Options<T> = ObjectModeOptions | (T extends string ? EncodingOptions : T extends Buffer ? BufferOptions : SharedOptions);
 | |
|     export {};
 | |
| }
 | |
| /**
 | |
|  * Main export, the Minipass class
 | |
|  *
 | |
|  * `RType` is the type of data emitted, defaults to Buffer
 | |
|  *
 | |
|  * `WType` is the type of data to be written, if RType is buffer or string,
 | |
|  * then any {@link Minipass.ContiguousData} is allowed.
 | |
|  *
 | |
|  * `Events` is the set of event handler signatures that this object
 | |
|  * will emit, see {@link Minipass.Events}
 | |
|  */
 | |
| export declare class Minipass<RType extends unknown = Buffer, WType extends unknown = RType extends Minipass.BufferOrString ? Minipass.ContiguousData : RType, Events extends Minipass.Events<RType> = Minipass.Events<RType>> extends EventEmitter implements Minipass.DualIterable<RType> {
 | |
|     [FLOWING]: boolean;
 | |
|     [PAUSED]: boolean;
 | |
|     [PIPES]: Pipe<RType>[];
 | |
|     [BUFFER]: RType[];
 | |
|     [OBJECTMODE]: boolean;
 | |
|     [ENCODING]: BufferEncoding | null;
 | |
|     [ASYNC]: boolean;
 | |
|     [DECODER]: SD | null;
 | |
|     [EOF]: boolean;
 | |
|     [EMITTED_END]: boolean;
 | |
|     [EMITTING_END]: boolean;
 | |
|     [CLOSED]: boolean;
 | |
|     [EMITTED_ERROR]: unknown;
 | |
|     [BUFFERLENGTH]: number;
 | |
|     [DESTROYED]: boolean;
 | |
|     [SIGNAL]?: AbortSignal;
 | |
|     [ABORTED]: boolean;
 | |
|     [DATALISTENERS]: number;
 | |
|     [DISCARDED]: boolean;
 | |
|     /**
 | |
|      * true if the stream can be written
 | |
|      */
 | |
|     writable: boolean;
 | |
|     /**
 | |
|      * true if the stream can be read
 | |
|      */
 | |
|     readable: boolean;
 | |
|     /**
 | |
|      * If `RType` is Buffer, then options do not need to be provided.
 | |
|      * Otherwise, an options object must be provided to specify either
 | |
|      * {@link Minipass.SharedOptions.objectMode} or
 | |
|      * {@link Minipass.SharedOptions.encoding}, as appropriate.
 | |
|      */
 | |
|     constructor(...args: [Minipass.ObjectModeOptions] | (RType extends Buffer ? [] | [Minipass.Options<RType>] : [Minipass.Options<RType>]));
 | |
|     /**
 | |
|      * The amount of data stored in the buffer waiting to be read.
 | |
|      *
 | |
|      * For Buffer strings, this will be the total byte length.
 | |
|      * For string encoding streams, this will be the string character length,
 | |
|      * according to JavaScript's `string.length` logic.
 | |
|      * For objectMode streams, this is a count of the items waiting to be
 | |
|      * emitted.
 | |
|      */
 | |
|     get bufferLength(): number;
 | |
|     /**
 | |
|      * The `BufferEncoding` currently in use, or `null`
 | |
|      */
 | |
|     get encoding(): BufferEncoding | null;
 | |
|     /**
 | |
|      * @deprecated - This is a read only property
 | |
|      */
 | |
|     set encoding(_enc: BufferEncoding | null);
 | |
|     /**
 | |
|      * @deprecated - Encoding may only be set at instantiation time
 | |
|      */
 | |
|     setEncoding(_enc: Minipass.Encoding): void;
 | |
|     /**
 | |
|      * True if this is an objectMode stream
 | |
|      */
 | |
|     get objectMode(): boolean;
 | |
|     /**
 | |
|      * @deprecated - This is a read-only property
 | |
|      */
 | |
|     set objectMode(_om: boolean);
 | |
|     /**
 | |
|      * true if this is an async stream
 | |
|      */
 | |
|     get ['async'](): boolean;
 | |
|     /**
 | |
|      * Set to true to make this stream async.
 | |
|      *
 | |
|      * Once set, it cannot be unset, as this would potentially cause incorrect
 | |
|      * behavior.  Ie, a sync stream can be made async, but an async stream
 | |
|      * cannot be safely made sync.
 | |
|      */
 | |
|     set ['async'](a: boolean);
 | |
|     [ABORT](): void;
 | |
|     /**
 | |
|      * True if the stream has been aborted.
 | |
|      */
 | |
|     get aborted(): boolean;
 | |
|     /**
 | |
|      * No-op setter. Stream aborted status is set via the AbortSignal provided
 | |
|      * in the constructor options.
 | |
|      */
 | |
|     set aborted(_: boolean);
 | |
|     /**
 | |
|      * Write data into the stream
 | |
|      *
 | |
|      * If the chunk written is a string, and encoding is not specified, then
 | |
|      * `utf8` will be assumed. If the stream encoding matches the encoding of
 | |
|      * a written string, and the state of the string decoder allows it, then
 | |
|      * the string will be passed through to either the output or the internal
 | |
|      * buffer without any processing. Otherwise, it will be turned into a
 | |
|      * Buffer object for processing into the desired encoding.
 | |
|      *
 | |
|      * If provided, `cb` function is called immediately before return for
 | |
|      * sync streams, or on next tick for async streams, because for this
 | |
|      * base class, a chunk is considered "processed" once it is accepted
 | |
|      * and either emitted or buffered. That is, the callback does not indicate
 | |
|      * that the chunk has been eventually emitted, though of course child
 | |
|      * classes can override this function to do whatever processing is required
 | |
|      * and call `super.write(...)` only once processing is completed.
 | |
|      */
 | |
|     write(chunk: WType, cb?: () => void): boolean;
 | |
|     write(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): boolean;
 | |
|     /**
 | |
|      * Low-level explicit read method.
 | |
|      *
 | |
|      * In objectMode, the argument is ignored, and one item is returned if
 | |
|      * available.
 | |
|      *
 | |
|      * `n` is the number of bytes (or in the case of encoding streams,
 | |
|      * characters) to consume. If `n` is not provided, then the entire buffer
 | |
|      * is returned, or `null` is returned if no data is available.
 | |
|      *
 | |
|      * If `n` is greater that the amount of data in the internal buffer,
 | |
|      * then `null` is returned.
 | |
|      */
 | |
|     read(n?: number | null): RType | null;
 | |
|     [READ](n: number | null, chunk: RType): RType;
 | |
|     /**
 | |
|      * End the stream, optionally providing a final write.
 | |
|      *
 | |
|      * See {@link Minipass#write} for argument descriptions
 | |
|      */
 | |
|     end(cb?: () => void): this;
 | |
|     end(chunk: WType, cb?: () => void): this;
 | |
|     end(chunk: WType, encoding?: Minipass.Encoding, cb?: () => void): this;
 | |
|     [RESUME](): void;
 | |
|     /**
 | |
|      * Resume the stream if it is currently in a paused state
 | |
|      *
 | |
|      * If called when there are no pipe destinations or `data` event listeners,
 | |
|      * this will place the stream in a "discarded" state, where all data will
 | |
|      * be thrown away. The discarded state is removed if a pipe destination or
 | |
|      * data handler is added, if pause() is called, or if any synchronous or
 | |
|      * asynchronous iteration is started.
 | |
|      */
 | |
|     resume(): void;
 | |
|     /**
 | |
|      * Pause the stream
 | |
|      */
 | |
|     pause(): void;
 | |
|     /**
 | |
|      * true if the stream has been forcibly destroyed
 | |
|      */
 | |
|     get destroyed(): boolean;
 | |
|     /**
 | |
|      * true if the stream is currently in a flowing state, meaning that
 | |
|      * any writes will be immediately emitted.
 | |
|      */
 | |
|     get flowing(): boolean;
 | |
|     /**
 | |
|      * true if the stream is currently in a paused state
 | |
|      */
 | |
|     get paused(): boolean;
 | |
|     [BUFFERPUSH](chunk: RType): void;
 | |
|     [BUFFERSHIFT](): RType;
 | |
|     [FLUSH](noDrain?: boolean): void;
 | |
|     [FLUSHCHUNK](chunk: RType): boolean;
 | |
|     /**
 | |
|      * Pipe all data emitted by this stream into the destination provided.
 | |
|      *
 | |
|      * Triggers the flow of data.
 | |
|      */
 | |
|     pipe<W extends Minipass.Writable>(dest: W, opts?: PipeOptions): W;
 | |
|     /**
 | |
|      * Fully unhook a piped destination stream.
 | |
|      *
 | |
|      * If the destination stream was the only consumer of this stream (ie,
 | |
|      * there are no other piped destinations or `'data'` event listeners)
 | |
|      * then the flow of data will stop until there is another consumer or
 | |
|      * {@link Minipass#resume} is explicitly called.
 | |
|      */
 | |
|     unpipe<W extends Minipass.Writable>(dest: W): void;
 | |
|     /**
 | |
|      * Alias for {@link Minipass#on}
 | |
|      */
 | |
|     addListener<Event extends keyof Events>(ev: Event, handler: (...args: Events[Event]) => any): this;
 | |
|     /**
 | |
|      * Mostly identical to `EventEmitter.on`, with the following
 | |
|      * behavior differences to prevent data loss and unnecessary hangs:
 | |
|      *
 | |
|      * - Adding a 'data' event handler will trigger the flow of data
 | |
|      *
 | |
|      * - Adding a 'readable' event handler when there is data waiting to be read
 | |
|      *   will cause 'readable' to be emitted immediately.
 | |
|      *
 | |
|      * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
 | |
|      *   already passed will cause the event to be emitted immediately and all
 | |
|      *   handlers removed.
 | |
|      *
 | |
|      * - Adding an 'error' event handler after an error has been emitted will
 | |
|      *   cause the event to be re-emitted immediately with the error previously
 | |
|      *   raised.
 | |
|      */
 | |
|     on<Event extends keyof Events>(ev: Event, handler: (...args: Events[Event]) => any): this;
 | |
|     /**
 | |
|      * Alias for {@link Minipass#off}
 | |
|      */
 | |
|     removeListener<Event extends keyof Events>(ev: Event, handler: (...args: Events[Event]) => any): this;
 | |
|     /**
 | |
|      * Mostly identical to `EventEmitter.off`
 | |
|      *
 | |
|      * If a 'data' event handler is removed, and it was the last consumer
 | |
|      * (ie, there are no pipe destinations or other 'data' event listeners),
 | |
|      * then the flow of data will stop until there is another consumer or
 | |
|      * {@link Minipass#resume} is explicitly called.
 | |
|      */
 | |
|     off<Event extends keyof Events>(ev: Event, handler: (...args: Events[Event]) => any): this;
 | |
|     /**
 | |
|      * Mostly identical to `EventEmitter.removeAllListeners`
 | |
|      *
 | |
|      * If all 'data' event handlers are removed, and they were the last consumer
 | |
|      * (ie, there are no pipe destinations), then the flow of data will stop
 | |
|      * until there is another consumer or {@link Minipass#resume} is explicitly
 | |
|      * called.
 | |
|      */
 | |
|     removeAllListeners<Event extends keyof Events>(ev?: Event): this;
 | |
|     /**
 | |
|      * true if the 'end' event has been emitted
 | |
|      */
 | |
|     get emittedEnd(): boolean;
 | |
|     [MAYBE_EMIT_END](): void;
 | |
|     /**
 | |
|      * Mostly identical to `EventEmitter.emit`, with the following
 | |
|      * behavior differences to prevent data loss and unnecessary hangs:
 | |
|      *
 | |
|      * If the stream has been destroyed, and the event is something other
 | |
|      * than 'close' or 'error', then `false` is returned and no handlers
 | |
|      * are called.
 | |
|      *
 | |
|      * If the event is 'end', and has already been emitted, then the event
 | |
|      * is ignored. If the stream is in a paused or non-flowing state, then
 | |
|      * the event will be deferred until data flow resumes. If the stream is
 | |
|      * async, then handlers will be called on the next tick rather than
 | |
|      * immediately.
 | |
|      *
 | |
|      * If the event is 'close', and 'end' has not yet been emitted, then
 | |
|      * the event will be deferred until after 'end' is emitted.
 | |
|      *
 | |
|      * If the event is 'error', and an AbortSignal was provided for the stream,
 | |
|      * and there are no listeners, then the event is ignored, matching the
 | |
|      * behavior of node core streams in the presense of an AbortSignal.
 | |
|      *
 | |
|      * If the event is 'finish' or 'prefinish', then all listeners will be
 | |
|      * removed after emitting the event, to prevent double-firing.
 | |
|      */
 | |
|     emit<Event extends keyof Events>(ev: Event, ...args: Events[Event]): boolean;
 | |
|     [EMITDATA](data: RType): boolean;
 | |
|     [EMITEND](): boolean;
 | |
|     [EMITEND2](): boolean;
 | |
|     /**
 | |
|      * Return a Promise that resolves to an array of all emitted data once
 | |
|      * the stream ends.
 | |
|      */
 | |
|     collect(): Promise<RType[] & {
 | |
|         dataLength: number;
 | |
|     }>;
 | |
|     /**
 | |
|      * Return a Promise that resolves to the concatenation of all emitted data
 | |
|      * once the stream ends.
 | |
|      *
 | |
|      * Not allowed on objectMode streams.
 | |
|      */
 | |
|     concat(): Promise<RType>;
 | |
|     /**
 | |
|      * Return a void Promise that resolves once the stream ends.
 | |
|      */
 | |
|     promise(): Promise<void>;
 | |
|     /**
 | |
|      * Asynchronous `for await of` iteration.
 | |
|      *
 | |
|      * This will continue emitting all chunks until the stream terminates.
 | |
|      */
 | |
|     [Symbol.asyncIterator](): AsyncGenerator<RType, void, void>;
 | |
|     /**
 | |
|      * Synchronous `for of` iteration.
 | |
|      *
 | |
|      * The iteration will terminate when the internal buffer runs out, even
 | |
|      * if the stream has not yet terminated.
 | |
|      */
 | |
|     [Symbol.iterator](): Generator<RType, void, void>;
 | |
|     /**
 | |
|      * Destroy a stream, preventing it from being used for any further purpose.
 | |
|      *
 | |
|      * If the stream has a `close()` method, then it will be called on
 | |
|      * destruction.
 | |
|      *
 | |
|      * After destruction, any attempt to write data, read data, or emit most
 | |
|      * events will be ignored.
 | |
|      *
 | |
|      * If an error argument is provided, then it will be emitted in an
 | |
|      * 'error' event.
 | |
|      */
 | |
|     destroy(er?: unknown): this;
 | |
|     /**
 | |
|      * Alias for {@link isStream}
 | |
|      *
 | |
|      * Former export location, maintained for backwards compatibility.
 | |
|      *
 | |
|      * @deprecated
 | |
|      */
 | |
|     static get isStream(): (s: any) => s is NodeJS.WriteStream | NodeJS.ReadStream | Minipass<any, any, any> | (NodeJS.ReadStream & {
 | |
|         fd: number;
 | |
|     }) | (EventEmitter & {
 | |
|         pause(): any;
 | |
|         resume(): any;
 | |
|         pipe(...destArgs: any[]): any;
 | |
|     }) | (NodeJS.WriteStream & {
 | |
|         fd: number;
 | |
|     }) | (EventEmitter & {
 | |
|         end(): any;
 | |
|         write(chunk: any, ...args: any[]): any;
 | |
|     });
 | |
| }
 | |
| //# sourceMappingURL=index.d.ts.map
 |