import * as QueueRaw from 'bull';
export declare let scope: {
    [name: string]: {
        [name: string]: Handler;
    };
};
export declare function Queue(name: string, scope?: string): QueueRaw.Queue<any>;
export declare function getQueues(): any[];
export declare function clearModel(): void;
export declare function getQueuesArena(): any[];
export interface Handler {
    description?: string;
    process(job: any): Promise<any>;
    count?: number;
    job?: any;
}
export interface HandlerOption {
    name: string;
    scope?: string;
    description?: string;
    count?: number;
}
export declare function RegisterHandler(opt: HandlerOption, func: (job: QueueRaw.Job) => (Promise<any> | any)): void;
export declare class HandlerManager {
    private jobs;
    private name;
    constructor(name?: string);
    getHandler(name: string): Handler;
    runHandler<T>(j: Handler, job: QueueRaw.Job): Promise<T>;
    hireHandler(j: Handler, name: string): void;
    init(callback?: (manager: HandlerManager) => void): void;
    cleanAll(): Promise<void>;
    destroy(): Promise<void>;
}
