import { ClientCommandOptions } from './client'; import { CommandOptions } from './command-options'; import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandReply, RedisFunction, RedisFunctions, RedisModules, RedisScript, RedisScripts } from './commands'; type Instantiable = new (...args: Array) => T; type CommandsExecutor = (command: C, args: Array, name: string) => unknown; interface AttachCommandsConfig { BaseClass: Instantiable; commands: Record; executor: CommandsExecutor; } export declare function attachCommands({ BaseClass, commands, executor }: AttachCommandsConfig): void; interface AttachExtensionsConfig { BaseClass: T; modulesExecutor: CommandsExecutor; modules?: RedisModules; functionsExecutor: CommandsExecutor; functions?: RedisFunctions; scriptsExecutor: CommandsExecutor; scripts?: RedisScripts; } export declare function attachExtensions(config: AttachExtensionsConfig): any; export declare function transformCommandArguments(command: RedisCommand, args: Array): { jsArgs: Array; args: RedisCommandArguments; options: CommandOptions | undefined; }; export declare function transformLegacyCommandArguments(args: Array): Array; export declare function transformCommandReply(command: C, rawReply: unknown, preserved: unknown): RedisCommandReply; export declare function fCallArguments(name: RedisCommandArgument, fn: RedisFunction, args: RedisCommandArguments): RedisCommandArguments; export {};