import { BaseDriver } from '../base-driver'; import Redis from 'ioredis'; import { Awaitable, RedisDriverOptions } from '../def'; export declare class RedisDriver extends BaseDriver { private options; createRedisClient(): Promise; useTempRedisClient(cb: (redis: Redis) => Awaitable): Promise; private pool; constructor(options: RedisDriverOptions); has(baseKey: string, key: string): Promise; get(baseKey: string, key: string): Promise; set(baseKey: string, key: string, value: Buffer, ttl: number): Promise; del(baseKey: string, key: string): Promise; private originalKeys; keys(baseKey: string, prefix?: string): Promise; clear(baseKey: string, prefix?: string): Promise; private betterLock; private get lockSettings(); private get lockReleaseChannel(); private subscriberPromise; private releaseListeners; private lockWakers; /** * A dedicated connection subscribed to lock release notifications, so * waiters are woken up immediately instead of polling. */ private getSubscriber; private acquireLock; private runWithLock; lock(keys: string[], cb: () => Promise): Promise; isFree(keys: string[]): Promise; quitted: boolean; destroy(): Promise; private getQueueKey; private getQueueBackupKey; queueLength(key: string): Promise; queueItems(key: string): Promise; queueAdd(key: string, value: Buffer, prior?: boolean): Promise; queueGather(key: string): Promise; private waitingBlockingProms; queueGatherBlocking(key: string): Promise; queueAck(key: string, value: Buffer): Promise; queueResume(key: string, value: Buffer, prior?: boolean): Promise; queueResumeAll(key: string, prior?: boolean): Promise; queueClear(key: string): Promise; }