import COMMANDS from './commands'; import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandRawReply, RedisModules, RedisPlugins, RedisScript, RedisScripts } from '../commands'; import RedisMultiCommand, { RedisMultiQueuedCommand } from '../multi-command'; import { ExcludeMappedString } from '../client'; declare type RedisClusterMultiCommandSignature = (...args: Parameters) => RedisClusterMultiCommandType; declare type WithCommands = { [P in keyof typeof COMMANDS]: RedisClusterMultiCommandSignature<(typeof COMMANDS)[P], M, S>; }; declare type WithModules = { [P in keyof M as ExcludeMappedString

]: { [C in keyof M[P] as ExcludeMappedString]: RedisClusterMultiCommandSignature; }; }; declare type WithScripts = { [P in keyof S as ExcludeMappedString

]: RedisClusterMultiCommandSignature; }; export declare type RedisClusterMultiCommandType = RedisClusterMultiCommand & WithCommands & WithModules & WithScripts; export declare type RedisClusterMultiExecutor = (queue: Array, firstKey?: RedisCommandArgument, chainId?: symbol) => Promise>; export default class RedisClusterMultiCommand { #private; static extend(plugins?: RedisPlugins): new (...args: ConstructorParameters) => RedisClusterMultiCommandType; constructor(executor: RedisClusterMultiExecutor, firstKey?: RedisCommandArgument); commandsExecutor(command: RedisCommand, args: Array): this; addCommand(firstKey: RedisCommandArgument | undefined, args: RedisCommandArguments, transformReply?: RedisCommand['transformReply']): this; scriptsExecutor(script: RedisScript, args: Array): this; exec(execAsPipeline?: boolean): Promise>; EXEC: (execAsPipeline?: boolean) => Promise>; execAsPipeline(): Promise>; } export {};