import { StandardSchemaV1 } from "@standard-schema/spec"; import Deque from "denque"; import { SrvRecord } from "dns"; import { EventEmitter } from "events"; import { IpcNetConnectOpts, Socket, TcpNetConnectOpts } from "net"; import { Readable, ReadableOptions } from "stream"; import { ConnectionOptions, TLSSocket } from "tls"; declare abstract class AbstractConnector { firstError?: Error; protected connecting: boolean; protected stream: NetStream; private disconnectTimeout; constructor(disconnectTimeout: number); check(info: any): boolean; disconnect(): void; abstract connect(_: ErrorEmitter): Promise; } declare type AddSet = CommandNameFlags["ENTER_SUBSCRIBER_MODE"][number]; interface AddressFromResponse { port: string; ip: string; flags?: string | undefined; } declare type ArgumentTransformer = (args: any[]) => any[]; declare type ArgumentType = string | Buffer | number | (string | Buffer | number | any[])[]; type AsNumber = K extends `${infer N extends number}` ? N | K : never; type AssistantMessage = { role: "assistant"; status: AssistantMessageStatus; parts: AssistantMessagePart[]; content: AssistantMessagePart[]; metadata: { unstable_state: ReadonlyJSONValue; unstable_data: ReadonlyJSONValue[]; unstable_annotations: ReadonlyJSONValue[]; steps: AssistantMessageStepMetadata[]; custom: Record; timing?: AssistantMessageTiming; }; }; declare class AssistantMessageAccumulator extends TransformStream { constructor(_param0?: { initialMessage?: AssistantMessage; throttle?: boolean; onError?: (error: string) => void; }); } type AssistantMessagePart = TextPart | ReasoningPart | ToolCallPart | SourcePart | FilePart | DataPart; type AssistantMessageStatus = { type: "running"; } | { type: "requires-action"; reason: "tool-calls"; } | { type: "complete"; reason: "stop" | "unknown"; } | { type: "incomplete"; reason: "cancelled" | "content-filter" | "error" | "length" | "other" | "tool-calls"; error?: ReadonlyJSONValue; }; type AssistantMessageStepMetadata = { state: "started"; messageId: string; } | { state: "finished"; messageId: string; finishReason: "content-filter" | "error" | "length" | "other" | "stop" | "tool-calls" | "unknown"; usage?: AssistantMessageStepUsage; isContinued: boolean; }; type AssistantMessageStepUsage = { inputTokens: number; outputTokens: number; }; declare class AssistantMessageStream { readonly readable: ReadableStream; constructor(readable: ReadableStream); static fromAssistantStream(stream: AssistantStream): AssistantMessageStream; unstable_result(): Promise; [Symbol.asyncIterator](): { next(): Promise>; }; tee(): [ AssistantMessageStream, AssistantMessageStream ]; } type AssistantMessageTiming = { streamStartTime: number; firstTokenTime?: number; totalStreamTime?: number; tokenCount?: number; tokensPerSecond?: number; totalChunks: number; toolCallCount: number; }; type AssistantMetaStreamChunk = (AssistantStreamChunk & { type: "part-finish" | "text-delta"; meta: PartInit; }) | (AssistantStreamChunk & { type: "result" | "tool-call-args-text-finish"; meta: PartInit & { type: "tool-call"; }; }) | (AssistantStreamChunk & { type: Exclude; }); declare class AssistantMetaTransformStream extends TransformStream { constructor(); } type AssistantStream = ReadableStream; declare const AssistantStream: { toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response; fromResponse(response: Response, transformer: ReadableWritablePair>): ReadableStream; toByteStream(stream: AssistantStream, transformer: ReadableWritablePair, AssistantStreamChunk>): ReadableStream>; fromByteStream(readable: ReadableStream>, transformer: ReadableWritablePair>): ReadableStream; }; type AssistantStreamChunk = { readonly path: readonly number[]; } & ({ readonly type: "part-start"; readonly part: PartInit; } | { readonly type: "part-finish"; } | { readonly type: "tool-call-args-text-finish"; } | { readonly type: "text-delta"; readonly textDelta: string; } | { readonly type: "annotations"; readonly annotations: ReadonlyJSONValue[]; } | { readonly type: "data"; readonly data: ReadonlyJSONValue[]; } | { readonly type: "step-start"; readonly messageId: string; } | { readonly type: "step-finish"; readonly finishReason: "content-filter" | "error" | "length" | "other" | "stop" | "tool-calls" | "unknown"; readonly usage: { readonly inputTokens: number; readonly outputTokens: number; }; readonly isContinued: boolean; } | { readonly type: "message-finish"; readonly finishReason: "content-filter" | "error" | "length" | "other" | "stop" | "tool-calls" | "unknown"; readonly usage: { readonly inputTokens: number; readonly outputTokens: number; }; } | { readonly type: "result"; readonly artifact?: ReadonlyJSONValue; readonly result: ReadonlyJSONValue; readonly isError: boolean; readonly modelContent?: readonly ToolModelContentPart[]; readonly messages?: ReadonlyJSONValue; } | { readonly type: "error"; readonly error: string; } | { readonly type: "update-state"; readonly operations: ObjectStreamOperation[]; }); type AssistantStreamController = { appendText(textDelta: string): void; appendReasoning(reasoningDelta: string): void; appendSource(options: SourcePart): void; appendFile(options: FilePart): void; appendData(options: DataPart): void; addTextPart(): TextStreamController; addToolCallPart(options: string): ToolCallStreamController; addToolCallPart(options: ToolCallPartInit): ToolCallStreamController; enqueue(chunk: AssistantStreamChunk): void; merge(stream: AssistantStream): void; close(): void; withParentId(parentId: string): AssistantStreamController; }; type AssistantStreamEncoder = ReadableWritablePair, AssistantStreamChunk> & { headers?: Headers; }; declare class AssistantTransformStream extends TransformStream { constructor(transformer: AssistantTransformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy); } type AssistantTransformer = { flush?: AssistantTransformerFlushCallback; start?: AssistantTransformerStartCallback; transform?: AssistantTransformerTransformCallback; }; type AssistantTransformerFlushCallback = (controller: AssistantStreamController) => void | PromiseLike; type AssistantTransformerStartCallback = (controller: AssistantStreamController) => void | PromiseLike; type AssistantTransformerTransformCallback = (chunk: I, controller: AssistantStreamController) => void | PromiseLike; declare class AssistantTransportDecoder extends PipeableTransformStream, AssistantStreamChunk> { constructor(); } declare class AssistantTransportEncoder extends PipeableTransformStream> implements AssistantStreamEncoder { headers: Headers; constructor(); } type AsyncIterableStream = AsyncIterable & ReadableStream; type AttachmentLike = { content: readonly MessagePartLike[]; }; type BackendTool = Record, TResult = unknown> = ToolBase & { type: "backend"; description?: undefined; parameters?: undefined; disabled?: undefined; execute?: undefined; toModelOutput?: undefined; experimental_onSchemaValidationError?: undefined; providerOptions?: undefined; }; type BackendToolDeclaration = Record, TResult = unknown> = ToolBase & { type: "backend"; description?: string | undefined; parameters?: StandardSchemaV1 | JSONSchema7 | undefined; disabled?: boolean; execute?: ToolExecuteFunction; toModelOutput?: ToolModelOutputFunction; experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction; providerOptions?: ProviderOptions; }; interface BatchOperationContext { batchMode: "MULTI"; batchSize: number; database: number; serverAddress: string; serverPort: number | undefined; } declare type Callback = (err?: Error | null, result?: T) => void; interface ChainableCommander extends RedisCommander<{ type: "pipeline"; }> { length: number; } declare type ClientContext = { type: keyof ResultTypes; }; declare class Cluster extends Commander { options: ClusterOptions; slots: NodeKey[][]; status: ClusterStatus; _groupsIds: { [key: string]: number; }; _groupsBySlot: number[]; isCluster: boolean; private startupNodes; private connectionPool; private manuallyClosing; private retryAttempts; private delayQueue; private offlineQueue; private subscriber; private shardedSubscribers; private slotsTimer; private reconnectTimeout; private isRefreshing; private _refreshSlotsCacheCallbacks; private _autoPipelines; private _runningAutoPipelines; private _readyDelayedCallbacks; private subscriberGroupEmitter; private connectionEpoch; constructor(startupNodes: ClusterNode[], options?: ClusterOptions); connect(): Promise; disconnect(reconnect?: boolean): void; quit(callback?: Callback<"OK">): Promise<"OK">; duplicate(overrideStartupNodes?: any[], overrideOptions?: {}): Cluster; nodes(role?: NodeRole): Redis[]; delayUntilReady(callback: Callback): void; get autoPipelineQueueSize(): number; refreshSlotsCache(callback?: Callback): void; sendCommand(command: Command, stream?: WriteableStream, node?: any): unknown; sscanStream(key: string, options?: ScanStreamOptions): ScanStream; sscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; hscanStream(key: string, options?: ScanStreamOptions): ScanStream; hscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; zscanStream(key: string, options?: ScanStreamOptions): ScanStream; zscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; handleError(error: Error, ttl: { value?: any; }, handlers: any): void; private resetOfflineQueue; private clearNodesRefreshInterval; private resetNodesRefreshInterval; private setStatus; private handleCloseEvent; private flushQueue; private executeOfflineCommands; private natMapper; private getInfoFromNode; private invokeReadyDelayedCallbacks; private readyCheck; private resolveSrv; private dnsLookup; private resolveStartupNodeHostnames; private createScanStream; private createShardedSubscriberGroup; } interface Cluster extends EventEmitter { } interface Cluster extends Transaction { } declare type ClusterNode = string | number | { host?: string | undefined; port?: number | undefined; }; declare type ClusterNodeRetryStrategy = RetryStrategy; interface ClusterOptions extends CommanderOptions { clusterRetryStrategy?: ((times: number, reason?: Error) => number | void | null) | null | undefined; enableOfflineQueue?: boolean | undefined; enableReadyCheck?: boolean | undefined; scaleReads?: NodeRole | Function | undefined; maxRedirections?: number | undefined; retryDelayOnFailover?: number | undefined; retryDelayOnClusterDown?: number | undefined; retryDelayOnTryAgain?: number | undefined; retryDelayOnMoved?: number | undefined; slotsRefreshTimeout?: number | undefined; slotsRefreshInterval?: number | undefined; shardedSubscribers?: boolean | undefined; clusterNodeRetryStrategy?: ClusterNodeRetryStrategy; redisOptions?: Omit | undefined; lazyConnect?: boolean | undefined; useSRVRecords?: boolean | undefined; resolveSrv?: DNSResolveSrvFunction | undefined; dnsLookup?: DNSLookupFunction | undefined; natMap?: NatMap | undefined; enableAutoPipelining?: boolean | undefined; autoPipeliningIgnoredCommands?: string[] | undefined; scripts?: Record | undefined; } declare type ClusterStatus = "close" | "connect" | "connecting" | "disconnecting" | "end" | "ready" | "reconnecting" | "wait"; declare class Command implements Respondable { name: string; static FLAGS: { [key in keyof CommandNameFlags]: CommandNameFlags[key]; }; private static flagMap?; private static _transformer; static checkFlag(flagName: T, commandName: string): commandName is CommandNameFlags[T][number]; static setArgumentTransformer(name: string, func: ArgumentTransformer): void; static setReplyTransformer(name: string, func: ReplyTransformer): void; private static getFlagMap; ignore?: boolean; isReadOnly?: boolean; args: CommandParameter[]; inTransaction: boolean; pipelineIndex?: number; isTraced: boolean; isResolved: boolean; reject: (err: Error) => void; resolve: (result: any) => void; promise: Promise; private replyEncoding; private errorStack; private bufferMode; private callback; private transformed; private _commandTimeoutTimer?; private _blockingTimeoutTimer?; private _blockingDeadline?; private slot?; private keys?; constructor(name: string, args?: Array, options?: CommandOptions, callback?: Callback); getSlot(): number; getKeys(): Array; toWritable(_socket: object): string | Buffer; stringifyArguments(): void; transformReply(result: Buffer | Buffer[]): string | string[] | Buffer | Buffer[]; setTimeout(ms: number): void; setBlockingTimeout(ms: number): void; extractBlockingTimeout(): number | null | undefined; private _clearTimers; private initPromise; private _iterateKeys; private _convertValue; } interface CommandItem { command: Respondable; stream: WriteableStream; select: number; } interface CommandNameFlags { VALID_IN_SUBSCRIBER_MODE: [ "subscribe", "psubscribe", "unsubscribe", "punsubscribe", "ssubscribe", "sunsubscribe", "ping", "quit" ]; VALID_IN_MONITOR_MODE: [ "monitor", "auth" ]; ENTER_SUBSCRIBER_MODE: [ "subscribe", "psubscribe", "ssubscribe" ]; EXIT_SUBSCRIBER_MODE: [ "unsubscribe", "punsubscribe", "sunsubscribe" ]; WILL_DISCONNECT: [ "quit" ]; HANDSHAKE_COMMANDS: [ "auth", "select", "client", "readonly", "info" ]; IGNORE_RECONNECT_ON_ERROR: [ "client" ]; BLOCKING_COMMANDS: [ "blpop", "brpop", "brpoplpush", "blmove", "bzpopmin", "bzpopmax", "bzmpop", "blmpop", "xread", "xreadgroup" ]; LAST_ARG_TIMEOUT_COMMANDS: [ "blpop", "brpop", "brpoplpush", "blmove", "bzpopmin", "bzpopmax" ]; FIRST_ARG_TIMEOUT_COMMANDS: [ "bzmpop", "blmpop" ]; BLOCK_OPTION_COMMANDS: [ "xread", "xreadgroup" ]; } interface CommandOptions { replyEncoding?: BufferEncoding | null; errorStack?: Error; keyPrefix?: string; readOnly?: boolean; } declare type CommandParameter = string | Buffer | number | any[]; declare class Commander { options: CommanderOptions; scriptsSet: {}; addedBuiltinSet: Set; getBuiltinCommands(): string[]; createBuiltinCommand(commandName: string): { string: any; buffer: any; }; addBuiltinCommand(commandName: string): void; defineCommand(name: string, definition: { lua: string; numberOfKeys?: number; readOnly?: boolean; }): void; sendCommand(command: Command, stream?: WriteableStream, node?: unknown): unknown; } interface Commander extends RedisCommander { } interface CommanderOptions { keyPrefix?: string | undefined; showFriendlyErrorStack?: boolean | undefined; } interface CommonRedisOptions extends CommanderOptions { Connector?: ConnectorConstructor | undefined; retryStrategy?: RetryStrategy; commandTimeout?: number | undefined; blockingTimeout?: number | undefined; blockingTimeoutGrace?: number | undefined; socketTimeout?: number | undefined; keepAlive?: number | undefined; noDelay?: boolean | undefined; connectionName?: string | undefined; disableClientInfo?: boolean | undefined; clientInfoTag?: string | undefined; username?: string | undefined; password?: string | undefined; db?: number | undefined; autoResubscribe?: boolean | undefined; autoResendUnfulfilledCommands?: boolean | undefined; reconnectOnError?: ReconnectOnError | null | undefined; readOnly?: boolean | undefined; stringNumbers?: boolean | undefined; connectTimeout?: number | undefined; monitor?: boolean | undefined; maxRetriesPerRequest?: number | null | undefined; maxLoadingRetryTime?: number | undefined; enableAutoPipelining?: boolean | undefined; autoPipeliningIgnoredCommands?: string[] | undefined; offlineQueue?: boolean | undefined; commandQueue?: boolean | undefined; enableOfflineQueue?: boolean | undefined; enableReadyCheck?: boolean | undefined; lazyConnect?: boolean | undefined; scripts?: Record | undefined; } interface Condition { select: number; auth?: string | [ string, string ]; subscriber: false | SubscriptionSet; } interface ConnectorConstructor { new (options: unknown): AbstractConnector; } type CreateObjectStreamOptions = { execute: (controller: ObjectStreamController) => void | PromiseLike; defaultValue?: ReadonlyJSONValue; }; type CreateResumableAssistantStreamResponseOptions = { readonly context: ResumableStreamContext; readonly streamId: string; readonly callback: (controller: AssistantStreamController) => PromiseLike | void; readonly encoder?: () => AssistantStreamEncoder; readonly headers?: HeadersInit; }; type CreateResumeAssistantStreamResponseOptions = { readonly context: ResumableStreamContext; readonly streamId: string; readonly encoder?: () => AssistantStreamEncoder; readonly headers?: HeadersInit; readonly missingResponse?: () => Response; }; declare type DNSLookupFunction = (hostname: string, callback: (err: NodeJS.ErrnoException | null | undefined, address: string, family?: number) => void) => void; declare type DNSResolveSrvFunction = (hostname: string, callback: (err: NodeJS.ErrnoException | null | undefined, records?: SrvRecord[]) => void) => void; interface DataHandledable extends EventEmitter { stream: NetStream; status: string; condition: Condition | null; commandQueue: Deque; disconnect(reconnect: boolean): void; recoverFromFatalError(commandError: Error, err: Error, options: FlushQueueOptions): void; handleReconnection(err: Error, item: CommandItem): void; } type DataPart = { type: "data"; name: string; data: ReadonlyJSONValue; parentId?: string; }; declare class DataStreamDecoder extends PipeableTransformStream, AssistantStreamChunk> { constructor(); } declare class DataStreamEncoder extends PipeableTransformStream> implements AssistantStreamEncoder { headers: Headers; constructor(); } type DeepPartial = T extends readonly any[] ? readonly DeepPartial[] : T extends { [key: string]: any; } ? { readonly [K in keyof T]?: DeepPartial; } : T; declare type DelSet = CommandNameFlags["EXIT_SUBSCRIBER_MODE"][number]; declare type ErrorEmitter = (type: string, err: Error) => void; type FieldState = "complete" | "partial"; type FilePart = { type: "file"; data: string; mimeType: string; parentId?: string; }; type FinishReason = "content-filter" | "error" | "length" | "other" | "stop" | "tool-calls" | "unknown"; declare type FlushQueueOptions = { offlineQueue?: boolean; commandQueue?: boolean; }; type FrontendTool = Record, TResult = unknown> = ToolBase & { type: "frontend"; description?: string | undefined; parameters: StandardSchemaV1 | JSONSchema7; disabled?: boolean; execute?: ToolExecuteFunction; toModelOutput?: ToolModelOutputFunction; experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction; providerOptions?: ProviderOptions; }; type GenericAssistantMessage = { role: "assistant"; content: (GenericTextPart | GenericToolCallPart)[]; }; type GenericFilePart = { type: "file"; data: string | URL; mediaType: string; }; type GenericMessage = GenericSystemMessage | GenericUserMessage | GenericAssistantMessage | GenericToolMessage; type GenericSystemMessage = { role: "system"; content: string; }; type GenericTextPart = { type: "text"; text: string; }; type GenericToolCallPart = { type: "tool-call"; toolCallId: string; toolName: string; args: Record; }; type GenericToolMessage = { role: "tool"; content: GenericToolResultPart[]; }; type GenericToolResultPart = { type: "tool-result"; toolCallId: string; toolName: string; result: unknown; isError?: boolean; }; type GenericUserMessage = { role: "user"; content: (GenericTextPart | GenericFilePart)[]; }; type HumanTool = Record, TResult = unknown> = ToolBase & { type: "human"; description?: string | undefined; parameters: StandardSchemaV1 | JSONSchema7; disabled?: boolean; display?: "standalone"; execute?: undefined; toModelOutput?: undefined; experimental_onSchemaValidationError?: undefined; providerOptions?: ProviderOptions; }; type InMemoryResumableStreamStoreOptions = { readonly defaultTtlMs?: number; readonly now?: () => number; readonly maxChunkBytes?: number; readonly maxEntriesPerStream?: number; readonly maxStreams?: number; readonly gcIntervalMs?: number; }; type IoRedisLike = Redis | Cluster; declare type IpcOptions = Pick; interface JSONSchema7 { $id?: string | undefined; $ref?: string | undefined; $schema?: JSONSchema7Version | undefined; $comment?: string | undefined; $defs?: { [key: string]: JSONSchema7Definition; } | undefined; type?: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined; enum?: JSONSchema7Type[] | undefined; const?: JSONSchema7Type | undefined; multipleOf?: number | undefined; maximum?: number | undefined; exclusiveMaximum?: number | undefined; minimum?: number | undefined; exclusiveMinimum?: number | undefined; maxLength?: number | undefined; minLength?: number | undefined; pattern?: string | undefined; items?: JSONSchema7Definition | JSONSchema7Definition[] | undefined; additionalItems?: JSONSchema7Definition | undefined; maxItems?: number | undefined; minItems?: number | undefined; uniqueItems?: boolean | undefined; contains?: JSONSchema7Definition | undefined; maxProperties?: number | undefined; minProperties?: number | undefined; required?: string[] | undefined; properties?: { [key: string]: JSONSchema7Definition; } | undefined; patternProperties?: { [key: string]: JSONSchema7Definition; } | undefined; additionalProperties?: JSONSchema7Definition | undefined; dependencies?: { [key: string]: JSONSchema7Definition | string[]; } | undefined; propertyNames?: JSONSchema7Definition | undefined; if?: JSONSchema7Definition | undefined; then?: JSONSchema7Definition | undefined; else?: JSONSchema7Definition | undefined; allOf?: JSONSchema7Definition[] | undefined; anyOf?: JSONSchema7Definition[] | undefined; oneOf?: JSONSchema7Definition[] | undefined; not?: JSONSchema7Definition | undefined; format?: string | undefined; contentMediaType?: string | undefined; contentEncoding?: string | undefined; definitions?: { [key: string]: JSONSchema7Definition; } | undefined; title?: string | undefined; description?: string | undefined; default?: JSONSchema7Type | undefined; readOnly?: boolean | undefined; writeOnly?: boolean | undefined; examples?: JSONSchema7Type | undefined; } interface JSONSchema7Array extends Array { } type JSONSchema7Definition = JSONSchema7 | boolean; interface JSONSchema7Object { [key: string]: JSONSchema7Type; } type JSONSchema7Type = string | number | boolean | JSONSchema7Object | JSONSchema7Array | null; type JSONSchema7TypeName = "array" | "boolean" | "integer" | "null" | "number" | "object" | "string"; type JSONSchema7Version = string; type McpServerConfig = { type: "http" | "sse"; url: string; headers?: Record; redirect?: "error" | "follow"; connectionTimeout?: number | undefined; } | { type: "stdio"; command: string; args?: readonly string[]; env?: Record; cwd?: string; connectionTimeout?: number | undefined; }; type McpTool = ToolBase, unknown> & { type: "mcp"; server: McpServerConfig; description?: undefined; parameters?: undefined; disabled?: boolean; execute?: undefined; toModelOutput?: undefined; experimental_onSchemaValidationError?: undefined; providerOptions?: undefined; }; type MessagePartLike = { type: string; text?: string; image?: string; data?: string; mimeType?: string; toolCallId?: string; toolName?: string; args?: Record; result?: unknown; isError?: boolean; }; declare type NatMap = { [key: string]: { host: string; port: number; }; } | NatMapFunction; declare type NatMapFunction = (key: string) => { host: string; port: number; } | null; declare type NetStream = Socket | TLSSocket; declare type NodeKey = string; type NodeRedisFields = Record; interface NodeRedisLike { set(key: string, value: string, options: { NX: true; EX: number; }): Promise; set(key: string, value: string, options: { EX: number; }): Promise; get(key: string): Promise; expire(key: string, seconds: number): Promise; exists(key: string): Promise; del(keys: string | string[]): Promise; xAdd(key: string, id: string, fields: NodeRedisFields): Promise; sendCommand(args: ReadonlyArray, options?: { typeMapping?: Record; }): Promise; multi(): NodeRedisMultiCommand; } interface NodeRedisMultiCommand { xAdd(key: string, id: string, fields: NodeRedisFields): NodeRedisMultiCommand; expire(key: string, seconds: number): NodeRedisMultiCommand; set(key: string, value: string, options: { EX: number; }): NodeRedisMultiCommand; execAsPipeline(): Promise; exec(): Promise; } declare type NodeRole = "all" | "master" | "slave"; type ObjectKey = keyof T & (string | number); type ObjectStreamChunk = { readonly snapshot: ReadonlyJSONValue; readonly operations: readonly ObjectStreamOperation[]; }; type ObjectStreamController = { readonly abortSignal: AbortSignal; enqueue(operations: readonly ObjectStreamOperation[]): void; }; type ObjectStreamOperation = { readonly type: "set"; readonly path: readonly string[]; readonly value: ReadonlyJSONValue; } | { readonly type: "append-text"; readonly path: readonly string[]; readonly value: string; }; declare class ObjectStreamResponse extends Response { constructor(body: ReadableStream); } type OnSchemaValidationErrorFunction = ToolExecuteFunction; interface Options extends ReadableOptions { key?: string; match?: string; type?: string; command: string; redis: any; count?: string | number; noValues?: boolean; } declare const PARTIAL_JSON_OBJECT_META_SYMBOL: unique symbol; type PartInit = { readonly type: "reasoning" | "text"; readonly parentId?: string; } | { readonly type: "tool-call"; readonly toolCallId: string; readonly toolName: string; readonly parentId?: string; } | { readonly type: "source"; readonly sourceType: "url"; readonly id: string; readonly url: string; readonly title?: string; readonly parentId?: string; } | { readonly type: "file"; readonly data: string; readonly mimeType: string; readonly parentId?: string; } | { readonly type: "data"; readonly name: string; readonly data: ReadonlyJSONValue; readonly parentId?: string; }; type PartialJsonObjectMeta = { state: "complete" | "partial"; partialPath: string[]; }; declare class PipeableTransformStream extends TransformStream { constructor(transform: (readable: ReadableStream) => ReadableStream); } type PipelineCommand = { readonly type: "xAdd"; readonly key: string; readonly fields: Record; } | { readonly type: "expire"; readonly key: string; readonly ttlSec: number; } | { readonly type: "set"; readonly key: string; readonly value: string; readonly ttlSec: number; }; interface PipelineWriteableStream { isPipeline: true; write(data: string | Buffer): unknown; destination: { redis: { stream: NetStream; }; }; } declare class PlainTextDecoder extends PipeableTransformStream, AssistantStreamChunk> { constructor(); } declare class PlainTextEncoder extends PipeableTransformStream> implements AssistantStreamEncoder { headers: Headers; constructor(); } declare type PreferredSlaves = ((slaves: AddressFromResponse[]) => AddressFromResponse | null) | Array<{ port: string; ip: string; prio?: number | undefined; }> | { port: string; ip: string; prio?: number | undefined; }; type ProviderOptions = Record>; type ProviderTool = Record, TResult = unknown> = ToolBase & { type: "provider"; providerId: `${string}.${string}`; parameters?: StandardSchemaV1 | JSONSchema7 | undefined; args: Record; supportsDeferredResults?: boolean; description?: undefined; disabled?: boolean; execute?: undefined; toModelOutput?: undefined; experimental_onSchemaValidationError?: undefined; providerOptions?: ProviderOptions; }; declare const RESUMABLE_STREAM_ID_HEADER = "x-resumable-stream-id"; type ReadonlyJSONArray = readonly ReadonlyJSONValue[]; type ReadonlyJSONObject = { readonly [key: string]: ReadonlyJSONValue; }; type ReadonlyJSONValue = null | string | number | boolean | ReadonlyJSONObject | ReadonlyJSONArray; type ReasoningPart = { type: "reasoning"; text: string; status: TextStatus; parentId?: string; }; declare type ReconnectOnError = (err: Error) => boolean | 1 | 2; declare class Redis extends Commander implements DataHandledable { static Cluster: typeof Cluster; static Command: typeof Command; private static defaultOptions; static createClient(...args: ConstructorParameters): Redis; options: RedisOptions; status: RedisStatus; stream: NetStream; isCluster: boolean; condition: Condition | null; commandQueue: Deque; private connector; private reconnectTimeout; private offlineQueue; private connectionEpoch; private retryAttempts; private manuallyClosing; private socketTimeoutTimer; private _autoPipelines; private _runningAutoPipelines; constructor(port: number, host: string, options: RedisOptions); constructor(path: string, options: RedisOptions); constructor(port: number, options: RedisOptions); constructor(port: number, host: string); constructor(options: RedisOptions); constructor(port: number); constructor(path: string); constructor(); get autoPipelineQueueSize(): number; connect(callback?: Callback): Promise; private _connect; disconnect(reconnect?: boolean): void; end(): void; duplicate(override?: Partial): Redis; get mode(): "monitor" | "normal" | "subscriber"; monitor(callback?: Callback): Promise; sendCommand(command: Command, stream?: WriteableStream): unknown; private getBlockingTimeoutInMs; private getConfiguredBlockingTimeout; private setSocketTimeout; scanStream(options?: ScanStreamOptions): ScanStream; scanBufferStream(options?: ScanStreamOptions): ScanStream; sscanStream(key: string, options?: ScanStreamOptions): ScanStream; sscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; hscanStream(key: string, options?: ScanStreamOptions): ScanStream; hscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; zscanStream(key: string, options?: ScanStreamOptions): ScanStream; zscanBufferStream(key: string, options?: ScanStreamOptions): ScanStream; silentEmit(eventName: string, arg?: unknown): boolean; recoverFromFatalError(_commandError: Error, err: Error, options: FlushQueueOptions): void; handleReconnection(err: Error, item: CommandItem): void; _getServerAddress(): { address: string; port: number | undefined; }; private _buildCommandContext; _buildBatchContext(batchSize: number): BatchOperationContext; private _getDescription; private resetCommandQueue; private resetOfflineQueue; private parseOptions; private setStatus; private createScanStream; private flushQueue; private _readyCheck; } interface Redis extends EventEmitter { on(event: "message", cb: (channel: string, message: string) => void): this; once(event: "message", cb: (channel: string, message: string) => void): this; on(event: "messageBuffer", cb: (channel: Buffer, message: Buffer) => void): this; once(event: "messageBuffer", cb: (channel: Buffer, message: Buffer) => void): this; on(event: "pmessage", cb: (pattern: string, channel: string, message: string) => void): this; once(event: "pmessage", cb: (pattern: string, channel: string, message: string) => void): this; on(event: "pmessageBuffer", cb: (pattern: string, channel: Buffer, message: Buffer) => void): this; once(event: "pmessageBuffer", cb: (pattern: string, channel: Buffer, message: Buffer) => void): this; on(event: "error", cb: (error: Error) => void): this; once(event: "error", cb: (error: Error) => void): this; on(event: RedisStatus, cb: () => void): this; once(event: RedisStatus, cb: () => void): this; on(event: string | symbol, listener: (...args: any[]) => void): this; once(event: string | symbol, listener: (...args: any[]) => void): this; } interface Redis extends Transaction { } interface RedisCommander { call(command: string, callback?: Callback): Result; call(command: string, args: (string | Buffer | number)[], callback?: Callback): Result; call(...args: [ command: string, ...args: (string | Buffer | number)[], callback: Callback ]): Result; call(...args: [ command: string, ...args: (string | Buffer | number)[] ]): Result; callBuffer(command: string, callback?: Callback): Result; callBuffer(command: string, args: (string | Buffer | number)[], callback?: Callback): Result; callBuffer(...args: [ command: string, ...args: (string | Buffer | number)[], callback: Callback ]): Result; callBuffer(...args: [ command: string, ...args: (string | Buffer | number)[] ]): Result; acl(subcommand: "CAT", callback?: Callback): Result; acl(subcommand: "CAT", categoryname: string | Buffer, callback?: Callback): Result; acl(...args: [ subcommand: "DELUSER", ...usernames: (string | Buffer)[], callback: Callback ]): Result; acl(...args: [ subcommand: "DELUSER", ...usernames: (string | Buffer)[] ]): Result; acl(subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, callback?: Callback): Result; aclBuffer(subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, callback?: Callback): Result; acl(...args: [ subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, ...args: (string | Buffer | number)[], callback: Callback ]): Result; aclBuffer(...args: [ subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, ...args: (string | Buffer | number)[], callback: Callback ]): Result; acl(...args: [ subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, ...args: (string | Buffer | number)[] ]): Result; aclBuffer(...args: [ subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, ...args: (string | Buffer | number)[] ]): Result; acl(subcommand: "GENPASS", callback?: Callback): Result; aclBuffer(subcommand: "GENPASS", callback?: Callback): Result; acl(subcommand: "GENPASS", bits: number | string, callback?: Callback): Result; aclBuffer(subcommand: "GENPASS", bits: number | string, callback?: Callback): Result; acl(subcommand: "GETUSER", username: string | Buffer, callback?: Callback): Result; aclBuffer(subcommand: "GETUSER", username: string | Buffer, callback?: Callback): Result; acl(subcommand: "HELP", callback?: Callback): Result; acl(subcommand: "LIST", callback?: Callback): Result; aclBuffer(subcommand: "LIST", callback?: Callback): Result; acl(subcommand: "LOAD", callback?: Callback<"OK">): Result<"OK", Context>; acl(subcommand: "LOG", callback?: Callback): Result; acl(subcommand: "LOG", count: number | string, callback?: Callback): Result; acl(subcommand: "LOG", reset: "RESET", callback?: Callback): Result; acl(subcommand: "SAVE", callback?: Callback<"OK">): Result<"OK", Context>; acl(subcommand: "SETUSER", username: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context>; acl(...args: [ subcommand: "SETUSER", username: string | Buffer, ...rules: (string | Buffer)[], callback: Callback<"OK"> ]): Result<"OK", Context>; acl(...args: [ subcommand: "SETUSER", username: string | Buffer, ...rules: (string | Buffer)[] ]): Result<"OK", Context>; acl(subcommand: "USERS", callback?: Callback): Result; aclBuffer(subcommand: "USERS", callback?: Callback): Result; acl(subcommand: "WHOAMI", callback?: Callback): Result; aclBuffer(subcommand: "WHOAMI", callback?: Callback): Result; append(key: RedisKey, value: string | Buffer | number, callback?: Callback): Result; arcount(key: RedisKey, callback?: Callback): Result; ardel(...args: [ key: RedisKey, ...indices: (number | string)[], callback: Callback ]): Result; ardel(...args: [ key: RedisKey, ...indices: (number | string)[] ]): Result; ardelrange(...args: [ key: RedisKey, ...ranges: (string | number)[], callback: Callback ]): Result; ardelrange(...args: [ key: RedisKey, ...ranges: (string | number)[] ]): Result; arget(key: RedisKey, index: number | string, callback?: Callback): Result; argetBuffer(key: RedisKey, index: number | string, callback?: Callback): Result; argetrange(key: RedisKey, start: number | string, end: number | string, callback?: Callback<(string | null)[]>): Result<(string | null)[], Context>; argetrangeBuffer(key: RedisKey, start: number | string, end: number | string, callback?: Callback<(Buffer | null)[]>): Result<(Buffer | null)[], Context>; argrep(key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, callback: Callback): Result; argrep(...args: [ key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, ...args: RedisValue[], callback: Callback> ]): Result, Context>; argrep(...args: [ key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, ...args: T ]): Result<'WITHVALUES' extends T[number] ? Array<[ index: number, value: string ]> : number[], Context>; argrepBuffer(key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, callback: Callback): Result; argrepBuffer(...args: [ key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, ...args: RedisValue[], callback: Callback> ]): Result, Context>; argrepBuffer(...args: [ key: RedisKey, start: number | string, end: number | string, predicate: 'EXACT' | 'GLOB' | 'MATCH' | 'RE', value: RedisValue, ...args: T ]): Result<'WITHVALUES' extends T[number] ? Array<[ index: number, value: Buffer ]> : number[], Context>; arinfo(key: RedisKey, callback?: Callback<(string | number)[]>): Result<(string | number)[], Context>; arinfoBuffer(key: RedisKey, callback?: Callback<(Buffer | number)[]>): Result<(Buffer | number)[], Context>; arinfo(key: RedisKey, full: 'FULL', callback?: Callback<(string | number)[]>): Result<(string | number)[], Context>; arinfoBuffer(key: RedisKey, full: 'FULL', callback?: Callback<(Buffer | number)[]>): Result<(Buffer | number)[], Context>; arinsert(...args: [ key: RedisKey, ...values: (string | Buffer | number)[], callback: Callback ]): Result; arinsert(...args: [ key: RedisKey, ...values: (string | Buffer | number)[] ]): Result; arlastitems(key: RedisKey, count: number | string, callback?: Callback<(string | null)[]>): Result<(string | null)[], Context>; arlastitemsBuffer(key: RedisKey, count: number | string, callback?: Callback<(Buffer | null)[]>): Result<(Buffer | null)[], Context>; arlastitems(key: RedisKey, count: number | string, rev: 'REV', callback?: Callback<(string | null)[]>): Result<(string | null)[], Context>; arlastitemsBuffer(key: RedisKey, count: number | string, rev: 'REV', callback?: Callback<(Buffer | null)[]>): Result<(Buffer | null)[], Context>; arlen(key: RedisKey, callback?: Callback): Result; armget(...args: [ key: RedisKey, ...indices: (number | string)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; armgetBuffer(...args: [ key: RedisKey, ...indices: (number | string)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; armget(...args: [ key: RedisKey, ...indices: (number | string)[] ]): Result<(string | null)[], Context>; armgetBuffer(...args: [ key: RedisKey, ...indices: (number | string)[] ]): Result<(Buffer | null)[], Context>; armset(...args: [ key: RedisKey, ...data: (string | Buffer | number)[], callback: Callback ]): Result; armset(...args: [ key: RedisKey, ...data: (string | Buffer | number)[] ]): Result; arnext(key: RedisKey, callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, sum: 'SUM', callback?: Callback): Result; aropBuffer(key: RedisKey, start: number | string, end: number | string, sum: 'SUM', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, min: 'MIN', callback?: Callback): Result; aropBuffer(key: RedisKey, start: number | string, end: number | string, min: 'MIN', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, max: 'MAX', callback?: Callback): Result; aropBuffer(key: RedisKey, start: number | string, end: number | string, max: 'MAX', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, and: 'AND', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, or: 'OR', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, xor: 'XOR', callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, match: 'MATCH', value: string | Buffer | number, callback?: Callback): Result; arop(key: RedisKey, start: number | string, end: number | string, used: 'USED', callback?: Callback): Result; arring(...args: [ key: RedisKey, size: number | string, ...values: (string | Buffer | number)[], callback: Callback ]): Result; arring(...args: [ key: RedisKey, size: number | string, ...values: (string | Buffer | number)[] ]): Result; arscan(key: RedisKey, start: number | string, end: number | string, callback?: Callback>): Result, Context>; arscanBuffer(key: RedisKey, start: number | string, end: number | string, callback?: Callback>): Result, Context>; arscan(key: RedisKey, start: number | string, end: number | string, limitToken: 'LIMIT', limit: number | string, callback?: Callback>): Result, Context>; arscanBuffer(key: RedisKey, start: number | string, end: number | string, limitToken: 'LIMIT', limit: number | string, callback?: Callback>): Result, Context>; arseek(key: RedisKey, index: number | string, callback?: Callback): Result; arset(...args: [ key: RedisKey, index: number | string, ...values: (string | Buffer | number)[], callback: Callback ]): Result; arset(...args: [ key: RedisKey, index: number | string, ...values: (string | Buffer | number)[] ]): Result; asking(callback?: Callback<"OK">): Result<"OK", Context>; auth(password: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context>; auth(username: string | Buffer, password: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context>; bgrewriteaof(callback?: Callback): Result; bgrewriteaofBuffer(callback?: Callback): Result; bgsave(callback?: Callback<"OK">): Result<"OK", Context>; bgsave(schedule: "SCHEDULE", callback?: Callback<"OK">): Result<"OK", Context>; bitcount(key: RedisKey, callback?: Callback): Result; bitcount(key: RedisKey, start: number | string, end: number | string, callback?: Callback): Result; bitcount(key: RedisKey, start: number | string, end: number | string, byte: "BYTE", callback?: Callback): Result; bitcount(key: RedisKey, start: number | string, end: number | string, bit: "BIT", callback?: Callback): Result; bitfield(key: RedisKey, encodingOffsetToken: "GET", encoding: string | Buffer, offset: number | string, callback?: Callback): Result; bitfield(key: RedisKey, encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, callback?: Callback): Result; bitfield(key: RedisKey, encodingOffsetIncrementToken: "INCRBY", encoding: string | Buffer, offset: number | string, increment: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", wrap: "WRAP", encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", wrap: "WRAP", encodingOffsetIncrementToken: "INCRBY", encoding: string | Buffer, offset: number | string, increment: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", sat: "SAT", encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", sat: "SAT", encodingOffsetIncrementToken: "INCRBY", encoding: string | Buffer, offset: number | string, increment: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", fail: "FAIL", encodingOffsetValueToken: "SET", encoding: string | Buffer, offset: number | string, value: number | string, callback?: Callback): Result; bitfield(key: RedisKey, overflow: "OVERFLOW", fail: "FAIL", encodingOffsetIncrementToken: "INCRBY", encoding: string | Buffer, offset: number | string, increment: number | string, callback?: Callback): Result; bitfield_ro(...args: [ key: RedisKey, encodingOffsetToken: "GET", ...encodingOffsets: (string | Buffer | number)[], callback: Callback ]): Result; bitfield_ro(...args: [ key: RedisKey, encodingOffsetToken: "GET", ...encodingOffsets: (string | Buffer | number)[] ]): Result; bitop(...args: [ operation: string | Buffer, destkey: RedisKey, ...keys: RedisKey[], callback: Callback ]): Result; bitop(...args: [ operation: string | Buffer, destkey: RedisKey, keys: RedisKey[], callback: Callback ]): Result; bitop(...args: [ operation: string | Buffer, destkey: RedisKey, ...keys: RedisKey[] ]): Result; bitop(...args: [ operation: string | Buffer, destkey: RedisKey, keys: RedisKey[] ]): Result; bitpos(key: RedisKey, bit: number | string, callback?: Callback): Result; bitpos(key: RedisKey, bit: number | string, start: number | string, callback?: Callback): Result; bitpos(key: RedisKey, bit: number | string, start: number | string, end: number | string, callback?: Callback): Result; bitpos(key: RedisKey, bit: number | string, start: number | string, end: number | string, byte: "BYTE", callback?: Callback): Result; bitpos(key: RedisKey, bit: number | string, start: number | string, end: number | string, bit1: "BIT", callback?: Callback): Result; blmove(source: RedisKey, destination: RedisKey, left: "LEFT", left1: "LEFT", timeout: number | string, callback?: Callback): Result; blmoveBuffer(source: RedisKey, destination: RedisKey, left: "LEFT", left1: "LEFT", timeout: number | string, callback?: Callback): Result; blmove(source: RedisKey, destination: RedisKey, left: "LEFT", right: "RIGHT", timeout: number | string, callback?: Callback): Result; blmoveBuffer(source: RedisKey, destination: RedisKey, left: "LEFT", right: "RIGHT", timeout: number | string, callback?: Callback): Result; blmove(source: RedisKey, destination: RedisKey, right: "RIGHT", left: "LEFT", timeout: number | string, callback?: Callback): Result; blmoveBuffer(source: RedisKey, destination: RedisKey, right: "RIGHT", left: "LEFT", timeout: number | string, callback?: Callback): Result; blmove(source: RedisKey, destination: RedisKey, right: "RIGHT", right1: "RIGHT", timeout: number | string, callback?: Callback): Result; blmoveBuffer(source: RedisKey, destination: RedisKey, right: "RIGHT", right1: "RIGHT", timeout: number | string, callback?: Callback): Result; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT" ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT" ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT" ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT" ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; blmpopBuffer(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; blpop(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ string, string ] | null> ]): Result<[ string, string ] | null, Context>; blpopBuffer(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ Buffer, Buffer ] | null> ]): Result<[ Buffer, Buffer ] | null, Context>; blpop(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ string, string ] | null> ]): Result<[ string, string ] | null, Context>; blpopBuffer(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ Buffer, Buffer ] | null> ]): Result<[ Buffer, Buffer ] | null, Context>; blpop(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ string, string ] | null, Context>; blpopBuffer(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ Buffer, Buffer ] | null, Context>; blpop(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ string, string ] | null, Context>; blpopBuffer(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ Buffer, Buffer ] | null, Context>; brpop(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ string, string ] | null> ]): Result<[ string, string ] | null, Context>; brpopBuffer(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ Buffer, Buffer ] | null> ]): Result<[ Buffer, Buffer ] | null, Context>; brpop(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ string, string ] | null> ]): Result<[ string, string ] | null, Context>; brpopBuffer(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ Buffer, Buffer ] | null> ]): Result<[ Buffer, Buffer ] | null, Context>; brpop(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ string, string ] | null, Context>; brpopBuffer(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ Buffer, Buffer ] | null, Context>; brpop(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ string, string ] | null, Context>; brpopBuffer(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ Buffer, Buffer ] | null, Context>; brpoplpush(source: RedisKey, destination: RedisKey, timeout: number | string, callback?: Callback): Result; brpoplpushBuffer(source: RedisKey, destination: RedisKey, timeout: number | string, callback?: Callback): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], min: "MIN", callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], min: "MIN", callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], min: "MIN" ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], min: "MIN" ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string, callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string, callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], max: "MAX", callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], max: "MAX", callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], max: "MAX" ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], max: "MAX" ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string, callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string, callback: Callback ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, ...keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string ]): Result; bzmpop(...args: [ timeout: number | string, numkeys: number | string, keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string ]): Result; bzpopmax(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ key: string, member: string, score: string ] | null> ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopmaxBuffer(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ key: Buffer, member: Buffer, score: Buffer ] | null> ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmax(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ key: string, member: string, score: string ] | null> ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopmaxBuffer(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ key: Buffer, member: Buffer, score: Buffer ] | null> ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmax(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopmaxBuffer(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmax(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopmaxBuffer(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmin(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ key: string, member: string, score: string ] | null> ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopminBuffer(...args: [ ...keys: RedisKey[], timeout: number | string, callback: Callback<[ key: Buffer, member: Buffer, score: Buffer ] | null> ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmin(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ key: string, member: string, score: string ] | null> ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopminBuffer(...args: [ keys: RedisKey[], timeout: number | string, callback: Callback<[ key: Buffer, member: Buffer, score: Buffer ] | null> ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmin(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopminBuffer(...args: [ ...keys: RedisKey[], timeout: number | string ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; bzpopmin(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ key: string, member: string, score: string ] | null, Context>; bzpopminBuffer(...args: [ keys: RedisKey[], timeout: number | string ]): Result<[ key: Buffer, member: Buffer, score: Buffer ] | null, Context>; client(subcommand: "CACHING", yes: "YES", callback?: Callback<"OK">): Result<"OK", Context>; client(subcommand: "CACHING", no: "NO", callback?: Callback<"OK">): Result<"OK", Context>; client(subcommand: "GETNAME", callback?: Callback): Result; clientBuffer(subcommand: "GETNAME", callback?: Callback): Result; client(subcommand: "GETREDIR", callback?: Callback): Result; client(subcommand: "HELP", callback?: Callback): Result; client(subcommand: "ID", callback?: Callback): Result; client(subcommand: "INFO", callback?: Callback): Result; clientBuffer(subcommand: "INFO", callback?: Callback): Result; client(...args: [ subcommand: "KILL", ...args: RedisValue[], callback: Callback ]): Result; client(...args: [ subcommand: "KILL", ...args: RedisValue[] ]): Result; client(subcommand: "LIST", callback?: Callback): Result; client(...args: [ subcommand: "LIST", idToken: "ID", ...clientIds: (number | string)[], callback: Callback ]): Result; client(...args: [ subcommand: "LIST", idToken: "ID", ...clientIds: (number | string)[] ]): Result; client(subcommand: "LIST", type: "TYPE", normal: "NORMAL", callback?: Callback): Result; client(...args: [ subcommand: "LIST", type: "TYPE", normal: "NORMAL", idToken: "ID", ...clientIds: (number | string)[], callback: Callback ]): Result; client(...args: [ subcommand: "LIST", type: "TYPE", normal: "NORMAL", idToken: "ID", ...clientIds: (number | string)[] ]): Result; client(subcommand: "LIST", type: "TYPE", master: "MASTER", callback?: Callback): Result; client(...args: [ subcommand: "LIST", type: "TYPE", master: "MASTER", idToken: "ID", ...clientIds: (number | string)[], callback: Callback ]): Result; client(...args: [ subcommand: "LIST", type: "TYPE", master: "MASTER", idToken: "ID", ...clientIds: (number | string)[] ]): Result; client(subcommand: "LIST", type: "TYPE", replica: "REPLICA", callback?: Callback): Result; client(...args: [ subcommand: "LIST", type: "TYPE", replica: "REPLICA", idToken: "ID", ...clientIds: (number | string)[], callback: Callback ]): Result; client(...args: [ subcommand: "LIST", type: "TYPE", replica: "REPLICA", idToken: "ID", ...clientIds: (number | string)[] ]): Result; client(subcommand: "LIST", type: "TYPE", pubsub: "PUBSUB", callback?: Callback): Result; client(...args: [ subcommand: "LIST", type: "TYPE", pubsub: "PUBSUB", idToken: "ID", ...clientIds: (number | string)[], callback: Callback ]): Result; client(...args: [ subcommand: "LIST", type: "TYPE", pubsub: "PUBSUB", idToken: "ID", ...clientIds: (number | string)[] ]): Result; client(subcommand: "NO-EVICT", on: "ON", callback?: Callback): Result; client(subcommand: "NO-EVICT", off: "OFF", callback?: Callback): Result; client(subcommand: "PAUSE", timeout: number | string, callback?: Callback<"OK">): Result<"OK", Context>; client(subcommand: "PAUSE", timeout: number | string, write: "WRITE", callback?: Callback<"OK">): Result<"OK", Context>; client(subcommand: "PAUSE", timeout: number | string, all: "ALL", callback?: Callback<"OK">): Result<"OK", Context>; client(subcommand: "REPLY", on: "ON", callback?: Callback): Result; client(subcommand: "REPLY", off: "OFF", callback?: Callback): Result; client(subcommand: "REPLY", skip: "SKIP", callback?: Callback): Result; client(subcommand: "SETNAME", connectionName: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context>; client(...args: [ subcommand: "TRACKING", ...args: RedisValue[], callback: Callback ]): Result; client(...args: [ subcommand: "TRACKING", ...args: RedisValue[] ]): Result; client(subcommand: "TRACKINGINFO", callback?: Callback): Result; clientBuffer(subcommand: "TRACKINGINFO", callback?: Callback): Result; client(subcommand: "UNBLOCK", clientId: number | string, callback?: Callback): Result; client(subcommand: "UNBLOCK", clientId: number | string, timeout: "TIMEOUT", callback?: Callback): Result; client(subcommand: "UNBLOCK", clientId: number | string, error: "ERROR", callback?: Callback): Result; client(subcommand: "UNPAUSE", callback?: Callback<"OK">): Result<"OK", Context>; cluster(...args: [ subcommand: "ADDSLOTS", ...slots: (number | string)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "ADDSLOTS", slots: (number | string)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "ADDSLOTS", ...slots: (number | string)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "ADDSLOTS", slots: (number | string)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "ADDSLOTSRANGE", ...startSlotEndSlots: (string | number)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "ADDSLOTSRANGE", ...startSlotEndSlots: (string | number)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(subcommand: "BUMPEPOCH", callback?: Callback<"BUMPED" | "STILL">): Result<"BUMPED" | "STILL", Context>; cluster(subcommand: "COUNT-FAILURE-REPORTS", nodeId: string | Buffer | number, callback?: Callback): Result; cluster(subcommand: "COUNTKEYSINSLOT", slot: number | string, callback?: Callback): Result; cluster(...args: [ subcommand: "DELSLOTS", ...slots: (number | string)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "DELSLOTS", slots: (number | string)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "DELSLOTS", ...slots: (number | string)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "DELSLOTS", slots: (number | string)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "DELSLOTSRANGE", ...startSlotEndSlots: (string | number)[], callback: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]> ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(...args: [ subcommand: "DELSLOTSRANGE", ...startSlotEndSlots: (string | number)[] ]): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(subcommand: "FAILOVER", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "FAILOVER", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "FAILOVER", takeover: "TAKEOVER", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "FLUSHSLOTS", callback?: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]>): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; cluster(subcommand: "FORGET", nodeId: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "GETKEYSINSLOT", slot: number | string, count: number | string, callback?: Callback): Result; cluster(subcommand: "HELP", callback?: Callback): Result; cluster(subcommand: "INFO", callback?: Callback): Result; cluster(subcommand: "KEYSLOT", key: string | Buffer, callback?: Callback): Result; cluster(subcommand: "LINKS", callback?: Callback): Result; cluster(subcommand: "MEET", ip: string | Buffer, port: number | string, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "MYID", callback?: Callback): Result; cluster(subcommand: "NODES", callback?: Callback): Result; cluster(subcommand: "REPLICAS", nodeId: string | Buffer | number, callback?: Callback): Result; cluster(subcommand: "REPLICATE", nodeId: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "RESET", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "RESET", hard: "HARD", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "RESET", soft: "SOFT", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SAVECONFIG", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SET-CONFIG-EPOCH", configEpoch: number | string, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SETSLOT", slot: number | string, nodeIdToken: "IMPORTING", nodeId: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SETSLOT", slot: number | string, nodeIdToken: "MIGRATING", nodeId: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SETSLOT", slot: number | string, nodeIdToken: "NODE", nodeId: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SETSLOT", slot: number | string, stable: "STABLE", callback?: Callback<"OK">): Result<"OK", Context>; cluster(subcommand: "SHARDS", callback?: Callback): Result; cluster(subcommand: "SLAVES", nodeId: string | Buffer | number, callback?: Callback): Result; cluster(subcommand: "SLOTS", callback?: Callback<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][]>): Result<[ startSlotRange: number, endSlotRange: number, ...nodes: [ host: string, port: number, nodeId: string, info: unknown[] ][] ][], Context>; command(subcommand: "COUNT", callback?: Callback): Result; command(subcommand: "DOCS", callback?: Callback): Result; command(...args: [ subcommand: "DOCS", ...commandNames: (string | Buffer)[], callback: Callback ]): Result; command(...args: [ subcommand: "DOCS", ...commandNames: (string | Buffer)[] ]): Result; command(subcommand: "GETKEYS", callback?: Callback): Result; command(subcommand: "GETKEYSANDFLAGS", callback?: Callback): Result; command(subcommand: "HELP", callback?: Callback): Result; command(subcommand: "INFO", callback?: Callback): Result; command(...args: [ subcommand: "INFO", ...commandNames: (string | Buffer)[], callback: Callback ]): Result; command(...args: [ subcommand: "INFO", ...commandNames: (string | Buffer)[] ]): Result; command(subcommand: "LIST", callback?: Callback): Result; command(subcommand: "LIST", filterby: "FILTERBY", moduleNameToken: "MODULE", moduleName: string | Buffer, callback?: Callback): Result; command(subcommand: "LIST", filterby: "FILTERBY", categoryToken: "ACLCAT", category: string | Buffer, callback?: Callback): Result; command(subcommand: "LIST", filterby: "FILTERBY", patternToken: "PATTERN", pattern: string, callback?: Callback): Result; config(...args: [ subcommand: "GET", ...parameters: (string | Buffer)[], callback: Callback ]): Result; config(...args: [ subcommand: "GET", ...parameters: (string | Buffer)[] ]): Result; config(subcommand: "HELP", callback?: Callback): Result; config(subcommand: "RESETSTAT", callback?: Callback): Result; config(subcommand: "REWRITE", callback?: Callback): Result; config(...args: [ subcommand: "SET", ...parameterValues: (string | Buffer | number)[], callback: Callback ]): Result; config(...args: [ subcommand: "SET", ...parameterValues: (string | Buffer | number)[] ]): Result; copy(source: RedisKey, destination: RedisKey, callback?: Callback): Result; copy(source: RedisKey, destination: RedisKey, replace: "REPLACE", callback?: Callback): Result; copy(source: RedisKey, destination: RedisKey, destinationDbToken: "DB", destinationDb: number | string, callback?: Callback): Result; copy(source: RedisKey, destination: RedisKey, destinationDbToken: "DB", destinationDb: number | string, replace: "REPLACE", callback?: Callback): Result; dbsize(callback?: Callback): Result; debug(subcommand: string, callback?: Callback): Result; debug(...args: [ subcommand: string, ...args: (string | Buffer | number)[], callback: Callback ]): Result; debug(...args: [ subcommand: string, ...args: (string | Buffer | number)[] ]): Result; decr(key: RedisKey, callback?: Callback): Result; decrby(key: RedisKey, decrement: number | string, callback?: Callback): Result; del(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; del(...args: [ keys: RedisKey[], callback: Callback ]): Result; del(...args: [ ...keys: RedisKey[] ]): Result; del(...args: [ keys: RedisKey[] ]): Result; discard(callback?: Callback<"OK">): Result<"OK", Context>; dump(key: RedisKey, callback?: Callback): Result; dumpBuffer(key: RedisKey, callback?: Callback): Result; echo(message: string | Buffer, callback?: Callback): Result; echoBuffer(message: string | Buffer, callback?: Callback): Result; eval(script: string | Buffer, numkeys: number | string, callback?: Callback): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...args: (string | Buffer | number)[], callback: Callback ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...args: (string | Buffer | number)[] ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...keys: RedisKey[] ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, keys: RedisKey[] ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; eval(...args: [ script: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; eval_ro(...args: [ script: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; eval_ro(...args: [ script: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; evalsha(sha1: string | Buffer, numkeys: number | string, callback?: Callback): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: (string | Buffer | number)[], callback: Callback ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: (string | Buffer | number)[] ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...keys: RedisKey[] ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, keys: RedisKey[] ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; evalsha(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; evalsha_ro(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; evalsha_ro(...args: [ sha1: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; exec(callback?: Callback<[ error: Error | null, result: unknown ][] | null>): Promise<[ error: Error | null, result: unknown ][] | null>; exists(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; exists(...args: [ keys: RedisKey[], callback: Callback ]): Result; exists(...args: [ ...keys: RedisKey[] ]): Result; exists(...args: [ keys: RedisKey[] ]): Result; expire(key: RedisKey, seconds: number | string, callback?: Callback): Result; expire(key: RedisKey, seconds: number | string, nx: "NX", callback?: Callback): Result; expire(key: RedisKey, seconds: number | string, xx: "XX", callback?: Callback): Result; expire(key: RedisKey, seconds: number | string, gt: "GT", callback?: Callback): Result; expire(key: RedisKey, seconds: number | string, lt: "LT", callback?: Callback): Result; expireat(key: RedisKey, unixTimeSeconds: number | string, callback?: Callback): Result; expireat(key: RedisKey, unixTimeSeconds: number | string, nx: "NX", callback?: Callback): Result; expireat(key: RedisKey, unixTimeSeconds: number | string, xx: "XX", callback?: Callback): Result; expireat(key: RedisKey, unixTimeSeconds: number | string, gt: "GT", callback?: Callback): Result; expireat(key: RedisKey, unixTimeSeconds: number | string, lt: "LT", callback?: Callback): Result; expiretime(key: RedisKey, callback?: Callback): Result; failover(callback?: Callback<"OK">): Result<"OK", Context>; failover(millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; failover(abort: "ABORT", millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, abort: "ABORT", millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, force: "FORCE", millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; failover(targetToken: "TO", host: string | Buffer, port: number | string, force: "FORCE", abort: "ABORT", millisecondsToken: "TIMEOUT", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; fcall(...args: [ function: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; fcall(...args: [ function: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; fcall_ro(...args: [ function: string | Buffer, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; fcall_ro(...args: [ function: string | Buffer, numkeys: number | string, ...args: RedisValue[] ]): Result; flushall(callback?: Callback<"OK">): Result<"OK", Context>; flushall(async: "ASYNC", callback?: Callback<"OK">): Result<"OK", Context>; flushall(sync: "SYNC", callback?: Callback<"OK">): Result<"OK", Context>; flushdb(callback?: Callback<"OK">): Result<"OK", Context>; flushdb(async: "ASYNC", callback?: Callback<"OK">): Result<"OK", Context>; flushdb(sync: "SYNC", callback?: Callback<"OK">): Result<"OK", Context>; function(subcommand: "DELETE", libraryName: string | Buffer, callback?: Callback): Result; functionBuffer(subcommand: "DELETE", libraryName: string | Buffer, callback?: Callback): Result; function(subcommand: "DUMP", callback?: Callback): Result; functionBuffer(subcommand: "DUMP", callback?: Callback): Result; function(subcommand: "FLUSH", callback?: Callback): Result; functionBuffer(subcommand: "FLUSH", callback?: Callback): Result; function(subcommand: "FLUSH", async: "ASYNC", callback?: Callback): Result; functionBuffer(subcommand: "FLUSH", async: "ASYNC", callback?: Callback): Result; function(subcommand: "FLUSH", sync: "SYNC", callback?: Callback): Result; functionBuffer(subcommand: "FLUSH", sync: "SYNC", callback?: Callback): Result; function(subcommand: "HELP", callback?: Callback): Result; function(subcommand: "KILL", callback?: Callback): Result; functionBuffer(subcommand: "KILL", callback?: Callback): Result; function(subcommand: "LIST", callback?: Callback): Result; function(subcommand: "LIST", withcode: "WITHCODE", callback?: Callback): Result; function(subcommand: "LIST", libraryNamePatternToken: "LIBRARYNAME", libraryNamePattern: string | Buffer, callback?: Callback): Result; function(subcommand: "LIST", libraryNamePatternToken: "LIBRARYNAME", libraryNamePattern: string | Buffer, withcode: "WITHCODE", callback?: Callback): Result; function(subcommand: "LOAD", functionCode: string | Buffer, callback?: Callback): Result; functionBuffer(subcommand: "LOAD", functionCode: string | Buffer, callback?: Callback): Result; function(subcommand: "LOAD", replace: "REPLACE", functionCode: string | Buffer, callback?: Callback): Result; functionBuffer(subcommand: "LOAD", replace: "REPLACE", functionCode: string | Buffer, callback?: Callback): Result; function(subcommand: "RESTORE", serializedValue: string | Buffer | number, callback?: Callback): Result; functionBuffer(subcommand: "RESTORE", serializedValue: string | Buffer | number, callback?: Callback): Result; function(subcommand: "RESTORE", serializedValue: string | Buffer | number, flush: "FLUSH", callback?: Callback): Result; functionBuffer(subcommand: "RESTORE", serializedValue: string | Buffer | number, flush: "FLUSH", callback?: Callback): Result; function(subcommand: "RESTORE", serializedValue: string | Buffer | number, append: "APPEND", callback?: Callback): Result; functionBuffer(subcommand: "RESTORE", serializedValue: string | Buffer | number, append: "APPEND", callback?: Callback): Result; function(subcommand: "RESTORE", serializedValue: string | Buffer | number, replace: "REPLACE", callback?: Callback): Result; functionBuffer(subcommand: "RESTORE", serializedValue: string | Buffer | number, replace: "REPLACE", callback?: Callback): Result; function(subcommand: "STATS", callback?: Callback): Result; geoadd(...args: [ key: RedisKey, ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geoadd(...args: [ key: RedisKey, ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geoadd(...args: [ key: RedisKey, nx: "NX", ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, nx: "NX", ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geoadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geoadd(...args: [ key: RedisKey, xx: "XX", ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, xx: "XX", ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geoadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[], callback: Callback ]): Result; geoadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", ...longitudeLatitudeMembers: (string | Buffer | number)[] ]): Result; geodist(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, callback?: Callback): Result; geodistBuffer(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, callback?: Callback): Result; geodist(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, m: "M", callback?: Callback): Result; geodistBuffer(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, m: "M", callback?: Callback): Result; geodist(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, km: "KM", callback?: Callback): Result; geodistBuffer(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, km: "KM", callback?: Callback): Result; geodist(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, ft: "FT", callback?: Callback): Result; geodistBuffer(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, ft: "FT", callback?: Callback): Result; geodist(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, mi: "MI", callback?: Callback): Result; geodistBuffer(key: RedisKey, member1: string | Buffer | number, member2: string | Buffer | number, mi: "MI", callback?: Callback): Result; geohash(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; geohashBuffer(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; geohash(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; geohashBuffer(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; geohash(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; geohashBuffer(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; geohash(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; geohashBuffer(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; geopos(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback<([ longitude: string, latitude: string ] | null)[]> ]): Result<([ longitude: string, latitude: string ] | null)[], Context>; geopos(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback<([ longitude: string, latitude: string ] | null)[]> ]): Result<([ longitude: string, latitude: string ] | null)[], Context>; geopos(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result<([ longitude: string, latitude: string ] | null)[], Context>; geopos(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result<([ longitude: string, latitude: string ] | null)[], Context>; georadius(...args: [ key: RedisKey, longitude: number | string, latitude: number | string, radius: number | string, ...args: RedisValue[], callback: Callback ]): Result; georadius(...args: [ key: RedisKey, longitude: number | string, latitude: number | string, radius: number | string, ...args: RedisValue[] ]): Result; georadius_ro(...args: [ key: RedisKey, longitude: number | string, latitude: number | string, radius: number | string, ...args: RedisValue[], callback: Callback ]): Result; georadius_ro(...args: [ key: RedisKey, longitude: number | string, latitude: number | string, radius: number | string, ...args: RedisValue[] ]): Result; georadiusbymember(...args: [ key: RedisKey, member: string | Buffer | number, radius: number | string, ...args: RedisValue[], callback: Callback ]): Result; georadiusbymember(...args: [ key: RedisKey, member: string | Buffer | number, radius: number | string, ...args: RedisValue[] ]): Result; georadiusbymember_ro(...args: [ key: RedisKey, member: string | Buffer | number, radius: number | string, ...args: RedisValue[], callback: Callback ]): Result; georadiusbymember_ro(...args: [ key: RedisKey, member: string | Buffer | number, radius: number | string, ...args: RedisValue[] ]): Result; geosearch(...args: [ key: RedisKey, ...args: RedisValue[], callback: Callback ]): Result; geosearch(...args: [ key: RedisKey, ...args: RedisValue[] ]): Result; geosearchstore(...args: [ destination: RedisKey, source: RedisKey, ...args: RedisValue[], callback: Callback ]): Result; geosearchstore(...args: [ destination: RedisKey, source: RedisKey, ...args: RedisValue[] ]): Result; get(key: RedisKey, callback?: Callback): Result; getBuffer(key: RedisKey, callback?: Callback): Result; getbit(key: RedisKey, offset: number | string, callback?: Callback): Result; getdel(key: RedisKey, callback?: Callback): Result; getdelBuffer(key: RedisKey, callback?: Callback): Result; getex(key: RedisKey, callback?: Callback): Result; getexBuffer(key: RedisKey, callback?: Callback): Result; getex(key: RedisKey, secondsToken: "EX", seconds: number | string, callback?: Callback): Result; getexBuffer(key: RedisKey, secondsToken: "EX", seconds: number | string, callback?: Callback): Result; getex(key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, callback?: Callback): Result; getexBuffer(key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, callback?: Callback): Result; getex(key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, callback?: Callback): Result; getexBuffer(key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, callback?: Callback): Result; getex(key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, callback?: Callback): Result; getexBuffer(key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, callback?: Callback): Result; getex(key: RedisKey, persist: "PERSIST", callback?: Callback): Result; getexBuffer(key: RedisKey, persist: "PERSIST", callback?: Callback): Result; getrange(key: RedisKey, start: number | string, end: number | string, callback?: Callback): Result; getrangeBuffer(key: RedisKey, start: number | string, end: number | string, callback?: Callback): Result; getset(key: RedisKey, value: string | Buffer | number, callback?: Callback): Result; getsetBuffer(key: RedisKey, value: string | Buffer | number, callback?: Callback): Result; hdel(...args: [ key: RedisKey, ...fields: (string | Buffer)[], callback: Callback ]): Result; hdel(...args: [ key: RedisKey, ...fields: (string | Buffer)[] ]): Result; hello(callback?: Callback): Result; hello(protover: number | string, callback?: Callback): Result; hello(protover: number | string, clientnameToken: "SETNAME", clientname: string | Buffer, callback?: Callback): Result; hello(protover: number | string, usernamePasswordToken: "AUTH", username: string | Buffer, password: string | Buffer, callback?: Callback): Result; hello(protover: number | string, usernamePasswordToken: "AUTH", username: string | Buffer, password: string | Buffer, clientnameToken: "SETNAME", clientname: string | Buffer, callback?: Callback): Result; hexists(key: RedisKey, field: string | Buffer, callback?: Callback): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpire(...args: [ key: RedisKey, seconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpireat(...args: [ key: RedisKey, unixTimeSeconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hexpiretime(...args: [ key: RedisKey, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hexpiretime(...args: [ key: RedisKey, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hget(key: RedisKey, field: string | Buffer, callback?: Callback): Result; hgetBuffer(key: RedisKey, field: string | Buffer, callback?: Callback): Result; hgetall(key: RedisKey, callback?: Callback>): Result, Context>; hgetallBuffer(key: RedisKey, callback?: Callback>): Result, Context>; hgetdel(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetdelBuffer(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetdel(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetdelBuffer(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, persist: "PERSIST", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, persist: "PERSIST", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hgetex(...args: [ key: RedisKey, persist: "PERSIST", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hgetexBuffer(...args: [ key: RedisKey, persist: "PERSIST", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hincrby(key: RedisKey, field: string | Buffer, increment: number | string, callback?: Callback): Result; hincrbyfloat(key: RedisKey, field: string | Buffer, increment: number | string, callback?: Callback): Result; hincrbyfloatBuffer(key: RedisKey, field: string | Buffer, increment: number | string, callback?: Callback): Result; hkeys(key: RedisKey, callback?: Callback): Result; hkeysBuffer(key: RedisKey, callback?: Callback): Result; hlen(key: RedisKey, callback?: Callback): Result; hmget(...args: [ key: RedisKey, ...fields: (string | Buffer)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; hmgetBuffer(...args: [ key: RedisKey, ...fields: (string | Buffer)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; hmget(...args: [ key: RedisKey, ...fields: (string | Buffer)[] ]): Result<(string | null)[], Context>; hmgetBuffer(...args: [ key: RedisKey, ...fields: (string | Buffer)[] ]): Result<(Buffer | null)[], Context>; hmset(key: RedisKey, object: object, callback?: Callback<"OK">): Result<"OK", Context>; hmset(key: RedisKey, map: Map, callback?: Callback<"OK">): Result<"OK", Context>; hmset(...args: [ key: RedisKey, ...fieldValues: (string | Buffer | number)[], callback: Callback<"OK"> ]): Result<"OK", Context>; hmset(...args: [ key: RedisKey, ...fieldValues: (string | Buffer | number)[] ]): Result<"OK", Context>; hpersist(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpersist(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, nx: 'NX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, xx: 'XX', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, gt: 'GT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpire(...args: [ key: RedisKey, milliseconds: number | string, lt: 'LT', fieldsToken: 'FIELDS', numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, nx: "NX", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, nx: "NX", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, xx: "XX", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, xx: "XX", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, gt: "GT", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, gt: "GT", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, lt: "LT", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpireat(...args: [ key: RedisKey, unixTimeMilliseconds: number | string, lt: "LT", fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpexpiretime(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpexpiretime(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hpttl(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; hpttl(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hrandfield(key: RedisKey, callback?: Callback): Result; hrandfieldBuffer(key: RedisKey, callback?: Callback): Result; hrandfield(key: RedisKey, count: number | string, callback?: Callback): Result; hrandfieldBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; hrandfield(key: RedisKey, count: number | string, withvalues: "WITHVALUES", callback?: Callback): Result; hrandfieldBuffer(key: RedisKey, count: number | string, withvalues: "WITHVALUES", callback?: Callback): Result; hscan(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; hscanBuffer(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; hscan(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; hscanBuffer(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; hscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; hscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; hscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; hscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; hset(key: RedisKey, object: object, callback?: Callback): Result; hset(key: RedisKey, map: Map, callback?: Callback): Result; hset(...args: [ key: RedisKey, ...fieldValues: (string | Buffer | number)[], callback: Callback ]): Result; hset(...args: [ key: RedisKey, ...fieldValues: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fnx: "FNX", keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", secondsToken: "EX", seconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", millisecondsToken: "PX", milliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[], callback: Callback ]): Result; hsetex(...args: [ key: RedisKey, fxx: "FXX", keepttl: "KEEPTTL", fieldsToken: "FIELDS", numfields: number | string, ...data: (string | Buffer | number)[] ]): Result; hsetnx(key: RedisKey, field: string | Buffer, value: string | Buffer | number, callback?: Callback): Result; hstrlen(key: RedisKey, field: string | Buffer, callback?: Callback): Result; httl(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[], callback: Callback ]): Result; httl(...args: [ key: RedisKey, fieldsToken: "FIELDS", numfields: number | string, ...fields: (string | Buffer)[] ]): Result; hvals(key: RedisKey, callback?: Callback): Result; hvalsBuffer(key: RedisKey, callback?: Callback): Result; incr(key: RedisKey, callback?: Callback): Result; incrby(key: RedisKey, increment: number | string, callback?: Callback): Result; incrbyfloat(key: RedisKey, increment: number | string, callback?: Callback): Result; increx(...args: [ key: RedisKey, ...args: (RedisValue)[], callback: Callback<[ value: number, increment: number ] | [ value: string, increment: string ]> ]): Result<[ value: number, increment: number ] | [ value: string, increment: string ], Context>; increxBuffer(...args: [ key: RedisKey, ...args: (RedisValue)[], callback: Callback<[ value: number, increment: number ] | [ value: Buffer, increment: Buffer ]> ]): Result<[ value: number, increment: number ] | [ value: Buffer, increment: Buffer ], Context>; increx(...args: [ key: RedisKey, ...args: (RedisValue)[] ]): Result<[ value: number, increment: number ] | [ value: string, increment: string ], Context>; increxBuffer(...args: [ key: RedisKey, ...args: (RedisValue)[] ]): Result<[ value: number, increment: number ] | [ value: Buffer, increment: Buffer ], Context>; info(callback?: Callback): Result; info(...args: [ ...sections: (string | Buffer)[], callback: Callback ]): Result; info(...args: [ ...sections: (string | Buffer)[] ]): Result; keys(pattern: string, callback?: Callback): Result; keysBuffer(pattern: string, callback?: Callback): Result; lastsave(callback?: Callback): Result; latency(subcommand: "DOCTOR", callback?: Callback): Result; latency(subcommand: "GRAPH", event: string | Buffer, callback?: Callback): Result; latency(subcommand: "HELP", callback?: Callback): Result; latency(subcommand: "HISTOGRAM", callback?: Callback): Result; latency(...args: [ subcommand: "HISTOGRAM", ...commands: (string | Buffer)[], callback: Callback ]): Result; latency(...args: [ subcommand: "HISTOGRAM", ...commands: (string | Buffer)[] ]): Result; latency(subcommand: "HISTORY", event: string | Buffer, callback?: Callback): Result; latency(subcommand: "LATEST", callback?: Callback): Result; latency(subcommand: "RESET", callback?: Callback): Result; latency(...args: [ subcommand: "RESET", ...events: (string | Buffer)[], callback: Callback ]): Result; latency(...args: [ subcommand: "RESET", ...events: (string | Buffer)[] ]): Result; lcs(key1: RedisKey, key2: RedisKey, callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, lenToken: "MINMATCHLEN", len: number | string, callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, lenToken: "MINMATCHLEN", len: number | string, withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, idx: "IDX", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, idx: "IDX", withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, idx: "IDX", lenToken: "MINMATCHLEN", len: number | string, callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, idx: "IDX", lenToken: "MINMATCHLEN", len: number | string, withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", lenToken: "MINMATCHLEN", len1: number | string, callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", lenToken: "MINMATCHLEN", len1: number | string, withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", idx: "IDX", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", idx: "IDX", withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", idx: "IDX", lenToken: "MINMATCHLEN", len1: number | string, callback?: Callback): Result; lcs(key1: RedisKey, key2: RedisKey, len: "LEN", idx: "IDX", lenToken: "MINMATCHLEN", len1: number | string, withmatchlen: "WITHMATCHLEN", callback?: Callback): Result; lindex(key: RedisKey, index: number | string, callback?: Callback): Result; lindexBuffer(key: RedisKey, index: number | string, callback?: Callback): Result; linsert(key: RedisKey, before: "BEFORE", pivot: string | Buffer | number, element: string | Buffer | number, callback?: Callback): Result; linsert(key: RedisKey, after: "AFTER", pivot: string | Buffer | number, element: string | Buffer | number, callback?: Callback): Result; llen(key: RedisKey, callback?: Callback): Result; lmove(source: RedisKey, destination: RedisKey, left: "LEFT", left1: "LEFT", callback?: Callback): Result; lmoveBuffer(source: RedisKey, destination: RedisKey, left: "LEFT", left1: "LEFT", callback?: Callback): Result; lmove(source: RedisKey, destination: RedisKey, left: "LEFT", right: "RIGHT", callback?: Callback): Result; lmoveBuffer(source: RedisKey, destination: RedisKey, left: "LEFT", right: "RIGHT", callback?: Callback): Result; lmove(source: RedisKey, destination: RedisKey, right: "RIGHT", left: "LEFT", callback?: Callback): Result; lmoveBuffer(source: RedisKey, destination: RedisKey, right: "RIGHT", left: "LEFT", callback?: Callback): Result; lmove(source: RedisKey, destination: RedisKey, right: "RIGHT", right1: "RIGHT", callback?: Callback): Result; lmoveBuffer(source: RedisKey, destination: RedisKey, right: "RIGHT", right1: "RIGHT", callback?: Callback): Result; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT" ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT" ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], left: "LEFT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT" ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT" ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT" ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: string, members: string[] ] | null> ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string, callback: Callback<[ key: Buffer, members: Buffer[] ] | null> ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lmpop(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: string, members: string[] ] | null, Context>; lmpopBuffer(...args: [ numkeys: number | string, keys: RedisKey[], right: "RIGHT", countToken: "COUNT", count: number | string ]): Result<[ key: Buffer, members: Buffer[] ] | null, Context>; lolwut(callback?: Callback): Result; lolwut(versionToken: "VERSION", version: number | string, callback?: Callback): Result; lpop(key: RedisKey, callback?: Callback): Result; lpopBuffer(key: RedisKey, callback?: Callback): Result; lpop(key: RedisKey, count: number | string, callback?: Callback): Result; lpopBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, lenToken: "MAXLEN", len: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, numMatchesToken: "COUNT", numMatches: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, numMatchesToken: "COUNT", numMatches: number | string, lenToken: "MAXLEN", len: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, rankToken: "RANK", rank: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, rankToken: "RANK", rank: number | string, lenToken: "MAXLEN", len: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, rankToken: "RANK", rank: number | string, numMatchesToken: "COUNT", numMatches: number | string, callback?: Callback): Result; lpos(key: RedisKey, element: string | Buffer | number, rankToken: "RANK", rank: number | string, numMatchesToken: "COUNT", numMatches: number | string, lenToken: "MAXLEN", len: number | string, callback?: Callback): Result; lpush(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[], callback: Callback ]): Result; lpush(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[] ]): Result; lpushx(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[], callback: Callback ]): Result; lpushx(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[] ]): Result; lrange(key: RedisKey, start: number | string, stop: number | string, callback?: Callback): Result; lrangeBuffer(key: RedisKey, start: number | string, stop: number | string, callback?: Callback): Result; lrem(key: RedisKey, count: number | string, element: string | Buffer | number, callback?: Callback): Result; lset(key: RedisKey, index: number | string, element: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; ltrim(key: RedisKey, start: number | string, stop: number | string, callback?: Callback<"OK">): Result<"OK", Context>; memory(subcommand: "DOCTOR", callback?: Callback): Result; memory(subcommand: "HELP", callback?: Callback): Result; memory(subcommand: "MALLOC-STATS", callback?: Callback): Result; memory(subcommand: "PURGE", callback?: Callback<"OK">): Result<"OK", Context>; memory(subcommand: "STATS", callback?: Callback): Result; memory(subcommand: "USAGE", key: RedisKey, callback?: Callback): Result; memory(subcommand: "USAGE", key: RedisKey, countToken: "SAMPLES", count: number | string, callback?: Callback): Result; mget(...args: [ ...keys: RedisKey[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; mgetBuffer(...args: [ ...keys: RedisKey[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; mget(...args: [ keys: RedisKey[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; mgetBuffer(...args: [ keys: RedisKey[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; mget(...args: [ ...keys: RedisKey[] ]): Result<(string | null)[], Context>; mgetBuffer(...args: [ ...keys: RedisKey[] ]): Result<(Buffer | null)[], Context>; mget(...args: [ keys: RedisKey[] ]): Result<(string | null)[], Context>; mgetBuffer(...args: [ keys: RedisKey[] ]): Result<(Buffer | null)[], Context>; migrate(...args: [ host: string | Buffer, port: number | string, ...args: RedisValue[], callback: Callback<"OK"> ]): Result<"OK", Context>; migrate(...args: [ host: string | Buffer, port: number | string, ...args: RedisValue[] ]): Result<"OK", Context>; module(subcommand: "HELP", callback?: Callback): Result; module(subcommand: "LIST", callback?: Callback): Result; module(subcommand: "LOAD", path: string | Buffer, callback?: Callback): Result; module(...args: [ subcommand: "LOAD", path: string | Buffer, ...args: (string | Buffer | number)[], callback: Callback ]): Result; module(...args: [ subcommand: "LOAD", path: string | Buffer, ...args: (string | Buffer | number)[] ]): Result; module(subcommand: "LOADEX", path: string | Buffer, callback?: Callback): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, argsToken: "ARGS", ...args: (string | Buffer | number)[], callback: Callback ]): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, argsToken: "ARGS", ...args: (string | Buffer | number)[] ]): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, configsToken: "CONFIG", ...configs: (string | Buffer | number)[], callback: Callback ]): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, configsToken: "CONFIG", ...configs: (string | Buffer | number)[] ]): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, configsToken: "CONFIG", ...args: RedisValue[], callback: Callback ]): Result; module(...args: [ subcommand: "LOADEX", path: string | Buffer, configsToken: "CONFIG", ...args: RedisValue[] ]): Result; module(subcommand: "UNLOAD", name: string | Buffer, callback?: Callback): Result; move(key: RedisKey, db: number | string, callback?: Callback): Result; mset(object: object, callback?: Callback<"OK">): Result<"OK", Context>; mset(map: Map, callback?: Callback<"OK">): Result<"OK", Context>; mset(...args: [ ...keyValues: (RedisKey | string | Buffer | number)[], callback: Callback<"OK"> ]): Result<"OK", Context>; mset(...args: [ ...keyValues: (RedisKey | string | Buffer | number)[] ]): Result<"OK", Context>; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[] ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], secondsToken: 'EX', seconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], secondsToken: 'EX', seconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], millisecondsToken: 'PX', milliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], millisecondsToken: 'PX', milliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], keepttl: 'KEEPTTL', callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], keepttl: 'KEEPTTL' ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX' ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', secondsToken: 'EX', seconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', secondsToken: 'EX', seconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', millisecondsToken: 'PX', milliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', millisecondsToken: 'PX', milliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', keepttl: 'KEEPTTL', callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], nx: 'NX', keepttl: 'KEEPTTL' ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX' ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', secondsToken: 'EX', seconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', secondsToken: 'EX', seconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', millisecondsToken: 'PX', milliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', millisecondsToken: 'PX', milliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', unixTimeSecondsToken: 'EXAT', unixTimeSeconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string, callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', unixTimeMillisecondsToken: 'PXAT', unixTimeMilliseconds: number | string ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', keepttl: 'KEEPTTL', callback: Callback ]): Result; msetex(...args: [ numkeys: number | string, ...data: (RedisKey | string | Buffer | number)[], xx: 'XX', keepttl: 'KEEPTTL' ]): Result; msetnx(object: object, callback?: Callback<"OK">): Result<"OK", Context>; msetnx(map: Map, callback?: Callback<"OK">): Result<"OK", Context>; msetnx(...args: [ ...keyValues: (RedisKey | string | Buffer | number)[], callback: Callback ]): Result; msetnx(...args: [ ...keyValues: (RedisKey | string | Buffer | number)[] ]): Result; object(subcommand: "ENCODING", key: RedisKey, callback?: Callback): Result; object(subcommand: "FREQ", key: RedisKey, callback?: Callback): Result; object(subcommand: "HELP", callback?: Callback): Result; object(subcommand: "IDLETIME", key: RedisKey, callback?: Callback): Result; object(subcommand: "REFCOUNT", key: RedisKey, callback?: Callback): Result; persist(key: RedisKey, callback?: Callback): Result; pexpire(key: RedisKey, milliseconds: number | string, callback?: Callback): Result; pexpire(key: RedisKey, milliseconds: number | string, nx: "NX", callback?: Callback): Result; pexpire(key: RedisKey, milliseconds: number | string, xx: "XX", callback?: Callback): Result; pexpire(key: RedisKey, milliseconds: number | string, gt: "GT", callback?: Callback): Result; pexpire(key: RedisKey, milliseconds: number | string, lt: "LT", callback?: Callback): Result; pexpireat(key: RedisKey, unixTimeMilliseconds: number | string, callback?: Callback): Result; pexpireat(key: RedisKey, unixTimeMilliseconds: number | string, nx: "NX", callback?: Callback): Result; pexpireat(key: RedisKey, unixTimeMilliseconds: number | string, xx: "XX", callback?: Callback): Result; pexpireat(key: RedisKey, unixTimeMilliseconds: number | string, gt: "GT", callback?: Callback): Result; pexpireat(key: RedisKey, unixTimeMilliseconds: number | string, lt: "LT", callback?: Callback): Result; pexpiretime(key: RedisKey, callback?: Callback): Result; pfadd(key: RedisKey, callback?: Callback): Result; pfadd(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[], callback: Callback ]): Result; pfadd(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[] ]): Result; pfcount(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; pfcount(...args: [ keys: RedisKey[], callback: Callback ]): Result; pfcount(...args: [ ...keys: RedisKey[] ]): Result; pfcount(...args: [ keys: RedisKey[] ]): Result; pfdebug(subcommand: string | Buffer, key: RedisKey, callback?: Callback): Result; pfmerge(...args: [ destkey: RedisKey, ...sourcekeys: RedisKey[], callback: Callback<"OK"> ]): Result<"OK", Context>; pfmerge(...args: [ destkey: RedisKey, sourcekeys: RedisKey[], callback: Callback<"OK"> ]): Result<"OK", Context>; pfmerge(...args: [ destkey: RedisKey, ...sourcekeys: RedisKey[] ]): Result<"OK", Context>; pfmerge(...args: [ destkey: RedisKey, sourcekeys: RedisKey[] ]): Result<"OK", Context>; pfselftest(callback?: Callback): Result; ping(callback?: Callback<"PONG">): Result<"PONG", Context>; ping(message: string | Buffer, callback?: Callback): Result; pingBuffer(message: string | Buffer, callback?: Callback): Result; psetex(key: RedisKey, milliseconds: number | string, value: string | Buffer | number, callback?: Callback): Result; psubscribe(...args: [ ...patterns: string[], callback: Callback ]): Result; psubscribe(...args: [ ...patterns: string[] ]): Result; psync(replicationid: string | Buffer | number, offset: number | string, callback?: Callback): Result; pttl(key: RedisKey, callback?: Callback): Result; publish(channel: string | Buffer, message: string | Buffer, callback?: Callback): Result; pubsub(subcommand: "CHANNELS", callback?: Callback): Result; pubsub(subcommand: "CHANNELS", pattern: string, callback?: Callback): Result; pubsub(subcommand: "HELP", callback?: Callback): Result; pubsub(subcommand: "NUMPAT", callback?: Callback): Result; pubsub(subcommand: "NUMSUB", callback?: Callback): Result; pubsub(...args: [ subcommand: "NUMSUB", ...channels: (string | Buffer)[], callback: Callback ]): Result; pubsub(...args: [ subcommand: "NUMSUB", ...channels: (string | Buffer)[] ]): Result; pubsub(subcommand: "SHARDCHANNELS", callback?: Callback): Result; pubsub(subcommand: "SHARDCHANNELS", pattern: string, callback?: Callback): Result; pubsub(subcommand: "SHARDNUMSUB", callback?: Callback): Result; pubsub(...args: [ subcommand: "SHARDNUMSUB", ...shardchannels: (string | Buffer)[], callback: Callback ]): Result; pubsub(...args: [ subcommand: "SHARDNUMSUB", ...shardchannels: (string | Buffer)[] ]): Result; punsubscribe(callback?: Callback): Result; punsubscribe(...args: [ ...patterns: string[], callback: Callback ]): Result; punsubscribe(...args: [ ...patterns: string[] ]): Result; quit(callback?: Callback<"OK">): Result<"OK", Context>; randomkey(callback?: Callback): Result; randomkeyBuffer(callback?: Callback): Result; readonly(callback?: Callback<"OK">): Result<"OK", Context>; readwrite(callback?: Callback<"OK">): Result<"OK", Context>; rename(key: RedisKey, newkey: RedisKey, callback?: Callback<"OK">): Result<"OK", Context>; renamenx(key: RedisKey, newkey: RedisKey, callback?: Callback): Result; replconf(callback?: Callback): Result; replicaof(host: string | Buffer, port: number | string, callback?: Callback<"OK">): Result<"OK", Context>; reset(callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, secondsToken: "IDLETIME", seconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; restore(key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback<"OK">): Result<"OK", Context>; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, secondsToken: "IDLETIME", seconds: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, callback?: Callback): Result; ["restore-asking"](key: RedisKey, ttl: number | string, serializedValue: string | Buffer | number, replace: "REPLACE", absttl: "ABSTTL", secondsToken: "IDLETIME", seconds: number | string, frequencyToken: "FREQ", frequency: number | string, callback?: Callback): Result; role(callback?: Callback): Result; rpop(key: RedisKey, callback?: Callback): Result; rpopBuffer(key: RedisKey, callback?: Callback): Result; rpop(key: RedisKey, count: number | string, callback?: Callback): Result; rpopBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; rpoplpush(source: RedisKey, destination: RedisKey, callback?: Callback): Result; rpoplpushBuffer(source: RedisKey, destination: RedisKey, callback?: Callback): Result; rpush(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[], callback: Callback ]): Result; rpush(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[] ]): Result; rpushx(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[], callback: Callback ]): Result; rpushx(...args: [ key: RedisKey, ...elements: (string | Buffer | number)[] ]): Result; sadd(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; sadd(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; sadd(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; sadd(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; save(callback?: Callback<"OK">): Result<"OK", Context>; scan(cursor: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, countToken: "COUNT", count: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, countToken: "COUNT", count: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, patternToken: "MATCH", pattern: string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, patternToken: "MATCH", pattern: string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scan(cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; scanBuffer(cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, typeToken: "TYPE", type: string | Buffer, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; scard(key: RedisKey, callback?: Callback): Result; script(subcommand: "DEBUG", yes: "YES", callback?: Callback): Result; script(subcommand: "DEBUG", sync: "SYNC", callback?: Callback): Result; script(subcommand: "DEBUG", no: "NO", callback?: Callback): Result; script(...args: [ subcommand: "EXISTS", ...sha1s: (string | Buffer)[], callback: Callback ]): Result; script(...args: [ subcommand: "EXISTS", ...sha1s: (string | Buffer)[] ]): Result; script(subcommand: "FLUSH", callback?: Callback): Result; script(subcommand: "FLUSH", async: "ASYNC", callback?: Callback): Result; script(subcommand: "FLUSH", sync: "SYNC", callback?: Callback): Result; script(subcommand: "HELP", callback?: Callback): Result; script(subcommand: "KILL", callback?: Callback): Result; script(subcommand: "LOAD", script: string | Buffer, callback?: Callback): Result; sdiff(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sdiffBuffer(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sdiff(...args: [ keys: RedisKey[], callback: Callback ]): Result; sdiffBuffer(...args: [ keys: RedisKey[], callback: Callback ]): Result; sdiff(...args: [ ...keys: RedisKey[] ]): Result; sdiffBuffer(...args: [ ...keys: RedisKey[] ]): Result; sdiff(...args: [ keys: RedisKey[] ]): Result; sdiffBuffer(...args: [ keys: RedisKey[] ]): Result; sdiffstore(...args: [ destination: RedisKey, ...keys: RedisKey[], callback: Callback ]): Result; sdiffstore(...args: [ destination: RedisKey, keys: RedisKey[], callback: Callback ]): Result; sdiffstore(...args: [ destination: RedisKey, ...keys: RedisKey[] ]): Result; sdiffstore(...args: [ destination: RedisKey, keys: RedisKey[] ]): Result; select(index: number | string, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, xx: "XX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, secondsToken: "EX", seconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, millisecondsToken: "PX", milliseconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeSecondsToken: "EXAT", unixTimeSeconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, unixTimeMillisecondsToken: "PXAT", unixTimeMilliseconds: number | string, xx: "XX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", callback?: Callback<"OK">): Result<"OK", Context>; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", nx: "NX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", nx: "NX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", nx: "NX", get: "GET", callback?: Callback): Result; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", xx: "XX", callback?: Callback<"OK" | null>): Result<"OK" | null, Context>; set(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", xx: "XX", get: "GET", callback?: Callback): Result; setBuffer(key: RedisKey, value: string | Buffer | number, keepttl: "KEEPTTL", xx: "XX", get: "GET", callback?: Callback): Result; setbit(key: RedisKey, offset: number | string, value: number | string, callback?: Callback): Result; setex(key: RedisKey, seconds: number | string, value: string | Buffer | number, callback?: Callback<"OK">): Result<"OK", Context>; setnx(key: RedisKey, value: string | Buffer | number, callback?: Callback): Result; setrange(key: RedisKey, offset: number | string, value: string | Buffer | number, callback?: Callback): Result; shutdown(callback?: Callback<"OK">): Result<"OK", Context>; shutdown(abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(now: "NOW", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(now: "NOW", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(now: "NOW", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(now: "NOW", force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", now: "NOW", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", now: "NOW", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", now: "NOW", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(nosave: "NOSAVE", now: "NOW", force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", now: "NOW", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", now: "NOW", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", now: "NOW", force: "FORCE", callback?: Callback<"OK">): Result<"OK", Context>; shutdown(save: "SAVE", now: "NOW", force: "FORCE", abort: "ABORT", callback?: Callback<"OK">): Result<"OK", Context>; sinter(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sinterBuffer(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sinter(...args: [ keys: RedisKey[], callback: Callback ]): Result; sinterBuffer(...args: [ keys: RedisKey[], callback: Callback ]): Result; sinter(...args: [ ...keys: RedisKey[] ]): Result; sinterBuffer(...args: [ ...keys: RedisKey[] ]): Result; sinter(...args: [ keys: RedisKey[] ]): Result; sinterBuffer(...args: [ keys: RedisKey[] ]): Result; sintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; sintercard(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; sintercard(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; sintercard(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; sintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], limitToken: "LIMIT", limit: number | string, callback: Callback ]): Result; sintercard(...args: [ numkeys: number | string, keys: RedisKey[], limitToken: "LIMIT", limit: number | string, callback: Callback ]): Result; sintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], limitToken: "LIMIT", limit: number | string ]): Result; sintercard(...args: [ numkeys: number | string, keys: RedisKey[], limitToken: "LIMIT", limit: number | string ]): Result; sinterstore(...args: [ destination: RedisKey, ...keys: RedisKey[], callback: Callback ]): Result; sinterstore(...args: [ destination: RedisKey, keys: RedisKey[], callback: Callback ]): Result; sinterstore(...args: [ destination: RedisKey, ...keys: RedisKey[] ]): Result; sinterstore(...args: [ destination: RedisKey, keys: RedisKey[] ]): Result; sismember(key: RedisKey, member: string | Buffer | number, callback?: Callback): Result; slaveof(host: string | Buffer, port: number | string, callback?: Callback<"OK">): Result<"OK", Context>; slowlog(subcommand: "GET", callback?: Callback): Result; slowlog(subcommand: "GET", count: number | string, callback?: Callback): Result; slowlog(subcommand: "HELP", callback?: Callback): Result; slowlog(subcommand: "LEN", callback?: Callback): Result; slowlog(subcommand: "RESET", callback?: Callback): Result; smembers(key: RedisKey, callback?: Callback): Result; smembersBuffer(key: RedisKey, callback?: Callback): Result; smismember(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; smismember(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; smismember(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; smismember(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; smove(source: RedisKey, destination: RedisKey, member: string | Buffer | number, callback?: Callback): Result; sort(...args: [ key: RedisKey, ...args: RedisValue[], callback: Callback ]): Result; sort(...args: [ key: RedisKey, ...args: RedisValue[] ]): Result; sort_ro(key: RedisKey, callback?: Callback): Result; sort_ro(key: RedisKey, alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, asc: "ASC", callback?: Callback): Result; sort_ro(key: RedisKey, asc: "ASC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, desc: "DESC", callback?: Callback): Result; sort_ro(key: RedisKey, desc: "DESC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[] ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], asc: "ASC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], asc: "ASC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], asc: "ASC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], asc: "ASC", alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], desc: "DESC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], desc: "DESC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], desc: "DESC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "GET", ...patterns: string[], desc: "DESC", alpha: "ALPHA" ]): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, asc: "ASC", callback?: Callback): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, asc: "ASC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, desc: "DESC", callback?: Callback): Result; sort_ro(key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, desc: "DESC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[] ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], asc: "ASC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], asc: "ASC" ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], asc: "ASC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], asc: "ASC", alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], desc: "DESC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], desc: "DESC" ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], desc: "DESC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken: "GET", ...patterns: string[], desc: "DESC", alpha: "ALPHA" ]): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, asc: "ASC", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, asc: "ASC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, desc: "DESC", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, desc: "DESC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[] ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", alpha: "ALPHA" ]): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, asc: "ASC", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, asc: "ASC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, desc: "DESC", callback?: Callback): Result; sort_ro(key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, desc: "DESC", alpha: "ALPHA", callback?: Callback): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[] ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], asc: "ASC", alpha: "ALPHA" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC" ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", alpha: "ALPHA", callback: Callback ]): Result; sort_ro(...args: [ key: RedisKey, patternToken: "BY", pattern: string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, patternToken1: "GET", ...pattern1s: string[], desc: "DESC", alpha: "ALPHA" ]): Result; spop(key: RedisKey, callback?: Callback): Result; spopBuffer(key: RedisKey, callback?: Callback): Result; spop(key: RedisKey, count: number | string, callback?: Callback): Result; spopBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; spublish(shardchannel: string | Buffer, message: string | Buffer, callback?: Callback): Result; srandmember(key: RedisKey, callback?: Callback): Result; srandmemberBuffer(key: RedisKey, callback?: Callback): Result; srandmember(key: RedisKey, count: number | string, callback?: Callback): Result; srandmemberBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; srem(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; srem(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; srem(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; srem(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; sscan(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; sscanBuffer(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; sscan(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; sscanBuffer(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; sscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; sscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; sscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; sscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; ssubscribe(...args: [ ...shardchannels: (string | Buffer)[], callback: Callback ]): Result; ssubscribe(...args: [ ...shardchannels: (string | Buffer)[] ]): Result; strlen(key: RedisKey, callback?: Callback): Result; subscribe(...args: [ ...channels: (string | Buffer)[], callback: Callback ]): Result; subscribe(...args: [ ...channels: (string | Buffer)[] ]): Result; substr(key: RedisKey, start: number | string, end: number | string, callback?: Callback): Result; sunion(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sunionBuffer(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; sunion(...args: [ keys: RedisKey[], callback: Callback ]): Result; sunionBuffer(...args: [ keys: RedisKey[], callback: Callback ]): Result; sunion(...args: [ ...keys: RedisKey[] ]): Result; sunionBuffer(...args: [ ...keys: RedisKey[] ]): Result; sunion(...args: [ keys: RedisKey[] ]): Result; sunionBuffer(...args: [ keys: RedisKey[] ]): Result; sunionstore(...args: [ destination: RedisKey, ...keys: RedisKey[], callback: Callback ]): Result; sunionstore(...args: [ destination: RedisKey, keys: RedisKey[], callback: Callback ]): Result; sunionstore(...args: [ destination: RedisKey, ...keys: RedisKey[] ]): Result; sunionstore(...args: [ destination: RedisKey, keys: RedisKey[] ]): Result; sunsubscribe(callback?: Callback): Result; sunsubscribe(...args: [ ...shardchannels: (string | Buffer)[], callback: Callback ]): Result; sunsubscribe(...args: [ ...shardchannels: (string | Buffer)[] ]): Result; swapdb(index1: number | string, index2: number | string, callback?: Callback<"OK">): Result<"OK", Context>; sync(callback?: Callback): Result; time(callback?: Callback): Result; touch(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; touch(...args: [ keys: RedisKey[], callback: Callback ]): Result; touch(...args: [ ...keys: RedisKey[] ]): Result; touch(...args: [ keys: RedisKey[] ]): Result; ttl(key: RedisKey, callback?: Callback): Result; type(key: RedisKey, callback?: Callback): Result; unlink(...args: [ ...keys: RedisKey[], callback: Callback ]): Result; unlink(...args: [ keys: RedisKey[], callback: Callback ]): Result; unlink(...args: [ ...keys: RedisKey[] ]): Result; unlink(...args: [ keys: RedisKey[] ]): Result; unsubscribe(callback?: Callback): Result; unsubscribe(...args: [ ...channels: (string | Buffer)[], callback: Callback ]): Result; unsubscribe(...args: [ ...channels: (string | Buffer)[] ]): Result; unwatch(callback?: Callback<"OK">): Result<"OK", Context>; vadd(...args: [ key: RedisKey, ...args: (RedisValue)[], callback: Callback ]): Result; vadd(...args: [ key: RedisKey, ...args: (RedisValue)[] ]): Result; vcard(key: RedisKey, callback?: Callback): Result; vdim(key: RedisKey, callback?: Callback): Result; vemb(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vembBuffer(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vemb(key: RedisKey, element: string | Buffer | number, raw: 'RAW', callback?: Callback): Result; vembBuffer(key: RedisKey, element: string | Buffer | number, raw: 'RAW', callback?: Callback): Result; vgetattr(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vgetattrBuffer(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vinfo(key: RedisKey, callback?: Callback<(string | number)[] | null>): Result<(string | number)[] | null, Context>; vinfoBuffer(key: RedisKey, callback?: Callback<(Buffer | number)[] | null>): Result<(Buffer | number)[] | null, Context>; vismember(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vlinks(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vlinksBuffer(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vlinks(key: RedisKey, element: string | Buffer | number, withscores: 'WITHSCORES', callback?: Callback): Result; vlinksBuffer(key: RedisKey, element: string | Buffer | number, withscores: 'WITHSCORES', callback?: Callback): Result; vrandmember(key: RedisKey, callback?: Callback): Result; vrandmemberBuffer(key: RedisKey, callback?: Callback): Result; vrandmember(key: RedisKey, count: number | string, callback?: Callback): Result; vrandmemberBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; vrange(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, callback?: Callback): Result; vrangeBuffer(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, callback?: Callback): Result; vrange(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, count: number | string, callback?: Callback): Result; vrangeBuffer(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, count: number | string, callback?: Callback): Result; vrem(key: RedisKey, element: string | Buffer | number, callback?: Callback): Result; vsetattr(key: RedisKey, element: string | Buffer | number, json: string | Buffer, callback?: Callback): Result; vsim(...args: [ key: RedisKey, ...args: (RedisValue)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; vsimBuffer(...args: [ key: RedisKey, ...args: (RedisValue)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; vsim(...args: [ key: RedisKey, ...args: (RedisValue)[] ]): Result<(string | null)[], Context>; vsimBuffer(...args: [ key: RedisKey, ...args: (RedisValue)[] ]): Result<(Buffer | null)[], Context>; wait(numreplicas: number | string, timeout: number | string, callback?: Callback): Result; watch(...args: [ ...keys: RedisKey[], callback: Callback<"OK"> ]): Result<"OK", Context>; watch(...args: [ keys: RedisKey[], callback: Callback<"OK"> ]): Result<"OK", Context>; watch(...args: [ ...keys: RedisKey[] ]): Result<"OK", Context>; watch(...args: [ keys: RedisKey[] ]): Result<"OK", Context>; xack(...args: [ key: RedisKey, group: string | Buffer, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xack(...args: [ key: RedisKey, group: string | Buffer, ...ids: (string | Buffer | number)[] ]): Result; xadd(...args: [ key: RedisKey, ...args: RedisValue[], callback: Callback ]): Result; xaddBuffer(...args: [ key: RedisKey, ...args: RedisValue[], callback: Callback ]): Result; xadd(...args: [ key: RedisKey, ...args: RedisValue[] ]): Result; xaddBuffer(...args: [ key: RedisKey, ...args: RedisValue[] ]): Result; xautoclaim(key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, start: string | Buffer | number, callback?: Callback): Result; xautoclaim(key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, start: string | Buffer | number, justid: "JUSTID", callback?: Callback): Result; xautoclaim(key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, start: string | Buffer | number, countToken: "COUNT", count: number | string, callback?: Callback): Result; xautoclaim(key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, start: string | Buffer | number, countToken: "COUNT", count: number | string, justid: "JUSTID", callback?: Callback): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[] ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, justid: "JUSTID" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE" ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID", callback: Callback ]): Result; xclaim(...args: [ key: RedisKey, group: string | Buffer, consumer: string | Buffer, minIdleTime: string | Buffer | number, ...ids: (string | Buffer | number)[], msToken: "IDLE", ms: number | string, unixTimeMillisecondsToken: "TIME", unixTimeMilliseconds: number | string, countToken: "RETRYCOUNT", count: number | string, force: "FORCE", justid: "JUSTID" ]): Result; xdel(...args: [ key: RedisKey, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xdel(...args: [ key: RedisKey, ...ids: (string | Buffer | number)[] ]): Result; xdelex(...args: [ key: RedisKey, idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xdelex(...args: [ key: RedisKey, idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xdelex(...args: [ key: RedisKey, keepref: "KEEPREF", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xdelex(...args: [ key: RedisKey, keepref: "KEEPREF", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xdelex(...args: [ key: RedisKey, delref: "DELREF", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xdelex(...args: [ key: RedisKey, delref: "DELREF", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xdelex(...args: [ key: RedisKey, acked: "ACKED", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xdelex(...args: [ key: RedisKey, acked: "ACKED", idsToken: "IDS", numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, mkstream: "MKSTREAM", callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, mkstream: "MKSTREAM", entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, newId: "$", callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, newId: "$", entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, newId: "$", mkstream: "MKSTREAM", callback?: Callback): Result; xgroup(subcommand: "CREATE", key: RedisKey, groupname: string | Buffer, newId: "$", mkstream: "MKSTREAM", entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xgroup(subcommand: "CREATECONSUMER", key: RedisKey, groupname: string | Buffer, consumername: string | Buffer, callback?: Callback): Result; xgroup(subcommand: "DELCONSUMER", key: RedisKey, groupname: string | Buffer, consumername: string | Buffer, callback?: Callback): Result; xgroup(subcommand: "DESTROY", key: RedisKey, groupname: string | Buffer, callback?: Callback): Result; xgroup(subcommand: "HELP", callback?: Callback): Result; xgroup(subcommand: "SETID", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, callback?: Callback): Result; xgroup(subcommand: "SETID", key: RedisKey, groupname: string | Buffer, id: string | Buffer | number, entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xgroup(subcommand: "SETID", key: RedisKey, groupname: string | Buffer, newId: "$", callback?: Callback): Result; xgroup(subcommand: "SETID", key: RedisKey, groupname: string | Buffer, newId: "$", entriesReadToken: "ENTRIESREAD", entriesRead: number | string, callback?: Callback): Result; xinfo(subcommand: "CONSUMERS", key: RedisKey, groupname: string | Buffer, callback?: Callback): Result; xinfo(subcommand: "GROUPS", key: RedisKey, callback?: Callback): Result; xinfo(subcommand: "HELP", callback?: Callback): Result; xinfo(subcommand: "STREAM", key: RedisKey, callback?: Callback): Result; xinfo(subcommand: "STREAM", key: RedisKey, fullToken: "FULL", callback?: Callback): Result; xinfo(subcommand: "STREAM", key: RedisKey, fullToken: "FULL", countToken: "COUNT", count: number | string, callback?: Callback): Result; xlen(key: RedisKey, callback?: Callback): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE' ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, silent: 'SILENT', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE' ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE' ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fail: 'FAIL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE' ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[] ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], force: 'FORCE' ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE', callback: Callback ]): Result; xnack(...args: [ key: RedisKey, group: string | Buffer, fatal: 'FATAL', idsToken: 'IDS', numids: number | string, ...ids: (string | Buffer | number)[], countToken: 'RETRYCOUNT', count: number | string, force: 'FORCE' ]): Result; xpending(key: RedisKey, group: string | Buffer, callback?: Callback): Result; xpending(key: RedisKey, group: string | Buffer, start: string | Buffer | number, end: string | Buffer | number, count: number | string, callback?: Callback): Result; xpending(key: RedisKey, group: string | Buffer, start: string | Buffer | number, end: string | Buffer | number, count: number | string, consumer: string | Buffer, callback?: Callback): Result; xpending(key: RedisKey, group: string | Buffer, minIdleTimeToken: "IDLE", minIdleTime: number | string, start: string | Buffer | number, end: string | Buffer | number, count: number | string, callback?: Callback): Result; xpending(key: RedisKey, group: string | Buffer, minIdleTimeToken: "IDLE", minIdleTime: number | string, start: string | Buffer | number, end: string | Buffer | number, count: number | string, consumer: string | Buffer, callback?: Callback): Result; xrange(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, callback?: Callback<[ id: string, fields: string[] ][]>): Result<[ id: string, fields: string[] ][], Context>; xrangeBuffer(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, callback?: Callback<[ id: Buffer, fields: Buffer[] ][]>): Result<[ id: Buffer, fields: Buffer[] ][], Context>; xrange(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, countToken: "COUNT", count: number | string, callback?: Callback<[ id: string, fields: string[] ][]>): Result<[ id: string, fields: string[] ][], Context>; xrangeBuffer(key: RedisKey, start: string | Buffer | number, end: string | Buffer | number, countToken: "COUNT", count: number | string, callback?: Callback<[ id: Buffer, fields: Buffer[] ][]>): Result<[ id: Buffer, fields: Buffer[] ][], Context>; xread(...args: [ streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: string, items: [ id: string, fields: string[] ][] ][] | null> ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null> ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: string, items: [ id: string, fields: string[] ][] ][] | null> ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null> ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: string, items: [ id: string, fields: string[] ][] ][] | null> ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null> ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: string, items: [ id: string, fields: string[] ][] ][] | null> ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null> ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xread(...args: [ countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: string, items: [ id: string, fields: string[] ][] ][] | null, Context>; xreadBuffer(...args: [ countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result<[ key: Buffer, items: [ id: Buffer, fields: Buffer[] ][] ][] | null, Context>; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, millisecondsToken: "BLOCK", milliseconds: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, millisecondsToken: "BLOCK", milliseconds: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[], callback: Callback ]): Result; xreadgroup(...args: [ groupConsumerToken: "GROUP", group: string | Buffer, consumer: string | Buffer, countToken: "COUNT", count: number | string, millisecondsToken: "BLOCK", milliseconds: number | string, noack: "NOACK", streamsToken: "STREAMS", ...args: RedisValue[] ]): Result; xrevrange(key: RedisKey, end: string | Buffer | number, start: string | Buffer | number, callback?: Callback<[ id: string, fields: string[] ][]>): Result<[ id: string, fields: string[] ][], Context>; xrevrangeBuffer(key: RedisKey, end: string | Buffer | number, start: string | Buffer | number, callback?: Callback<[ id: Buffer, fields: Buffer[] ][]>): Result<[ id: Buffer, fields: Buffer[] ][], Context>; xrevrange(key: RedisKey, end: string | Buffer | number, start: string | Buffer | number, countToken: "COUNT", count: number | string, callback?: Callback<[ id: string, fields: string[] ][]>): Result<[ id: string, fields: string[] ][], Context>; xrevrangeBuffer(key: RedisKey, end: string | Buffer | number, start: string | Buffer | number, countToken: "COUNT", count: number | string, callback?: Callback<[ id: Buffer, fields: Buffer[] ][]>): Result<[ id: Buffer, fields: Buffer[] ][], Context>; xsetid(key: RedisKey, lastId: string | Buffer | number, callback?: Callback): Result; xsetid(key: RedisKey, lastId: string | Buffer | number, maxDeletedEntryIdToken: "MAXDELETEDID", maxDeletedEntryId: string | Buffer | number, callback?: Callback): Result; xsetid(key: RedisKey, lastId: string | Buffer | number, entriesAddedToken: "ENTRIESADDED", entriesAdded: number | string, callback?: Callback): Result; xsetid(key: RedisKey, lastId: string | Buffer | number, entriesAddedToken: "ENTRIESADDED", entriesAdded: number | string, maxDeletedEntryIdToken: "MAXDELETEDID", maxDeletedEntryId: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, maxlen: "MAXLEN", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", equal: "=", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, acked: "ACKED", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, keepref: "KEEPREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, delref: "DELREF", callback?: Callback): Result; xtrim(key: RedisKey, minid: "MINID", approximately: "~", threshold: string | Buffer | number, countToken: "LIMIT", count: number | string, acked: "ACKED", callback?: Callback): Result; zadd(...args: [ key: RedisKey, ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, nx: "NX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", gt: "GT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", gt: "GT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", lt: "LT", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", ...scoreMembers: (string | Buffer | number)[] ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[], callback: Callback ]): Result; zadd(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zaddBuffer(...args: [ key: RedisKey, xx: "XX", lt: "LT", ch: "CH", incr: "INCR", ...scoreMembers: (string | Buffer | number)[] ]): Result; zcard(key: RedisKey, callback?: Callback): Result; zcount(key: RedisKey, min: number | string, max: number | string, callback?: Callback): Result; zdiff(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zdiffBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zdiff(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zdiffBuffer(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zdiff(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zdiffBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zdiff(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zdiffBuffer(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zdiff(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zdiffBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zdiff(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zdiffBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zdiff(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zdiffBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zdiff(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zdiffBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zdiffstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zdiffstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zdiffstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[] ]): Result; zdiffstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[] ]): Result; zincrby(key: RedisKey, increment: number | string, member: string | Buffer | number, callback?: Callback): Result; zincrbyBuffer(key: RedisKey, increment: number | string, member: string | Buffer | number, callback?: Callback): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[] ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[] ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zinter(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zinterBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zintercard(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zintercard(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zintercard(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], limitToken: "LIMIT", limit: number | string, callback: Callback ]): Result; zintercard(...args: [ numkeys: number | string, keys: RedisKey[], limitToken: "LIMIT", limit: number | string, callback: Callback ]): Result; zintercard(...args: [ numkeys: number | string, ...keys: RedisKey[], limitToken: "LIMIT", limit: number | string ]): Result; zintercard(...args: [ numkeys: number | string, keys: RedisKey[], limitToken: "LIMIT", limit: number | string ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[] ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[] ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[] ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zinterstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zlexcount(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], min: "MIN", callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], min: "MIN", callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], min: "MIN" ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], min: "MIN" ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string, callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string, callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], min: "MIN", countToken: "COUNT", count: number | string ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], max: "MAX", callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], max: "MAX", callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], max: "MAX" ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], max: "MAX" ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string, callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string, callback: Callback ]): Result; zmpop(...args: [ numkeys: number | string, ...keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string ]): Result; zmpop(...args: [ numkeys: number | string, keys: RedisKey[], max: "MAX", countToken: "COUNT", count: number | string ]): Result; zmscore(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; zmscoreBuffer(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; zmscore(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback<(string | null)[]> ]): Result<(string | null)[], Context>; zmscoreBuffer(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback<(Buffer | null)[]> ]): Result<(Buffer | null)[], Context>; zmscore(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result<(string | null)[], Context>; zmscoreBuffer(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result<(Buffer | null)[], Context>; zmscore(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result<(string | null)[], Context>; zmscoreBuffer(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result<(Buffer | null)[], Context>; zpopmax(key: RedisKey, callback?: Callback): Result; zpopmaxBuffer(key: RedisKey, callback?: Callback): Result; zpopmax(key: RedisKey, count: number | string, callback?: Callback): Result; zpopmaxBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; zpopmin(key: RedisKey, callback?: Callback): Result; zpopminBuffer(key: RedisKey, callback?: Callback): Result; zpopmin(key: RedisKey, count: number | string, callback?: Callback): Result; zpopminBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; zrandmember(key: RedisKey, callback?: Callback): Result; zrandmemberBuffer(key: RedisKey, callback?: Callback): Result; zrandmember(key: RedisKey, count: number | string, callback?: Callback): Result; zrandmemberBuffer(key: RedisKey, count: number | string, callback?: Callback): Result; zrandmember(key: RedisKey, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrandmemberBuffer(key: RedisKey, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", withscores: "WITHSCORES", callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrange(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangeBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangebylex(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zrangebylexBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zrangebylex(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangebylexBuffer(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangebyscore(key: RedisKey, min: number | string, max: number | string, callback?: Callback): Result; zrangebyscoreBuffer(key: RedisKey, min: number | string, max: number | string, callback?: Callback): Result; zrangebyscore(key: RedisKey, min: number | string, max: number | string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangebyscoreBuffer(key: RedisKey, min: number | string, max: number | string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangebyscore(key: RedisKey, min: number | string, max: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangebyscoreBuffer(key: RedisKey, min: number | string, max: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrangebyscore(key: RedisKey, min: number | string, max: number | string, withscores: "WITHSCORES", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangebyscoreBuffer(key: RedisKey, min: number | string, max: number | string, withscores: "WITHSCORES", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, byscore: "BYSCORE", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", callback?: Callback): Result; zrangestore(dst: RedisKey, src: RedisKey, min: string | Buffer | number, max: string | Buffer | number, bylex: "BYLEX", rev: "REV", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrank(key: RedisKey, member: string | Buffer | number, callback?: Callback): Result; zrem(...args: [ key: RedisKey, ...members: (string | Buffer | number)[], callback: Callback ]): Result; zrem(...args: [ key: RedisKey, members: (string | Buffer | number)[], callback: Callback ]): Result; zrem(...args: [ key: RedisKey, ...members: (string | Buffer | number)[] ]): Result; zrem(...args: [ key: RedisKey, members: (string | Buffer | number)[] ]): Result; zremrangebylex(key: RedisKey, min: string | Buffer | number, max: string | Buffer | number, callback?: Callback): Result; zremrangebyrank(key: RedisKey, start: number | string, stop: number | string, callback?: Callback): Result; zremrangebyscore(key: RedisKey, min: number | string, max: number | string, callback?: Callback): Result; zrevrange(key: RedisKey, start: number | string, stop: number | string, callback?: Callback): Result; zrevrangeBuffer(key: RedisKey, start: number | string, stop: number | string, callback?: Callback): Result; zrevrange(key: RedisKey, start: number | string, stop: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrevrangeBuffer(key: RedisKey, start: number | string, stop: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrevrangebylex(key: RedisKey, max: string | Buffer | number, min: string | Buffer | number, callback?: Callback): Result; zrevrangebylexBuffer(key: RedisKey, max: string | Buffer | number, min: string | Buffer | number, callback?: Callback): Result; zrevrangebylex(key: RedisKey, max: string | Buffer | number, min: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrangebylexBuffer(key: RedisKey, max: string | Buffer | number, min: string | Buffer | number, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrangebyscore(key: RedisKey, max: number | string, min: number | string, callback?: Callback): Result; zrevrangebyscoreBuffer(key: RedisKey, max: number | string, min: number | string, callback?: Callback): Result; zrevrangebyscore(key: RedisKey, max: number | string, min: number | string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrangebyscoreBuffer(key: RedisKey, max: number | string, min: number | string, offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrangebyscore(key: RedisKey, max: number | string, min: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrevrangebyscoreBuffer(key: RedisKey, max: number | string, min: number | string, withscores: "WITHSCORES", callback?: Callback): Result; zrevrangebyscore(key: RedisKey, max: number | string, min: number | string, withscores: "WITHSCORES", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrangebyscoreBuffer(key: RedisKey, max: number | string, min: number | string, withscores: "WITHSCORES", offsetCountToken: "LIMIT", offset: number | string, count: number | string, callback?: Callback): Result; zrevrank(key: RedisKey, member: string | Buffer | number, callback?: Callback): Result; zscan(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; zscanBuffer(key: RedisKey, cursor: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; zscan(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; zscanBuffer(key: RedisKey, cursor: number | string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; zscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; zscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; zscan(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: string, elements: string[] ]>): Result<[ cursor: string, elements: string[] ], Context>; zscanBuffer(key: RedisKey, cursor: number | string, patternToken: "MATCH", pattern: string, countToken: "COUNT", count: number | string, callback?: Callback<[ cursor: Buffer, elements: Buffer[] ]>): Result<[ cursor: Buffer, elements: Buffer[] ], Context>; zscore(key: RedisKey, member: string | Buffer | number, callback?: Callback): Result; zscoreBuffer(key: RedisKey, member: string | Buffer | number, callback?: Callback): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[] ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[] ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[] ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[] ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", withscores: "WITHSCORES" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES", callback: Callback ]): Result; zunion(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunionBuffer(...args: [ numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", withscores: "WITHSCORES" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[] ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[] ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, keys: RedisKey[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[] ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", sum: "SUM" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", min: "MIN" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", max: "MAX" ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT", callback: Callback ]): Result; zunionstore(...args: [ destination: RedisKey, numkeys: number | string, ...args: RedisValue[], aggregate: "AGGREGATE", count: "COUNT" ]): Result; } declare type RedisKey = string | Buffer; interface RedisLikeClient { setNX(key: string, value: string, ttlSec: number): Promise; set(key: string, value: string, ttlSec: number): Promise; get(key: string): Promise; expire(key: string, ttlSec: number): Promise; exists(key: string): Promise; del(keys: string[]): Promise; xAdd(key: string, fields: Record): Promise; xRange(key: string, start: string, end: string): Promise; }>>; pipeline(commands: readonly PipelineCommand[]): Promise; } declare type RedisOptions = CommonRedisOptions & SentinelConnectionOptions & StandaloneConnectionOptions; type RedisResumableStreamStoreOptions = { readonly keyPrefix?: string; readonly defaultTtlMs?: number; readonly pollIntervalMs?: number; readonly maxChunkBytes?: number; }; declare type RedisStatus = "close" | "connect" | "connecting" | "end" | "ready" | "reconnecting" | "wait"; declare type RedisValue = string | Buffer | number; declare type ReplyTransformer = (reply: any) => any; interface Respondable { name: string; args: CommandParameter[]; resolve(result: any): void; reject(error: Error): void; } declare type Result = ResultTypes[Context["type"]]; interface ResultTypes { default: Promise; pipeline: ChainableCommander; } type ResumableStreamAcquireOptions = { readonly ttlMs?: number; }; interface ResumableStreamContext { run(streamId: string, makeStream: () => ReadableStream): Promise>; resume(streamId: string): Promise | null>; requireResume(streamId: string): Promise>; status(streamId: string): Promise; delete(streamId: string): Promise; } type ResumableStreamContextOptions = { readonly store: ResumableStreamStore; readonly ttlMs?: number; readonly waitUntil?: (promise: Promise) => void; readonly onAcquire?: (streamId: string, role: ResumableStreamRole) => void; readonly onAppend?: (streamId: string, byteLength: number) => void; readonly onFinalize?: (streamId: string, status: "done" | "error", error?: string) => void; readonly onError?: (streamId: string, error: unknown) => void; }; type ResumableStreamEntry = { readonly cursor: string; readonly chunk: Uint8Array; }; declare class ResumableStreamError extends Error { readonly code: ResumableStreamErrorCode; constructor(code: ResumableStreamErrorCode, message: string); } type ResumableStreamErrorCode = "exists" | "finalized" | "invalid-id" | "missing"; type ResumableStreamRole = "consumer" | "producer"; type ResumableStreamStatus = "done" | "error" | "missing" | "streaming"; interface ResumableStreamStore { acquire(streamId: string, options?: ResumableStreamAcquireOptions): Promise; append(streamId: string, chunk: Uint8Array): Promise; finalize(streamId: string, status: "done" | "error", error?: string): Promise; read(streamId: string, cursor: string, signal: AbortSignal): AsyncIterable; status(streamId: string): Promise; delete(streamId: string): Promise; } declare type RetryStrategy = ((times: number) => number | void | null) | null | undefined; declare class ScanStream extends Readable { private opt; private _redisCursor; private _redisDrained; constructor(opt: Options); _read(): void; close(): void; } interface ScanStreamOptions { match?: string; type?: string; count?: number; noValues?: boolean; } interface SentinelAddress { port: number; host: string; family?: number; } interface SentinelConnectionOptions { name?: string | undefined; role?: "master" | "slave" | undefined; tls?: ConnectionOptions | undefined; sentinelUsername?: string | undefined; sentinelPassword?: string | undefined; sentinels?: Array> | undefined; sentinelRetryStrategy?: ((retryAttempts: number) => number | void | null) | undefined; sentinelReconnectStrategy?: ((retryAttempts: number) => number | void | null) | undefined; preferredSlaves?: PreferredSlaves | undefined; connectTimeout?: number | undefined; disconnectTimeout?: number | undefined; sentinelCommandTimeout?: number | undefined; enableTLSForSentinelMode?: boolean | undefined; sentinelTLS?: ConnectionOptions | undefined; natMap?: NatMap | undefined; updateSentinels?: boolean | undefined; sentinelMaxConnections?: number | undefined; failoverDetector?: boolean | undefined; } type SourcePart = { type: "source"; sourceType: "url"; id: string; url: string; title?: string; parentId?: string; }; declare type StandaloneConnectionOptions = Partial & { disconnectTimeout?: number | undefined; tls?: ConnectionOptions | undefined; }; declare class SubscriptionSet { private set; add(set: AddSet, channel: string): void; del(set: DelSet, channel: string): void; channels(set: AddSet | DelSet): string[]; isEmpty(): boolean; } declare const TOOL_RESPONSE_SYMBOL: unique symbol; declare type TcpOptions = Pick; type TextPart = { type: "text"; text: string; status: TextStatus; parentId?: string; }; type TextStatus = { type: "running"; } | { type: "complete"; reason: "stop" | "unknown"; } | { type: "incomplete"; reason: "cancelled" | "content-filter" | "length" | "other"; }; type TextStreamController = { append(textDelta: string): void; close(): void; }; type ThreadMessageLike = { role: "assistant" | "system" | "user"; content: readonly MessagePartLike[]; attachments?: readonly AttachmentLike[]; }; type ToToolsJSONSchemaOptions = { filter?: (name: string, tool: Tool) => boolean; }; type Tool = Record, TResult = unknown> = FrontendTool | BackendTool | HumanTool | ProviderTool | McpTool | ToolWithoutType; type ToolBase = Record, TResult = unknown> = { streamCall?: ToolStreamCallFunction; display?: ToolDisplay; }; interface ToolCallArgsReader> { get>(...fieldPath: PathT): Promise>; streamValues>(...fieldPath: PathT): AsyncIterableStream>>; streamText>(...fieldPath: PathT): TypeAtPath extends string & (infer U) ? AsyncIterableStream : never; forEach>(...fieldPath: PathT): NonNullable> extends Array ? AsyncIterableStream : never; } type ToolCallPart = ToolCallPartWithoutResult | ToolCallPartWithResult; type ToolCallPartBase = { type: "tool-call"; status: ToolCallStatus; toolCallId: string; toolName: string; argsText: string; args: ReadonlyJSONObject; timing?: ToolCallTiming; artifact?: ReadonlyJSONValue; result?: ReadonlyJSONValue; modelContent?: readonly ToolModelContentPart[]; isError?: boolean; parentId?: string; }; type ToolCallPartInit = { toolCallId?: string; toolName: string; argsText?: string; args?: ReadonlyJSONObject; response?: ToolResponseLike; }; type ToolCallPartWithResult = ToolCallPartBase & { state: "result"; result: ReadonlyJSONValue; artifact?: ReadonlyJSONValue; modelContent?: readonly ToolModelContentPart[]; isError?: boolean; }; type ToolCallPartWithoutResult = ToolCallPartBase & { state: "call" | "partial-call"; result?: undefined; modelContent?: undefined; }; interface ToolCallReader = Record, TResult = unknown> { args: ToolCallArgsReader; response: ToolCallResponseReader; result: { get: () => Promise; }; } interface ToolCallResponseReader { get: () => Promise>; } type ToolCallStatus = { type: "running"; isArgsComplete: boolean; } | { type: "requires-action"; reason: "tool-call-result"; } | { type: "complete"; reason: "stop" | "unknown"; } | { type: "incomplete"; reason: "cancelled" | "content-filter" | "length" | "other"; }; type ToolCallStreamController = { argsText: TextStreamController; setResponse(response: ToolResponseLike): void; close(): void; }; type ToolCallTiming = { readonly startedAt: number; readonly completedAt?: number; }; type ToolCallback = (toolCall: { toolCallId: string; toolName: string; args: ReadonlyJSONObject; }) => Promise> | ToolResponse | undefined; type ToolDeclaration = Record, TResult = unknown> = FrontendTool | BackendToolDeclaration | HumanTool | ProviderTool | McpTool | ToolWithoutType; type ToolDisplay = "inline" | "standalone"; type ToolExecuteFunction = (args: TArgs, context: ToolExecutionContext) => TResult | Promise; type ToolExecutionContext = { toolCallId: string; abortSignal: AbortSignal; human: (payload: unknown) => Promise; }; type ToolExecutionOptions = { execute: ToolCallback; streamCall: ToolStreamCallback; onExecutionStart?: ((toolCallId: string, toolName: string) => void) | undefined; onExecutionEnd?: ((toolCallId: string, toolName: string) => void) | undefined; }; declare class ToolExecutionStream extends PipeableTransformStream { constructor(options: ToolExecutionOptions); } type ToolJSONSchema = { description?: string; parameters: JSONSchema7; providerOptions?: ProviderOptions; }; type ToolModelContentPart = { readonly type: "text"; readonly text: string; } | { readonly type: "file"; readonly data: string; readonly mediaType: string; readonly filename?: string; }; type ToolModelOutputFunction = (options: { toolCallId: string; input: TArgs; output: TResult; }) => readonly ToolModelContentPart[] | Promise; declare class ToolResponse { get [TOOL_RESPONSE_SYMBOL](): boolean; readonly artifact?: ReadonlyJSONValue; readonly result: TResult; readonly isError: boolean; readonly modelContent?: readonly ToolModelContentPart[]; readonly messages?: ReadonlyJSONValue; constructor(options: ToolResponseLike); static [Symbol.hasInstance](obj: unknown): obj is ToolResponse; static toResponse(result: any | ToolResponse): ToolResponse; } type ToolResponseLike = { result: TResult; artifact?: ReadonlyJSONValue | undefined; isError?: boolean | undefined; modelContent?: readonly ToolModelContentPart[] | undefined; messages?: ReadonlyJSONValue | undefined; }; type ToolResultStreamOptions = { onExecutionStart?: (toolCallId: string, toolName: string) => void; onExecutionEnd?: (toolCallId: string, toolName: string) => void; }; type ToolStreamCallFunction = Record, TResult = unknown> = (reader: ToolCallReader, context: ToolExecutionContext) => void; type ToolStreamCallback = (toolCall: { reader: ToolCallReader; toolCallId: string; toolName: string; }) => void; type ToolWithoutType = Record, TResult = unknown> = (Omit, "type"> | Omit, "type"> | Omit, "type"> | Omit, "type">) & { type?: undefined; }; interface Transaction { pipeline(commands?: unknown[][]): ChainableCommander; multi(options: { pipeline: false; }): Promise<"OK">; multi(): ChainableCommander; multi(options: { pipeline: true; }): ChainableCommander; multi(commands?: unknown[][]): ChainableCommander; } type TupleIndex = Exclude; type TypeAtPath = P extends [ infer Head, ...infer Rest ] ? Head extends keyof T ? TypeAtPath : never : T; type TypePath = [ ] | (0 extends 1 & T ? any[] : T extends object ? T extends readonly any[] ? number extends T["length"] ? { [K in TupleIndex]: [ AsNumber, ...TypePath ]; }[TupleIndex] : [ number, ...TypePath ] : { [K in ObjectKey]: [ K, ...TypePath ]; }[ObjectKey] : [ ]); type UIMessageStreamChunk = { type: "start"; messageId: string; } | { type: "text-start"; id: string; } | { type: "text-delta"; textDelta: string; } | { type: "text-end"; } | { type: "reasoning-start"; id: string; } | { type: "reasoning-delta"; delta: string; } | { type: "reasoning-end"; } | { type: "source"; source: { sourceType: "url"; id: string; url: string; title?: string; }; } | { type: "file"; file: { mimeType: string; data: string; }; } | { type: "tool-call-start"; id: string; toolCallId: string; toolName: string; } | { type: "tool-call-delta"; argsText: string; } | { type: "tool-call-end"; } | { type: "tool-result"; toolCallId: string; result: ReadonlyJSONValue; isError?: boolean; messages?: ReadonlyJSONValue; } | { type: "start-step"; messageId?: string; } | { type: "finish-step"; finishReason: FinishReason; usage: Usage; isContinued: boolean; } | { type: "finish"; finishReason: FinishReason; usage: Usage; } | { type: "error"; errorText: string; } | UIMessageStreamDataChunk; type UIMessageStreamDataChunk = { type: `data-${string}`; id?: string; data: ReadonlyJSONValue; transient?: boolean; }; declare class UIMessageStreamDecoder extends PipeableTransformStream, AssistantStreamChunk> { constructor(options?: UIMessageStreamDecoderOptions); } type UIMessageStreamDecoderOptions = { onData?: (data: { type: string; name: string; data: unknown; transient?: boolean; }) => void; }; type Usage = { inputTokens: number; outputTokens: number; }; declare type WriteableStream = NetStream | PipelineWriteableStream; declare function asAsyncIterableStream(source: ReadableStream): AsyncIterableStream; declare function createAssistantStream(callback: (controller: AssistantStreamController) => PromiseLike | void): AssistantStream; declare function createAssistantStreamController(): readonly [ AssistantStream, AssistantStreamController ]; declare function createAssistantStreamResponse(callback: (controller: AssistantStreamController) => PromiseLike | void): Response; declare function createInMemoryResumableStreamStore(options?: InMemoryResumableStreamStoreOptions): ResumableStreamStore & { dispose: () => void; }; declare const createInitialMessage: (_param1?: { unstable_state?: ReadonlyJSONValue; }) => AssistantMessage; declare function createIoredisResumableStreamStore(client: IoRedisLike, options?: RedisResumableStreamStoreOptions): ResumableStreamStore; declare const createObjectStream: (_param2: CreateObjectStreamOptions) => ReadableStream; declare function createRedisResumableStreamStore(client: NodeRedisLike, options?: RedisResumableStreamStoreOptions): ResumableStreamStore; declare function createResumableAssistantStreamResponse(options: CreateResumableAssistantStreamResponseOptions): Promise; declare function createResumableStreamContext(options: ResumableStreamContextOptions): ResumableStreamContext; declare function createResumeAssistantStreamResponse(options: CreateResumeAssistantStreamResponseOptions): Promise; declare const fromObjectStreamResponse: (response: Response) => ReadableStream; declare const getPartialJsonObjectFieldState: (obj: Record, fieldPath: (string | number)[]) => FieldState; declare const getPartialJsonObjectMeta: (obj: Record) => PartialJsonObjectMeta | undefined; declare namespace entry_resumable_exports { export { CreateResumableAssistantStreamResponseOptions, CreateResumeAssistantStreamResponseOptions, InMemoryResumableStreamStoreOptions, RESUMABLE_STREAM_ID_HEADER, RedisLikeClient, RedisResumableStreamStoreOptions, ResumableStreamAcquireOptions, ResumableStreamContext, ResumableStreamContextOptions, ResumableStreamEntry, ResumableStreamError, ResumableStreamErrorCode, ResumableStreamRole, ResumableStreamStatus, ResumableStreamStore, createInMemoryResumableStreamStore, createResumableAssistantStreamResponse, createResumableStreamContext, createResumeAssistantStreamResponse }; } declare namespace entry_root_exports { export { AssistantMessage, AssistantMessageAccumulator, AssistantMessageStream, AssistantMessageTiming, AssistantStream, AssistantStreamChunk, AssistantStreamController, AssistantTransportDecoder, AssistantTransportEncoder, DataPart, DataStreamDecoder, DataStreamEncoder, GenericAssistantMessage, GenericFilePart, GenericMessage, GenericSystemMessage, GenericTextPart, GenericToolCallPart, GenericToolMessage, GenericToolResultPart, GenericUserMessage, McpServerConfig, ObjectStreamChunk, ObjectStreamResponse, PlainTextDecoder, PlainTextEncoder, ProviderOptions, TextStreamController, ToToolsJSONSchemaOptions, Tool, ToolCallReader, ToolCallStreamController, ToolCallTiming, ToolDeclaration, ToolExecutionStream, ToolJSONSchema, ToolModelContentPart, ToolModelOutputFunction, ToolResponse, ToolResponseLike, ToolResultStreamOptions, UIMessageStreamChunk, UIMessageStreamDataChunk, UIMessageStreamDecoder, UIMessageStreamDecoderOptions, createAssistantStream, createAssistantStreamController, createAssistantStreamResponse, createObjectStream, fromObjectStreamResponse, toGenericMessages, toJSONSchema, toPartialJSONSchema, toToolsJSONSchema, createInitialMessage as unstable_createInitialMessage, unstable_runPendingTools, toolResultStream as unstable_toolResultStream }; } declare namespace entry_resumable_ioredis_exports { export { IoRedisLike, createIoredisResumableStreamStore }; } declare const parsePartialJsonObject: (json: string) => (ReadonlyJSONObject & { [PARTIAL_JSON_OBJECT_META_SYMBOL]: PartialJsonObjectMeta; }) | undefined; declare namespace entry_resumable_redis_exports { export { NodeRedisLike, createRedisResumableStreamStore }; } declare function toGenericMessages(messages: readonly ThreadMessageLike[]): GenericMessage[]; declare function toJSONSchema(schema: StandardSchemaV1 | JSONSchema7): JSONSchema7; declare function toPartialJSONSchema(schema: JSONSchema7): JSONSchema7; declare function toToolsJSONSchema(tools: Record | undefined, options?: ToToolsJSONSchemaOptions): Record; declare function toolResultStream(tools: Record | (() => Record | undefined) | undefined, abortSignal: AbortSignal | (() => AbortSignal), human: (toolCallId: string, payload: unknown) => Promise, options?: ToolResultStreamOptions): ToolExecutionStream; declare function unstable_runPendingTools(message: AssistantMessage, tools: Record | undefined, abortSignal: AbortSignal, human: (toolCallId: string, payload: unknown) => Promise): Promise; declare namespace entry_utils_exports { export { AssistantMetaTransformStream, AssistantTransformStream, AsyncIterableStream, ReadonlyJSONArray, ReadonlyJSONObject, ReadonlyJSONValue, asAsyncIterableStream, getPartialJsonObjectFieldState, getPartialJsonObjectMeta, parsePartialJsonObject }; } export { entry_resumable_exports as entry_resumable, entry_resumable_ioredis_exports as entry_resumable_ioredis, entry_resumable_redis_exports as entry_resumable_redis, entry_root_exports as entry_root, entry_utils_exports as entry_utils };