import BaseQueue, { Queue as BullQueue, QueueOptions, JobOptions } from 'bull'; import { Application, Router } from 'egg'; declare class QueueBase { protected queue: BullQueue; protected logger: any; protected app: A; protected name: string; constructor(app: A, queueOptions?: QueueOptions, name?: string, listenEvents?: boolean); private initQueue; } export declare abstract class Queue extends QueueBase { startProcess(): void; protected abstract process(params: T): Promise; run(ctx: any, params: T, jobOptions?: JobOptions): Promise; send(ctx: any, params: T, jobOptions?: JobOptions): Promise; } export declare class Sender extends Queue { constructor(app: A, queueOptions?: QueueOptions, name?: string); startProcess(): void; process(params: T): Promise; } export declare class QueueAdmin { static getStats(qName: string): Promise; static getAllStats(): Promise<{ queueName: string; stats: BaseQueue.JobCounts; }[]>; static pause(qName: string): Promise; static resume(qName: string): Promise; static getFailed(qName: string, start?: number, end?: number): Promise[]>; } export declare const registryAdminRouter: (rp: Router, pathPrefix: string) => void; export {};