import { default as EventEmitter } from 'events';
import { QueueDataType } from '.';
import { RequestInstance } from '../request';
export declare const getDispatcherEvents: (emitter: EventEmitter) => {
    emitDrained: <Request extends RequestInstance>(values: QueueDataType<Request>, isTriggeredExternally?: boolean) => void;
    emitQueueStatusChanged: <Request extends RequestInstance>(values: QueueDataType<Request>, isTriggeredExternally?: boolean) => void;
    emitQueueChanged: <Request extends RequestInstance>(values: QueueDataType<Request>, isTriggeredExternally?: boolean) => void;
    /**
     * When queue becomes empty
     * @param callback
     * @returns
     */
    onDrained: <Request extends RequestInstance>(callback: (values: QueueDataType<Request>) => void) => VoidFunction;
    /**
     * When queue becomes empty
     * @param queryKey
     * @param callback
     * @returns
     */
    onDrainedByKey: <Request extends RequestInstance>(queryKey: string, callback: (values: QueueDataType<Request>) => void) => VoidFunction;
    /**
     * When queue status change from enabled to paused or vice versa
     * @param callback
     * @returns
     */
    onQueueStatusChange: <Request extends RequestInstance>(callback: (values: QueueDataType<Request>) => void) => VoidFunction;
    /**
     * When queue status change from enabled to paused or vice versa
     * @param queryKey
     * @param callback
     * @returns
     */
    onQueueStatusChangeByKey: <Request extends RequestInstance>(queryKey: string, callback: (values: QueueDataType<Request>) => void) => VoidFunction;
    /**
     * When new elements are added or removed from the queue
     * @param queryKey
     * @param callback
     * @returns
     */
    onQueueChange: <Request extends RequestInstance>(callback: (values: QueueDataType<Request>) => void) => VoidFunction;
    /**
     * When new elements are added or removed from the queue
     * @param queryKey
     * @param callback
     * @returns
     */
    onQueueChangeByKey: <Request extends RequestInstance>(queryKey: string, callback: (values: QueueDataType<Request>) => void) => VoidFunction;
};
//# sourceMappingURL=dispatcher.events.d.ts.map