declare function fastq(context: C, worker: fastq.worker, concurrency: number): fastq.queue declare function fastq(worker: fastq.worker, concurrency: number): fastq.queue declare namespace fastq { type worker = (this: C, task: T, cb: fastq.done) => void type done = (err: Error | null, result?: R) => void interface queue { push(task: T, done: done): void unshift(task: T, done: done): void pause(): any resume(): any idle(): boolean length(): number getQueue(): T[] kill(): any killAndDrain(): any concurrency: number drain(): any empty: () => void saturated: () => void } } export = fastq