///
import { EventEmitter } from 'events';
import { ConnectionOptions, RedisClient } from '../interfaces';
interface RedisCapabilities {
canDoubleTimeout: boolean;
}
export interface RawCommand {
content: string;
name: string;
keys: number;
}
export declare class RedisConnection extends EventEmitter {
private readonly shared;
private readonly blocking;
static minimumVersion: string;
static recommendedMinimumVersion: string;
closing: boolean;
capabilities: RedisCapabilities;
protected _client: RedisClient;
private readonly opts;
private readonly initializing;
private version;
private skipVersionCheck;
private handleClientError;
private handleClientClose;
private handleClientReady;
constructor(opts?: ConnectionOptions, shared?: boolean, blocking?: boolean, skipVersionCheck?: boolean);
private checkBlockingOptions;
/**
* Waits for a redis client to be ready.
* @param redis - client
*/
static waitUntilReady(client: RedisClient): Promise;
get client(): Promise;
protected loadCommands(version?: string, providedScripts?: Record): void;
private init;
disconnect(wait?: boolean): Promise;
reconnect(): Promise;
close(): Promise;
private getRedisVersion;
get redisVersion(): string;
}
export {};