|                                     |  | declare function fastq<C, T = any, R = any>(context: C, worker: fastq.worker<C, T, R>, concurrency: number): fastq.queue<T, R>declare function fastq<C, T = any, R = any>(worker: fastq.worker<C, T, R>, concurrency: number): fastq.queue<T, R>
declare namespace fastq {  type worker<C, T = any, R = any> = (this: C, task: T, cb: fastq.done<R>) => void  type asyncWorker<C, T = any, R = any> = (this: C, task: T) => Promise<R>  type done<R = any> = (err: Error | null, result?: R) => void  type errorHandler<T = any> = (err: Error, task: T) => void
  interface queue<T = any, R = any> {    push(task: T, done?: done<R>): void    unshift(task: T, done?: done<R>): void    pause(): any    resume(): any    running(): number    idle(): boolean    length(): number    getQueue(): T[]    kill(): any    killAndDrain(): any    error(handler: errorHandler<T>): void    concurrency: number    readonly paused: boolean    drain(): any    empty: () => void    saturated: () => void  }
  interface queueAsPromised<T = any, R = any> extends queue<T, R> {    push(task: T): Promise<R>    unshift(task: T): Promise<R>    drained(): Promise<void>  }
  function promise<C, T = any, R = any>(context: C, worker: fastq.asyncWorker<C, T, R>, concurrency: number): fastq.queueAsPromised<T, R>  function promise<C, T = any, R = any>(worker: fastq.asyncWorker<C, T, R>, concurrency: number): fastq.queueAsPromised<T, R>}
export = fastq
 |