export interface IStream { errored: boolean; ended: boolean; on(e: 'data', cb: (data: T) => any): void; on(e: 'end', cb: () => any): void; on(e: 'error', cb: (e: any) => void): any; read(): Promise; } type ReadEvt = 'data' | 'end' | 'error'; type WriteEvt = 'read'; export default class Stream implements IStream { listeners: { [K in ReadEvt | WriteEvt]?: (...args: any[]) => any; }; errored: boolean; ended: boolean; reading: boolean; constructor(); on(e: ReadEvt | WriteEvt, cb: (...args: any[]) => void): void; read(): Promise; write(data: T): void; error(e: any): void; end(data: T): void; } export {};