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

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

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

]: CommandSignature; }; export type ValkeyClientMultiCommandType = ValkeyClientMultiCommand & WithCommands & WithModules & WithFunctions & WithScripts; type InstantiableValkeyMultiCommand = new (...args: ConstructorParameters) => ValkeyClientMultiCommandType; export type ValkeyClientMultiExecutor = (queue: Array, selectedDB?: number, chainId?: symbol) => Promise>; export default class ValkeyClientMultiCommand { #private; static extend(extensions?: ValkeyExtensions): InstantiableValkeyMultiCommand; readonly v4: Record; constructor(executor: ValkeyClientMultiExecutor, legacyMode?: boolean); commandsExecutor(command: ValkeyCommand, args: Array): this; SELECT(db: number, transformReply?: ValkeyCommand["transformReply"]): this; select: (db: number, transformReply?: ValkeyCommand["transformReply"]) => this; addCommand(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 {};