///
import { EventEmitter } from 'events';
import { Cluster, Redis } from 'ioredis';
import { ConnectionOptions } from '../interfaces';
export declare type RedisClient = Redis | Cluster;
export declare class RedisConnection extends EventEmitter {
private readonly opts?;
private readonly shared;
static minimumVersion: string;
private _client;
private initializing;
private closing;
private version;
private handleClientError;
constructor(opts?: ConnectionOptions, shared?: boolean);
/**
* Waits for a redis client to be ready.
* @param {Redis} redis client
*/
static waitUntilReady(client: RedisClient): Promise;
get client(): Promise;
private init;
disconnect(): Promise;
reconnect(): Promise;
close(): Promise;
private getRedisVersion;
get redisVersion(): string;
}