import type { Job, JobsOptions } from 'bullmq';
import { type RedisConfig } from './connection';
export type JobPayload<T = unknown> = T;
export type JobCounts = Record<string, number>;
export type QueueDriver = {
    enqueue<T>(name: string, payload: T, options?: JobsOptions): Promise<string>;
    getJob(queueName: string, jobId: string): Promise<Job | undefined>;
    getJobCounts(queueName: string): Promise<JobCounts>;
    getRecentJobs(queueName: string, limit?: number): Promise<Job[]>;
    retryJob(queueName: string, jobId: string): Promise<boolean>;
    getQueues(): Promise<string[]>;
    close(): Promise<void>;
};
export declare const createBullMQDriver: (config: RedisConfig) => QueueDriver;
//# sourceMappingURL=driver.d.ts.map