import * as Tls from "tls" ; /**
 * Options common to both TCP and Sentinel Redis connections.
 */ export interface BasicRedisOptions { autoResendUnfulfilledCommands ? : boolean ; autoResubscribe ? : boolean ; connectionName ? : string ; connectTimeout ? : number ; db ? : number ; dropBufferSupport ? : boolean ; enableOfflineQueue ? : boolean ; enableReadyCheck ? : boolean ; keepAlive ? : number ; keyPrefix ? : string ; lazyConnect ? : boolean ; noDelay ? : boolean ; password ? : string ; protocol : string ; readOnly ? : boolean ; reconnectOnError ? ( error ) : boolean | 1 | 2 ; retryStrategy ? ( times ) : number | false ; stringNumbers ? : boolean ; tls ? : Tls . TlsOptions ; } /**
 * TCP connection options.
 */ export interface BasicRedisTcpOptions extends BasicRedisOptions { family ? : 4 | 6 ; host ? : string ; port ? : number ; } /**
 * Unix Socket connection options.
 */ export interface BasicRedisSocketOptions extends BasicRedisOptions { path : string ; } /**
 * Sentinel connection options.
 */ export interface BasicRedisSentinelOptions extends BasicRedisTcpOptions { name : string ; role ? : "master" | "slave" ; sentinelRetryStrategy ? ( times ) : number | false ; sentinels : Array < RedisSentinelAuthority > ; } /**
 * Cluster connection options.
 */ export interface BasicRedisClusterOptions { clusterRetryStrategy ? ( times ) : number ; enableOfflineQueue ? : boolean ; enableReadyCheck ? : boolean ; maxRedirections ? : number ; nodes : Array < RedisClusterNode > ; redisOptions ? : BasicRedisTcpOptions ; retryDelayOnClusterDown ? : number ; retryDelayOnFailover ? : number ; scaleReads ? : "master" | "slave" | "all" ; } /**
 * Celery/Kombu transport options for Redis transports.
 */ export interface RedisTransportOptions { fanoutPatterns ? : string ; fanoutPrefix ? : string ; masterName ? : string ; visibilityTimeout ? : number ; } /**
 * Location of a Sentinel node.
 */ export interface RedisSentinelAuthority { host : string ; port : number ; } /**
 * Location of a Cluster node.
 */ export interface RedisClusterNode { host : string ; port : number ; }