/// /// import {EventEmitter} from 'events'; import {ClientOpts, RedisClient} from 'redis'; declare class BeeQueue extends EventEmitter { name: string; keyPrefix: string; jobs: any; paused: boolean; settings: any; backoffStrategies: Map) => number>; constructor(name: string, settings?: BeeQueue.QueueSettings); on(ev: 'ready', fn: () => void): this; on(ev: 'error', fn: (err: Error) => void): this; on(ev: 'succeeded', fn: (job: BeeQueue.Job, result: any) => void): this; on(ev: 'retrying', fn: (job: BeeQueue.Job, err: Error) => void): this; on(ev: 'failed', fn: (job: BeeQueue.Job, err: Error) => void): this; on(ev: 'stalled', fn: (jobId: string) => void): this; on(ev: 'job succeeded', fn: (jobId: string, result: any) => void): this; on(ev: 'job retrying', fn: (jobId: string, err: Error) => void): this; on(ev: 'job failed', fn: (jobId: string, err: Error) => void): this; on(ev: 'job progress', fn: (jobId: string, progress: any) => void): this; ready(): Promise; ready(cb?: (err: Error | null) => void): Promise; isRunning(): boolean; createJob(data: U): BeeQueue.Job; getJob(jobId: string, cb: (job: BeeQueue.Job) => void): void; getJob(jobId: string): Promise>; getJobs( type: string, page: BeeQueue.Page, cb: (jobs: BeeQueue.Job[]) => void ): void; getJobs(type: string, page: BeeQueue.Page): Promise[]>; process(handler: (job: BeeQueue.Job) => Promise): void; process( handler: (job: BeeQueue.Job, done: BeeQueue.DoneCallback) => void ): void; process( concurrency: number, handler: (job: BeeQueue.Job) => Promise ): void; process( concurrency: number, handler: (job: BeeQueue.Job, done: BeeQueue.DoneCallback) => void ): void; checkStalledJobs(interval?: number): Promise; checkStalledJobs( interval: number, cb: (err: Error, numStalled: number) => void ): void; checkStalledJobs(cb: (err: Error, numStalled: number) => void): void; checkHealth(): Promise; checkHealth(cb: (counts: BeeQueue.HealthCheckResult) => void): void; close(cb: () => void): void; close(timeout?: number | null): Promise; close(timeout: number | undefined | null, cb: () => void): void; isRunning(): boolean; ready(): Promise; ready(cb: () => void): Promise; removeJob(jobId: string): Promise; removeJob(jobId: string, cb: () => void): void; destroy(): Promise; destroy(cb: () => void): void; } declare namespace BeeQueue { interface QueueSettings { prefix?: string; stallInterval?: number; nearTermWindow?: number; delayedDebounce?: number; redis?: ClientOpts | RedisClient; isWorker?: boolean; getEvents?: boolean; sendEvents?: boolean; storeJobs?: boolean; ensureScripts?: boolean; activateDelayedJobs?: boolean; removeOnSuccess?: boolean; removeOnFailure?: boolean; quitCommandClient?: boolean; redisScanCount?: number; } interface Job extends EventEmitter { id: string; data: T; readonly options: any; queue: BeeQueue; progress: any; status: 'created' | 'succeeded' | 'failed' | 'retrying'; on(ev: 'succeeded', fn: (result: any) => void): this; on(ev: 'retrying', fn: (err: Error) => void): this; on(ev: 'failed', fn: (err: Error) => void): this; on(ev: 'progress', fn: (progress: any) => void): this; setId(id: string): this; retries(n: number): this; backoff(strategy: string, delayFactor?: number): this; delayUntil(dateOrTimestamp: Date | number): this; timeout(milliseconds: number): this; save(): Promise; save(cb: (job: this) => void): void; reportProgress(p: any): void; remove(): Promise; remove(cb: (job: this) => void): void; } interface Page { start?: number; end?: number; size?: number; } interface HealthCheckResult { waiting: number; active: number; succeeded: number; failed: number; delayed: number; newestJob?: string; } type DoneCallback = (error: Error | null, result?: T) => void; } export = BeeQueue;