import type { HandlerMap, QueueBackendConfig, Task } from '../types/index.js';
import { BaseQueueRepository } from './base.repository.js';
import type { Redis } from 'ioredis';
import type { QueueRepository } from '../index.js';
export declare class RedisQueueRepository extends BaseQueueRepository implements QueueRepository {
    private readonly redis;
    storageName: string;
    private dequeueLockName;
    constructor(redisClient: Redis, maxRetries: number, maxProcessingTime: number, options?: Extract<QueueBackendConfig, {
        type: 'redis';
    }>['options']);
    setDequeueLockName(name: string): Promise<void>;
    loadTasks(status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>;
    saveTasks(_tasks: Task<HandlerMap>[], _status?: Task<HandlerMap>['status']): Promise<Task<HandlerMap>[]>;
    deleteTask(id: string, hardDelete?: boolean): Promise<Task<HandlerMap> | undefined>;
    getScore(task: Task<HandlerMap>): number;
    enqueue(task: Task<HandlerMap>): Promise<void>;
    updateTask(id: string, obj: Partial<Task<HandlerMap>>): Promise<Task<HandlerMap> | undefined>;
    private ATOMIC_DEQUEUE_LUA;
    dequeue(): Promise<Task<HandlerMap> | null>;
}
