///
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 {};