// This definition document heavily references // the original declaration of Michael de Wit import { count as countImport, empty as emptyImport, error as errorImport, infinite as infiniteImport, keys as keysImport, once as onceImport, values as valuesImport, } from "./sources"; import { asyncMap as asyncMapImport, filter as filterImport, filterNot as filterNotImport, flatten as flattenImport, map as mapImport, nonUnique as nonUniqueImport, take as takeImport, through as throughImport, unique as uniqueImport, } from "./throughs"; import { collect as collectImport, concat as concatImport, drain as drainImport, find as findImport, log as logImport, onEnd as onEndImport, reduce as reduceImport, } from "./sinks"; declare namespace pull { type Abort = Error | boolean | null; type EndOrError = Abort; type SourceCallback = (end: EndOrError, data?: T) => void; type Source = (endOrError: Abort, cb: SourceCallback) => void; type Sink = (source: Source) => void; type Through = (source: Source) => Source; interface DuplexSource { source: Source; } interface DuplexSink { sink: Sink; } type Duplex = DuplexSource & DuplexSink; type DuplexThrough = DuplexSource & DuplexSink; type PossibleSource = Source | DuplexSource; type PossibleSink = Sink | DuplexSink; type PossibleThrough = Through | DuplexThrough; const count: typeof countImport; const empty: typeof emptyImport; const error: typeof errorImport; const infinite: typeof infiniteImport; const keys: typeof keysImport; const once: typeof onceImport; const values: typeof valuesImport; const asyncMap: typeof asyncMapImport; const filterNot: typeof filterNotImport; const filter: typeof filterImport; const flatten: typeof flattenImport; const map: typeof mapImport; const nonUnique: typeof nonUniqueImport; const take: typeof takeImport; const through: typeof throughImport; const unique: typeof uniqueImport; const collect: typeof collectImport; const concat: typeof concatImport; const drain: typeof drainImport; const find: typeof findImport; const log: typeof logImport; const onEnd: typeof onEndImport; const reduce: typeof reduceImport; } /** * Pipe data through a number of `pull-stream`s */ declare function pull(): void; declare function pull(source: pull.PossibleSource): pull.Source; declare function pull(source: pull.PossibleSource, t1: pull.PossibleThrough): pull.Source; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, ): pull.Source; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, ): pull.Source; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, ): pull.Source; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, ): pull.Source; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, t6: pull.PossibleThrough, ): pull.Source; declare function pull(t1: pull.Through): pull.Through; declare function pull(t1: pull.Through, t2: pull.PossibleThrough): pull.Through; declare function pull( t1: pull.Through, t2: pull.PossibleThrough, t3: pull.PossibleThrough, ): pull.Through; declare function pull( t1: pull.Through, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, ): pull.Through; declare function pull( t1: pull.Through, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, ): pull.Through; declare function pull( t1: pull.Through, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, t6: pull.PossibleThrough, ): pull.Through; declare function pull(sink: pull.PossibleSink): pull.Sink; declare function pull(t1: pull.PossibleThrough, sink: pull.PossibleSink): pull.Sink; declare function pull( t1: pull.PossibleThrough, t2: pull.PossibleThrough, sink: pull.PossibleSink, ): pull.Sink; declare function pull( t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, sink: pull.PossibleSink, ): pull.Sink; declare function pull( t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, sink: pull.PossibleSink, ): pull.Sink; declare function pull( t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, sink: pull.PossibleSink, ): pull.Sink; declare function pull( t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, t6: pull.PossibleThrough, sink: pull.PossibleSink, ): pull.Sink; declare function pull(source: pull.PossibleSource, sink: pull.PossibleSink): void; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, sink: pull.PossibleSink, ): void; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, sink: pull.PossibleSink, ): void; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, sink: pull.PossibleSink, ): void; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, sink: pull.PossibleSink, ): void; declare function pull( source: pull.PossibleSource, t1: pull.PossibleThrough, t2: pull.PossibleThrough, t3: pull.PossibleThrough, t4: pull.PossibleThrough, t5: pull.PossibleThrough, sink: pull.PossibleSink, ): void; declare function pull( ...pullStreams: ReadonlyArray | pull.PossibleSink | pull.PossibleThrough> // eslint-disable-next-line @typescript-eslint/no-invalid-void-type ): pull.Source | pull.Sink | pull.Through | void; export = pull;