///
import { Job } from 'kue-unique';
import JobMaker from './JobMaker';
import { QueueConfig, JobMakerInterface } from '@ioc:Adonis5/Queue';
/**
* Main queue driver
*
* @version 2.0.0
* @adonis-version 4.0+
*/
export default class Queue implements Queue {
private queue;
private config;
private appRootPath;
/**
* Construct the queue
* @param {Adonis/App} app Adonis app/Ioc instance
*/
constructor(config: QueueConfig, appRootPath: string);
/**
* Register job event handlers
* @return {Promise}
*/
processing(): Promise;
/**
* Dispatch a new job
* @param {App/Jobs} job Job instances
* @return {Void}
*/
dispatch(job: Job, when?: string): JobMaker;
/**
* Remove a job from queue
* @param {App/Job} job Job producer
* @return {Promise}
*/
remove(job: JobMakerInterface): Promise;
/**
* Clear all jobs within a queue for a clean start
* @return {Promise}
*/
clear(): Promise;
}