/// import { EventEmitter } from 'events'; import * as net from 'net'; import * as tls from 'tls'; import { RedisCommandArguments } from '../commands'; export interface RedisSocketCommonOptions { connectTimeout?: number; noDelay?: boolean; keepAlive?: number | false; reconnectStrategy?(retries: number): number | Error; } declare type RedisNetSocketOptions = Partial & { tls?: false; }; export interface RedisTlsSocketOptions extends tls.ConnectionOptions { tls: true; } export declare type RedisSocketOptions = RedisSocketCommonOptions & (RedisNetSocketOptions | RedisTlsSocketOptions); export declare type RedisSocketInitiator = () => Promise; export default class RedisSocket extends EventEmitter { #private; get isOpen(): boolean; get isReady(): boolean; get writableNeedDrain(): boolean; constructor(initiator?: RedisSocketInitiator, options?: RedisSocketOptions); connect(): Promise; writeCommand(args: RedisCommandArguments): void; disconnect(): void; quit(fn: () => Promise): Promise; cork(): void; } export {};