import COMMANDS from "./commands"; import { ValkeyCommand, ValkeyCommandArgument, ValkeyCommandArguments, ValkeyCommandRawReply, ValkeyFunctions, ValkeyModules, ValkeyExtensions, ValkeyScript, ValkeyScripts, ExcludeMappedString, ValkeyFunction } from "../commands"; import { ValkeyMultiQueuedCommand } from "../multi-command"; type ValkeyClusterMultiCommandSignature = (...args: Parameters) => ValkeyClusterMultiCommandType; type WithCommands = { [P in keyof typeof COMMANDS]: ValkeyClusterMultiCommandSignature<(typeof COMMANDS)[P], M, F, S>; }; type WithModules = { [P in keyof M as ExcludeMappedString

]: { [C in keyof M[P] as ExcludeMappedString]: ValkeyClusterMultiCommandSignature; }; }; type WithFunctions = { [P in keyof F as ExcludeMappedString

]: { [FF in keyof F[P] as ExcludeMappedString]: ValkeyClusterMultiCommandSignature; }; }; type WithScripts = { [P in keyof S as ExcludeMappedString

]: ValkeyClusterMultiCommandSignature; }; export type ValkeyClusterMultiCommandType = ValkeyClusterMultiCommand & WithCommands & WithModules & WithFunctions & WithScripts; export type InstantiableValkeyClusterMultiCommandType = new (...args: ConstructorParameters) => ValkeyClusterMultiCommandType; export type ValkeyClusterMultiExecutor = (queue: Array, firstKey?: ValkeyCommandArgument, chainId?: symbol) => Promise>; export default class ValkeyClusterMultiCommand { #private; static extend(extensions?: ValkeyExtensions): InstantiableValkeyClusterMultiCommandType; constructor(executor: ValkeyClusterMultiExecutor, firstKey?: ValkeyCommandArgument); commandsExecutor(command: ValkeyCommand, args: Array): this; addCommand(firstKey: ValkeyCommandArgument | undefined, args: ValkeyCommandArguments, transformReply?: ValkeyCommand["transformReply"]): this; functionsExecutor(fn: ValkeyFunction, args: Array, name: string): this; scriptsExecutor(script: ValkeyScript, args: Array): this; exec(execAsPipeline?: boolean): Promise>; EXEC: (execAsPipeline?: boolean) => Promise>; execAsPipeline(): Promise>; } export {};