/// import { Readable, TransformOptions, Writable, WritableOptions } from 'stream'; import { TypedEmitter, ListenerSignature } from 'tiny-typed-emitter'; import { NamedPipe, Debugger } from '.'; export declare const delay: (ms: number) => Promise; interface BaseEvents extends ListenerSignature { close: () => void; error: (error: Error) => void; } declare abstract class Base> extends TypedEmitter { protected debug: Debugger; protected pipe: NamedPipe; protected connected: boolean; constructor(pipe: NamedPipe, debugName: string); getPipe(): NamedPipe; isConnected(): boolean; abstract connect(): Promise; abstract destroy(): Promise; protected exists(): boolean; } export interface ReceiverEvents extends BaseEvents { connect: () => void; end: () => void; data: (data: Buffer) => void; timeout: () => void; } export declare abstract class BaseReceiver extends Base { constructor(pipe: NamedPipe, debugName: string); abstract getReadableStream(opts?: TransformOptions): Readable; } export interface SenderEvents extends BaseEvents { connected: () => void; } export declare abstract class BaseSender extends Base { constructor(pipe: NamedPipe, debugName: string); abstract write(data: any, callback?: (err?: Error) => void): boolean; abstract getWritableStream(opts?: WritableOptions): Writable; } export {};