/// import * as nodeStream from 'stream'; import { ParallelOptions, Reader } from './reader'; export declare class Writer { write: (this: Writer, value?: T) => this; ended: boolean; constructor(write: (value: T) => void, stop?: (arg?: any) => void); writeAll(val: T): this; stop(arg?: any): Writer; end(): this; get pre(): Pre; nodify(): nodeStream.Writable; get result(): any; } export declare function create(write: (value: T) => Writer, stop?: (arg?: any) => Writer): Writer; export declare class PreImpl { writer: Writer; constructor(writer: Writer); } export interface Pre extends PreImpl { map(fn: (elt: U, index?: number) => T): Writer; tee(writer: Writer): Writer; concat(readers: Reader[]): Writer; transform(fn: (reader: Reader, writer: Writer) => void): Writer; filter(fn: (elt: T, index?: number) => boolean): Writer; until(fn: (elt: T, index?: number) => boolean): Writer; while(fn: (elt: T, index?: number) => boolean): Writer; limit(n: number, stopArg?: any): Writer; skip(n: number): Writer; parallel(options: ParallelOptions | number, consumer: (source: any) => Reader): Writer; buffer(max: number): Writer; nodeTransform(duplex: nodeStream.Duplex): Writer; }