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

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

]: RedisClientMultiCommandSignature; }; export declare type RedisClientMultiCommandType = RedisClientMultiCommand & WithCommands & WithModules & WithScripts; export declare type RedisClientMultiExecutor = (queue: Array, chainId?: symbol) => Promise>; export default class RedisClientMultiCommand { #private; static extend(plugins?: RedisPlugins): new (...args: ConstructorParameters) => RedisClientMultiCommandType; readonly v4: Record; constructor(executor: RedisClientMultiExecutor, legacyMode?: boolean); commandsExecutor(command: RedisCommand, args: Array): this; addCommand(args: RedisCommandArguments, transformReply?: RedisCommand['transformReply']): this; scriptsExecutor(script: RedisScript, args: Array): this; exec(execAsPipeline?: boolean): Promise>; EXEC: (execAsPipeline?: boolean) => Promise>; execAsPipeline(): Promise>; } export {};