/// import COMMANDS from './commands'; import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandRawReply, RedisCommandReply, RedisModules, RedisPlugins, RedisScript, RedisScripts } from '../commands'; import { ClientCommandOptions, RedisClientCommandSignature, RedisClientOptions, WithModules, WithScripts } from '../client'; import { ClusterNode, NodeAddressMap } from './cluster-slots'; import { EventEmitter } from 'events'; import { RedisClusterMultiCommandType } from './multi-command'; export declare type RedisClusterClientOptions = Omit; export interface RedisClusterOptions, S extends RedisScripts = Record> extends RedisPlugins { rootNodes: Array; defaults?: Partial; useReplicas?: boolean; maxCommandRedirections?: number; nodeAddressMap?: NodeAddressMap; } declare type WithCommands = { [P in keyof typeof COMMANDS]: RedisClientCommandSignature<(typeof COMMANDS)[P]>; }; export declare type RedisClusterType, S extends RedisScripts = Record> = RedisCluster & WithCommands & WithModules & WithScripts; export default class RedisCluster extends EventEmitter { #private; static extractFirstKey(command: RedisCommand, originalArgs: Array, redisArgs: RedisCommandArguments): RedisCommandArgument | undefined; static create(options?: RedisClusterOptions): RedisClusterType; constructor(options: RedisClusterOptions); duplicate(overrides?: Partial>): RedisClusterType; connect(): Promise; commandsExecutor(command: RedisCommand, args: Array): Promise>; sendCommand(firstKey: RedisCommandArgument | undefined, isReadonly: boolean | undefined, args: RedisCommandArguments, options?: ClientCommandOptions): Promise; scriptsExecutor(script: RedisScript, args: Array): Promise>; executeScript(script: RedisScript, originalArgs: Array, redisArgs: RedisCommandArguments, options?: ClientCommandOptions): Promise>; multi(routing?: RedisCommandArgument): RedisClusterMultiCommandType; getMasters(): Array>; getSlotMaster(slot: number): ClusterNode; quit(): Promise; disconnect(): Promise; } export {};