@upstash/redis 0.0.0-ci.bc3aba1f-20221124 → 0.0.0-ci.bf6288e9-20231018

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +8 -1
  2. package/esm/pkg/commands/command.js +12 -3
  3. package/esm/pkg/commands/geo_add.js +27 -0
  4. package/esm/pkg/commands/hgetall.js +9 -1
  5. package/esm/pkg/commands/json_arrappend.js +9 -0
  6. package/esm/pkg/commands/json_arrindex.js +9 -0
  7. package/esm/pkg/commands/json_arrinsert.js +9 -0
  8. package/esm/pkg/commands/json_arrlen.js +9 -0
  9. package/esm/pkg/commands/json_arrpop.js +9 -0
  10. package/esm/pkg/commands/json_arrtrim.js +12 -0
  11. package/esm/pkg/commands/json_clear.js +9 -0
  12. package/esm/pkg/commands/json_del.js +9 -0
  13. package/esm/pkg/commands/json_forget.js +9 -0
  14. package/esm/pkg/commands/json_get.js +30 -0
  15. package/esm/pkg/commands/json_mget.js +9 -0
  16. package/esm/pkg/commands/json_numincrby.js +9 -0
  17. package/esm/pkg/commands/json_nummultby.js +9 -0
  18. package/esm/pkg/commands/json_objkeys.js +9 -0
  19. package/esm/pkg/commands/json_objlen.js +9 -0
  20. package/esm/pkg/commands/json_resp.js +9 -0
  21. package/esm/pkg/commands/json_set.js +18 -0
  22. package/esm/pkg/commands/json_strappend.js +9 -0
  23. package/esm/pkg/commands/json_strlen.js +9 -0
  24. package/esm/pkg/commands/json_toggle.js +9 -0
  25. package/esm/pkg/commands/json_type.js +9 -0
  26. package/esm/pkg/commands/lmove.js +9 -0
  27. package/esm/pkg/commands/mod.js +27 -0
  28. package/esm/pkg/commands/set.js +1 -1
  29. package/esm/pkg/commands/smismember.js +9 -0
  30. package/esm/pkg/commands/xadd.js +26 -0
  31. package/esm/pkg/commands/xrange.js +36 -0
  32. package/esm/pkg/commands/zdiffstore.js +9 -0
  33. package/esm/pkg/commands/zunion.js +30 -0
  34. package/esm/pkg/http.js +42 -25
  35. package/esm/pkg/pipeline.js +143 -7
  36. package/esm/pkg/redis.js +177 -3
  37. package/esm/platforms/cloudflare.js +6 -6
  38. package/esm/platforms/fastly.js +5 -0
  39. package/esm/platforms/node_with_fetch.js +23 -11
  40. package/esm/platforms/nodejs.js +21 -11
  41. package/esm/version.js +1 -1
  42. package/package.json +53 -20
  43. package/script/pkg/commands/command.js +12 -3
  44. package/script/pkg/commands/geo_add.js +31 -0
  45. package/script/pkg/commands/hgetall.js +9 -1
  46. package/script/pkg/commands/json_arrappend.js +13 -0
  47. package/script/pkg/commands/json_arrindex.js +13 -0
  48. package/script/pkg/commands/json_arrinsert.js +13 -0
  49. package/script/pkg/commands/json_arrlen.js +13 -0
  50. package/script/pkg/commands/json_arrpop.js +13 -0
  51. package/script/pkg/commands/json_arrtrim.js +16 -0
  52. package/script/pkg/commands/json_clear.js +13 -0
  53. package/script/pkg/commands/json_del.js +13 -0
  54. package/script/pkg/commands/json_forget.js +13 -0
  55. package/script/pkg/commands/json_get.js +34 -0
  56. package/script/pkg/commands/json_mget.js +13 -0
  57. package/script/pkg/commands/json_numincrby.js +13 -0
  58. package/script/pkg/commands/json_nummultby.js +13 -0
  59. package/script/pkg/commands/json_objkeys.js +13 -0
  60. package/script/pkg/commands/json_objlen.js +13 -0
  61. package/script/pkg/commands/json_resp.js +13 -0
  62. package/script/pkg/commands/json_set.js +22 -0
  63. package/script/pkg/commands/json_strappend.js +13 -0
  64. package/script/pkg/commands/json_strlen.js +13 -0
  65. package/script/pkg/commands/json_toggle.js +13 -0
  66. package/script/pkg/commands/json_type.js +13 -0
  67. package/script/pkg/commands/lmove.js +13 -0
  68. package/script/pkg/commands/mod.js +27 -0
  69. package/script/pkg/commands/set.js +1 -1
  70. package/script/pkg/commands/smismember.js +13 -0
  71. package/script/pkg/commands/xadd.js +30 -0
  72. package/script/pkg/commands/xrange.js +40 -0
  73. package/script/pkg/commands/zdiffstore.js +13 -0
  74. package/script/pkg/commands/zunion.js +34 -0
  75. package/script/pkg/http.js +42 -25
  76. package/script/pkg/pipeline.js +142 -6
  77. package/script/pkg/redis.js +176 -2
  78. package/script/platforms/cloudflare.js +6 -6
  79. package/script/platforms/fastly.js +5 -0
  80. package/script/platforms/node_with_fetch.js +23 -11
  81. package/script/platforms/nodejs.js +21 -11
  82. package/script/version.js +1 -1
  83. package/types/pkg/commands/command.d.ts +5 -5
  84. package/types/pkg/commands/geo_add.d.ts +25 -0
  85. package/types/pkg/commands/hdel.d.ts +1 -1
  86. package/types/pkg/commands/json_arrappend.d.ts +7 -0
  87. package/types/pkg/commands/json_arrindex.d.ts +13 -0
  88. package/types/pkg/commands/json_arrinsert.d.ts +7 -0
  89. package/types/pkg/commands/json_arrlen.d.ts +7 -0
  90. package/types/pkg/commands/json_arrpop.d.ts +7 -0
  91. package/types/pkg/commands/json_arrtrim.d.ts +7 -0
  92. package/types/pkg/commands/json_clear.d.ts +7 -0
  93. package/types/pkg/commands/json_del.d.ts +7 -0
  94. package/types/pkg/commands/json_forget.d.ts +7 -0
  95. package/types/pkg/commands/json_get.d.ts +15 -0
  96. package/types/pkg/commands/json_mget.d.ts +7 -0
  97. package/types/pkg/commands/json_numincrby.d.ts +7 -0
  98. package/types/pkg/commands/json_nummultby.d.ts +7 -0
  99. package/types/pkg/commands/json_objkeys.d.ts +7 -0
  100. package/types/pkg/commands/json_objlen.d.ts +7 -0
  101. package/types/pkg/commands/json_resp.d.ts +7 -0
  102. package/types/pkg/commands/json_set.d.ts +18 -0
  103. package/types/pkg/commands/json_strappend.d.ts +7 -0
  104. package/types/pkg/commands/json_strlen.d.ts +7 -0
  105. package/types/pkg/commands/json_toggle.d.ts +7 -0
  106. package/types/pkg/commands/json_type.d.ts +7 -0
  107. package/types/pkg/commands/lmove.d.ts +12 -0
  108. package/types/pkg/commands/mod.d.ts +27 -0
  109. package/types/pkg/commands/scan.d.ts +1 -1
  110. package/types/pkg/commands/script_flush.d.ts +1 -1
  111. package/types/pkg/commands/set.d.ts +3 -3
  112. package/types/pkg/commands/smembers.d.ts +2 -2
  113. package/types/pkg/commands/smismember.d.ts +7 -0
  114. package/types/pkg/commands/type.d.ts +1 -1
  115. package/types/pkg/commands/xadd.d.ts +31 -0
  116. package/types/pkg/commands/xrange.d.ts +9 -0
  117. package/types/pkg/commands/zadd.d.ts +3 -3
  118. package/types/pkg/commands/zdiffstore.d.ts +7 -0
  119. package/types/pkg/commands/zinterstore.d.ts +1 -1
  120. package/types/pkg/commands/zrange.d.ts +1 -1
  121. package/types/pkg/commands/zunion.d.ts +29 -0
  122. package/types/pkg/commands/zunionstore.d.ts +1 -1
  123. package/types/pkg/http.d.ts +16 -23
  124. package/types/pkg/pipeline.d.ts +247 -126
  125. package/types/pkg/redis.d.ts +149 -13
  126. package/types/pkg/types.d.ts +27 -1
  127. package/types/platforms/cloudflare.d.ts +2 -2
  128. package/types/platforms/fastly.d.ts +1 -1
  129. package/types/platforms/node_with_fetch.d.ts +1 -1
  130. package/types/platforms/nodejs.d.ts +1 -1
  131. package/types/version.d.ts +1 -1
@@ -1,7 +1,10 @@
1
- import { DelCommand, ExistsCommand, FlushAllCommand, MGetCommand, PingCommand, ScoreMember, ScriptExistsCommand, SetCommandOptions, TouchCommand, UnlinkCommand, ZAddCommandOptions, ZAddCommandOptionsWithIncr, ZRangeCommandOptions } from "./commands/mod.js";
2
- import { CommandOptions } from "./commands/command.js";
1
+ import { BitOpCommand, DelCommand, ExistsCommand, FlushAllCommand, JsonGetCommand, MGetCommand, PingCommand, ScoreMember, ScriptExistsCommand, SetCommandOptions, TouchCommand, UnlinkCommand, ZAddCommandOptions, ZAddCommandOptionsWithIncr, ZRangeCommandOptions } from "./commands/mod.js";
2
+ import { Command, CommandOptions } from "./commands/command.js";
3
3
  import { Requester } from "./http.js";
4
4
  import { CommandArgs } from "./types.js";
5
+ type InferResponseData<T extends unknown[]> = {
6
+ [K in keyof T]: T[K] extends Command<any, infer TData> ? TData : unknown;
7
+ };
5
8
  /**
6
9
  * Upstash REST API supports command pipelining to send multiple commands in
7
10
  * batch, instead of sending each command one by one and waiting for a response.
@@ -30,7 +33,7 @@ import { CommandArgs } from "./types.js";
30
33
  * const res = await p.set("key","value").get("key").exec()
31
34
  * ```
32
35
  *
33
- * It's not possible to infer correct types with a dynamic pipeline, so you can
36
+ * Return types are inferred if all commands are chained, but you can still
34
37
  * override the response type manually:
35
38
  * ```ts
36
39
  * redis.pipeline()
@@ -40,7 +43,7 @@ import { CommandArgs } from "./types.js";
40
43
  *
41
44
  * ```
42
45
  */
43
- export declare class Pipeline {
46
+ export declare class Pipeline<TCommands extends Command<any, any>[] = []> {
44
47
  private client;
45
48
  private commands;
46
49
  private commandOptions?;
@@ -55,206 +58,220 @@ export declare class Pipeline {
55
58
  *
56
59
  * Returns an array with the results of all pipelined commands.
57
60
  *
58
- * You can define a return type manually to make working in typescript easier
61
+ * If all commands are statically chained from start to finish, types are inferred. You can still define a return type manually if necessary though:
59
62
  * ```ts
60
- * redis.pipeline().get("key").exec<[{ greeting: string }]>()
63
+ * const p = redis.pipeline()
64
+ * p.get("key")
65
+ * const result = p.exec<[{ greeting: string }]>()
61
66
  * ```
62
67
  */
63
- exec: <TCommandResults extends unknown[] = unknown[]>() => Promise<TCommandResults>;
68
+ exec: <TCommandResults extends unknown[] = [] extends TCommands ? unknown[] : InferResponseData<TCommands>>() => Promise<TCommandResults>;
64
69
  /**
65
- * Pushes a command into the pipelien and returns a chainable instance of the
70
+ * Returns the length of pipeline before the execution
71
+ */
72
+ length(): number;
73
+ /**
74
+ * Pushes a command into the pipeline and returns a chainable instance of the
66
75
  * pipeline
67
76
  */
68
77
  private chain;
69
78
  /**
70
79
  * @see https://redis.io/commands/append
71
80
  */
72
- append: (key: string, value: string) => this;
81
+ append: (key: string, value: string) => Pipeline<[...TCommands, Command<any, number>]>;
73
82
  /**
74
83
  * @see https://redis.io/commands/bitcount
75
84
  */
76
- bitcount: (key: string, start: number, end: number) => this;
85
+ bitcount: (key: string, start: number, end: number) => Pipeline<[...TCommands, Command<any, number>]>;
77
86
  /**
78
87
  * @see https://redis.io/commands/bitop
79
88
  */
80
89
  bitop: {
81
- (op: "and" | "or" | "xor", destinationKey: string, sourceKey: string, ...sourceKeys: string[]): Pipeline;
82
- (op: "not", destinationKey: string, sourceKey: string): Pipeline;
90
+ (op: "and" | "or" | "xor", destinationKey: string, sourceKey: string, ...sourceKeys: string[]): Pipeline<[...TCommands, BitOpCommand]>;
91
+ (op: "not", destinationKey: string, sourceKey: string): Pipeline<[...TCommands, BitOpCommand]>;
83
92
  };
84
93
  /**
85
94
  * @see https://redis.io/commands/bitpos
86
95
  */
87
- bitpos: (key: string, bit: 0 | 1, start?: number | undefined, end?: number | undefined) => this;
96
+ bitpos: (key: string, bit: 0 | 1, start?: number | undefined, end?: number | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
97
+ /**
98
+ * @see https://redis.io/commands/zdiffstore
99
+ */
100
+ zdiffstore: (destination: string, numkeys: number, ...keys: string[]) => Pipeline<[...TCommands, Command<any, number>]>;
88
101
  /**
89
102
  * @see https://redis.io/commands/dbsize
90
103
  */
91
- dbsize: () => this;
104
+ dbsize: () => Pipeline<[...TCommands, Command<any, number>]>;
92
105
  /**
93
106
  * @see https://redis.io/commands/decr
94
107
  */
95
- decr: (key: string) => this;
108
+ decr: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
96
109
  /**
97
110
  * @see https://redis.io/commands/decrby
98
111
  */
99
- decrby: (key: string, decrement: number) => this;
112
+ decrby: (key: string, decrement: number) => Pipeline<[...TCommands, Command<any, number>]>;
100
113
  /**
101
114
  * @see https://redis.io/commands/del
102
115
  */
103
- del: (...args: CommandArgs<typeof DelCommand>) => this;
116
+ del: (...args: CommandArgs<typeof DelCommand>) => Pipeline<[...TCommands, Command<any, number>]>;
104
117
  /**
105
118
  * @see https://redis.io/commands/echo
106
119
  */
107
- echo: (message: string) => this;
120
+ echo: (message: string) => Pipeline<[...TCommands, Command<any, string>]>;
108
121
  /**
109
122
  * @see https://redis.io/commands/eval
110
123
  */
111
- eval: <TArgs extends unknown[], TData = unknown>(script: string, keys: string[], args: TArgs) => this;
124
+ eval: <TArgs extends unknown[], TData = unknown>(script: string, keys: string[], args: TArgs) => Pipeline<[...TCommands, Command<any, TData>]>;
112
125
  /**
113
126
  * @see https://redis.io/commands/evalsha
114
127
  */
115
- evalsha: <TArgs extends unknown[], TData = unknown>(sha1: string, keys: string[], args: TArgs) => this;
128
+ evalsha: <TArgs extends unknown[], TData = unknown>(sha1: string, keys: string[], args: TArgs) => Pipeline<[...TCommands, Command<any, TData>]>;
116
129
  /**
117
130
  * @see https://redis.io/commands/exists
118
131
  */
119
- exists: (...args: CommandArgs<typeof ExistsCommand>) => this;
132
+ exists: (...args: CommandArgs<typeof ExistsCommand>) => Pipeline<[...TCommands, Command<any, number>]>;
120
133
  /**
121
134
  * @see https://redis.io/commands/expire
122
135
  */
123
- expire: (key: string, seconds: number) => this;
136
+ expire: (key: string, seconds: number) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
124
137
  /**
125
138
  * @see https://redis.io/commands/expireat
126
139
  */
127
- expireat: (key: string, unix: number) => this;
140
+ expireat: (key: string, unix: number) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
128
141
  /**
129
142
  * @see https://redis.io/commands/flushall
130
143
  */
131
- flushall: (args?: CommandArgs<typeof FlushAllCommand>) => this;
144
+ flushall: (args?: CommandArgs<typeof FlushAllCommand>) => Pipeline<[...TCommands, Command<any, "OK">]>;
132
145
  /**
133
146
  * @see https://redis.io/commands/flushdb
134
147
  */
135
148
  flushdb: (opts?: {
136
149
  async?: boolean | undefined;
137
- } | undefined) => this;
150
+ } | undefined) => Pipeline<[...TCommands, Command<any, "OK">]>;
138
151
  /**
139
152
  * @see https://redis.io/commands/get
140
153
  */
141
- get: <TData>(key: string) => this;
154
+ get: <TData>(key: string) => Pipeline<[...TCommands, Command<any, TData | null>]>;
142
155
  /**
143
156
  * @see https://redis.io/commands/getbit
144
157
  */
145
- getbit: (key: string, offset: number) => this;
158
+ getbit: (key: string, offset: number) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
146
159
  /**
147
160
  * @see https://redis.io/commands/getdel
148
161
  */
149
- getdel: <TData>(key: string) => this;
162
+ getdel: <TData>(key: string) => Pipeline<[...TCommands, Command<any, TData | null>]>;
150
163
  /**
151
164
  * @see https://redis.io/commands/getrange
152
165
  */
153
- getrange: (key: string, start: number, end: number) => this;
166
+ getrange: (key: string, start: number, end: number) => Pipeline<[...TCommands, Command<any, string>]>;
154
167
  /**
155
168
  * @see https://redis.io/commands/getset
156
169
  */
157
- getset: <TData>(key: string, value: TData) => this;
170
+ getset: <TData>(key: string, value: TData) => Pipeline<[...TCommands, Command<any, TData | null>]>;
158
171
  /**
159
172
  * @see https://redis.io/commands/hdel
160
173
  */
161
- hdel: (key: string, field: string) => this;
174
+ hdel: (key: string, ...fields: string[]) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
162
175
  /**
163
176
  * @see https://redis.io/commands/hexists
164
177
  */
165
- hexists: (key: string, field: string) => this;
178
+ hexists: (key: string, field: string) => Pipeline<[...TCommands, Command<any, number>]>;
166
179
  /**
167
180
  * @see https://redis.io/commands/hget
168
181
  */
169
- hget: <TData>(key: string, field: string) => this;
182
+ hget: <TData>(key: string, field: string) => Pipeline<[...TCommands, Command<any, TData | null>]>;
170
183
  /**
171
184
  * @see https://redis.io/commands/hgetall
172
185
  */
173
- hgetall: <TData extends Record<string, unknown>>(key: string) => this;
186
+ hgetall: <TData extends Record<string, unknown>>(key: string) => Pipeline<[...TCommands, Command<any, TData | null>]>;
174
187
  /**
175
188
  * @see https://redis.io/commands/hincrby
176
189
  */
177
- hincrby: (key: string, field: string, increment: number) => this;
190
+ hincrby: (key: string, field: string, increment: number) => Pipeline<[...TCommands, Command<any, number>]>;
178
191
  /**
179
192
  * @see https://redis.io/commands/hincrbyfloat
180
193
  */
181
- hincrbyfloat: (key: string, field: string, increment: number) => this;
194
+ hincrbyfloat: (key: string, field: string, increment: number) => Pipeline<[...TCommands, Command<any, number>]>;
182
195
  /**
183
196
  * @see https://redis.io/commands/hkeys
184
197
  */
185
- hkeys: (key: string) => this;
198
+ hkeys: (key: string) => Pipeline<[...TCommands, Command<any, string[]>]>;
186
199
  /**
187
200
  * @see https://redis.io/commands/hlen
188
201
  */
189
- hlen: (key: string) => this;
202
+ hlen: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
190
203
  /**
191
204
  * @see https://redis.io/commands/hmget
192
205
  */
193
- hmget: <TData extends Record<string, unknown>>(key: string, ...fields: string[]) => this;
206
+ hmget: <TData extends Record<string, unknown>>(key: string, ...fields: string[]) => Pipeline<[...TCommands, Command<any, TData | null>]>;
194
207
  /**
195
208
  * @see https://redis.io/commands/hmset
196
209
  */
197
210
  hmset: <TData>(key: string, kv: {
198
211
  [field: string]: TData;
199
- }) => this;
212
+ }) => Pipeline<[...TCommands, Command<any, "OK">]>;
200
213
  /**
201
214
  * @see https://redis.io/commands/hrandfield
202
215
  */
203
- hrandfield: <TData extends string | string[] | Record<string, unknown>>(key: string, count?: number, withValues?: boolean) => this;
216
+ hrandfield: <TData extends string | string[] | Record<string, unknown>>(key: string, count?: number, withValues?: boolean) => Pipeline<[...TCommands, Command<any, TData>]>;
204
217
  /**
205
218
  * @see https://redis.io/commands/hscan
206
219
  */
207
- hscan: (key: string, cursor: number, cmdOpts?: import("./commands/scan.js").ScanCommandOptions | undefined) => this;
220
+ hscan: (key: string, cursor: number, cmdOpts?: import("./commands/scan.js").ScanCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, [number, (string | number)[]]>]>;
208
221
  /**
209
222
  * @see https://redis.io/commands/hset
210
223
  */
211
224
  hset: <TData>(key: string, kv: {
212
225
  [field: string]: TData;
213
- }) => this;
226
+ }) => Pipeline<[...TCommands, Command<any, number>]>;
214
227
  /**
215
228
  * @see https://redis.io/commands/hsetnx
216
229
  */
217
- hsetnx: <TData>(key: string, field: string, value: TData) => this;
230
+ hsetnx: <TData>(key: string, field: string, value: TData) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
218
231
  /**
219
232
  * @see https://redis.io/commands/hstrlen
220
233
  */
221
- hstrlen: (key: string, field: string) => this;
234
+ hstrlen: (key: string, field: string) => Pipeline<[...TCommands, Command<any, number>]>;
222
235
  /**
223
236
  * @see https://redis.io/commands/hvals
224
237
  */
225
- hvals: (key: string) => this;
238
+ hvals: (key: string) => Pipeline<[...TCommands, Command<any, any>]>;
226
239
  /**
227
240
  * @see https://redis.io/commands/incr
228
241
  */
229
- incr: (key: string) => this;
242
+ incr: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
230
243
  /**
231
244
  * @see https://redis.io/commands/incrby
232
245
  */
233
- incrby: (key: string, value: number) => this;
246
+ incrby: (key: string, value: number) => Pipeline<[...TCommands, Command<any, number>]>;
234
247
  /**
235
248
  * @see https://redis.io/commands/incrbyfloat
236
249
  */
237
- incrbyfloat: (key: string, value: number) => this;
250
+ incrbyfloat: (key: string, value: number) => Pipeline<[...TCommands, Command<any, number>]>;
238
251
  /**
239
252
  * @see https://redis.io/commands/keys
240
253
  */
241
- keys: (pattern: string) => this;
254
+ keys: (pattern: string) => Pipeline<[...TCommands, Command<any, string[]>]>;
242
255
  /**
243
256
  * @see https://redis.io/commands/lindex
244
257
  */
245
- lindex: (key: string, index: number) => this;
258
+ lindex: (key: string, index: number) => Pipeline<[...TCommands, Command<any, any>]>;
246
259
  /**
247
260
  * @see https://redis.io/commands/linsert
248
261
  */
249
- linsert: <TData>(key: string, direction: "before" | "after", pivot: TData, value: TData) => Pipeline;
262
+ linsert: <TData>(key: string, direction: "before" | "after", pivot: TData, value: TData) => Pipeline<[...TCommands, Command<any, number>]>;
250
263
  /**
251
264
  * @see https://redis.io/commands/llen
252
265
  */
253
- llen: (key: string) => this;
266
+ llen: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
267
+ /**
268
+ * @see https://redis.io/commands/lmove
269
+ */
270
+ lmove: <TData = string>(source: string, destination: string, whereFrom: "left" | "right", whereTo: "left" | "right") => Pipeline<[...TCommands, Command<any, TData>]>;
254
271
  /**
255
272
  * @see https://redis.io/commands/lpop
256
273
  */
257
- lpop: <TData>(key: string, count?: number | undefined) => this;
274
+ lpop: <TData>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData | null>]>;
258
275
  /**
259
276
  * @see https://redis.io/commands/lpos
260
277
  */
@@ -262,252 +279,256 @@ export declare class Pipeline {
262
279
  rank?: number | undefined;
263
280
  count?: number | undefined;
264
281
  maxLen?: number | undefined;
265
- } | undefined) => this;
282
+ } | undefined) => Pipeline<[...TCommands, Command<any, TData>]>;
266
283
  /**
267
284
  * @see https://redis.io/commands/lpush
268
285
  */
269
- lpush: <TData>(key: string, ...elements: TData[]) => this;
286
+ lpush: <TData>(key: string, ...elements: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
270
287
  /**
271
288
  * @see https://redis.io/commands/lpushx
272
289
  */
273
- lpushx: <TData>(key: string, ...elements: TData[]) => this;
290
+ lpushx: <TData>(key: string, ...elements: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
274
291
  /**
275
292
  * @see https://redis.io/commands/lrange
276
293
  */
277
- lrange: <TResult = string>(key: string, start: number, end: number) => this;
294
+ lrange: <TResult = string>(key: string, start: number, end: number) => Pipeline<[...TCommands, Command<any, TResult[]>]>;
278
295
  /**
279
296
  * @see https://redis.io/commands/lrem
280
297
  */
281
- lrem: <TData>(key: string, count: number, value: TData) => this;
298
+ lrem: <TData>(key: string, count: number, value: TData) => Pipeline<[...TCommands, Command<any, number>]>;
282
299
  /**
283
300
  * @see https://redis.io/commands/lset
284
301
  */
285
- lset: <TData>(key: string, index: number, value: TData) => this;
302
+ lset: <TData>(key: string, index: number, value: TData) => Pipeline<[...TCommands, Command<any, "OK">]>;
286
303
  /**
287
304
  * @see https://redis.io/commands/ltrim
288
305
  */
289
- ltrim: (key: string, start: number, end: number) => this;
306
+ ltrim: (key: string, start: number, end: number) => Pipeline<[...TCommands, Command<any, "OK">]>;
290
307
  /**
291
308
  * @see https://redis.io/commands/mget
292
309
  */
293
- mget: <TData extends unknown[]>(...args: CommandArgs<typeof MGetCommand>) => this;
310
+ mget: <TData extends unknown[]>(...args: CommandArgs<typeof MGetCommand>) => Pipeline<[...TCommands, Command<any, TData>]>;
294
311
  /**
295
312
  * @see https://redis.io/commands/mset
296
313
  */
297
314
  mset: <TData>(kv: {
298
315
  [key: string]: TData;
299
- }) => this;
316
+ }) => Pipeline<[...TCommands, Command<any, "OK">]>;
300
317
  /**
301
318
  * @see https://redis.io/commands/msetnx
302
319
  */
303
320
  msetnx: <TData>(kv: {
304
321
  [key: string]: TData;
305
- }) => this;
322
+ }) => Pipeline<[...TCommands, Command<any, number>]>;
306
323
  /**
307
324
  * @see https://redis.io/commands/persist
308
325
  */
309
- persist: (key: string) => this;
326
+ persist: (key: string) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
310
327
  /**
311
328
  * @see https://redis.io/commands/pexpire
312
329
  */
313
- pexpire: (key: string, milliseconds: number) => this;
330
+ pexpire: (key: string, milliseconds: number) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
314
331
  /**
315
332
  * @see https://redis.io/commands/pexpireat
316
333
  */
317
- pexpireat: (key: string, unix: number) => this;
334
+ pexpireat: (key: string, unix: number) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
318
335
  /**
319
336
  * @see https://redis.io/commands/ping
320
337
  */
321
- ping: (args?: CommandArgs<typeof PingCommand>) => this;
338
+ ping: (args?: CommandArgs<typeof PingCommand>) => Pipeline<[...TCommands, Command<any, string>]>;
322
339
  /**
323
340
  * @see https://redis.io/commands/psetex
324
341
  */
325
- psetex: <TData>(key: string, ttl: number, value: TData) => this;
342
+ psetex: <TData>(key: string, ttl: number, value: TData) => Pipeline<[...TCommands, Command<any, string>]>;
326
343
  /**
327
344
  * @see https://redis.io/commands/pttl
328
345
  */
329
- pttl: (key: string) => this;
346
+ pttl: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
330
347
  /**
331
348
  * @see https://redis.io/commands/publish
332
349
  */
333
- publish: (channel: string, message: unknown) => this;
350
+ publish: (channel: string, message: unknown) => Pipeline<[...TCommands, Command<any, number>]>;
334
351
  /**
335
352
  * @see https://redis.io/commands/randomkey
336
353
  */
337
- randomkey: () => this;
354
+ randomkey: () => Pipeline<[...TCommands, Command<any, string | null>]>;
338
355
  /**
339
356
  * @see https://redis.io/commands/rename
340
357
  */
341
- rename: (source: string, destination: string) => this;
358
+ rename: (source: string, destination: string) => Pipeline<[...TCommands, Command<any, "OK">]>;
342
359
  /**
343
360
  * @see https://redis.io/commands/renamenx
344
361
  */
345
- renamenx: (source: string, destination: string) => this;
362
+ renamenx: (source: string, destination: string) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
346
363
  /**
347
364
  * @see https://redis.io/commands/rpop
348
365
  */
349
- rpop: <TData = string>(key: string, count?: number | undefined) => this;
366
+ rpop: <TData = string>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData | null>]>;
350
367
  /**
351
368
  * @see https://redis.io/commands/rpush
352
369
  */
353
- rpush: <TData>(key: string, ...elements: TData[]) => this;
370
+ rpush: <TData>(key: string, ...elements: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
354
371
  /**
355
372
  * @see https://redis.io/commands/rpushx
356
373
  */
357
- rpushx: <TData>(key: string, ...elements: TData[]) => this;
374
+ rpushx: <TData>(key: string, ...elements: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
358
375
  /**
359
376
  * @see https://redis.io/commands/sadd
360
377
  */
361
- sadd: <TData>(key: string, ...members: TData[]) => this;
378
+ sadd: <TData>(key: string, ...members: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
362
379
  /**
363
380
  * @see https://redis.io/commands/scan
364
381
  */
365
- scan: (cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => this;
382
+ scan: (cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, [number, string[]]>]>;
366
383
  /**
367
384
  * @see https://redis.io/commands/scard
368
385
  */
369
- scard: (key: string) => this;
386
+ scard: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
370
387
  /**
371
388
  * @see https://redis.io/commands/script-exists
372
389
  */
373
- scriptExists: (...args: CommandArgs<typeof ScriptExistsCommand>) => this;
390
+ scriptExists: (...args: CommandArgs<typeof ScriptExistsCommand>) => Pipeline<[...TCommands, Command<any, number[]>]>;
374
391
  /**
375
392
  * @see https://redis.io/commands/script-flush
376
393
  */
377
- scriptFlush: (opts?: import("./commands/script_flush.js").ScriptFlushCommandOptions | undefined) => this;
394
+ scriptFlush: (opts?: import("./commands/script_flush.js").ScriptFlushCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, "OK">]>;
378
395
  /**
379
396
  * @see https://redis.io/commands/script-load
380
397
  */
381
- scriptLoad: (script: string) => this;
382
- sdiff: (key: string, ...keys: string[]) => this;
398
+ scriptLoad: (script: string) => Pipeline<[...TCommands, Command<any, string>]>;
399
+ sdiff: (key: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, unknown[]>]>;
383
400
  /**
384
401
  * @see https://redis.io/commands/sdiffstore
385
402
  */
386
- sdiffstore: (destination: string, ...keys: string[]) => this;
403
+ sdiffstore: (destination: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, number>]>;
387
404
  /**
388
405
  * @see https://redis.io/commands/set
389
406
  */
390
- set: <TData>(key: string, value: TData, opts?: SetCommandOptions) => this;
407
+ set: <TData>(key: string, value: TData, opts?: SetCommandOptions) => Pipeline<[...TCommands, Command<any, "OK" | TData | null>]>;
391
408
  /**
392
409
  * @see https://redis.io/commands/setbit
393
410
  */
394
- setbit: (key: string, offset: number, value: 0 | 1) => this;
411
+ setbit: (key: string, offset: number, value: 0 | 1) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
395
412
  /**
396
413
  * @see https://redis.io/commands/setex
397
414
  */
398
- setex: <TData>(key: string, ttl: number, value: TData) => this;
415
+ setex: <TData>(key: string, ttl: number, value: TData) => Pipeline<[...TCommands, Command<any, "OK">]>;
399
416
  /**
400
417
  * @see https://redis.io/commands/setnx
401
418
  */
402
- setnx: <TData>(key: string, value: TData) => this;
419
+ setnx: <TData>(key: string, value: TData) => Pipeline<[...TCommands, Command<any, number>]>;
403
420
  /**
404
421
  * @see https://redis.io/commands/setrange
405
422
  */
406
- setrange: (key: string, offset: number, value: string) => this;
423
+ setrange: (key: string, offset: number, value: string) => Pipeline<[...TCommands, Command<any, number>]>;
407
424
  /**
408
425
  * @see https://redis.io/commands/sinter
409
426
  */
410
- sinter: (key: string, ...keys: string[]) => this;
427
+ sinter: (key: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, string[]>]>;
411
428
  /**
412
429
  * @see https://redis.io/commands/sinterstore
413
430
  */
414
- sinterstore: (destination: string, key: string, ...keys: string[]) => this;
431
+ sinterstore: (destination: string, key: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, number>]>;
415
432
  /**
416
433
  * @see https://redis.io/commands/sismember
417
434
  */
418
- sismember: <TData>(key: string, member: TData) => this;
435
+ sismember: <TData>(key: string, member: TData) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
419
436
  /**
420
437
  * @see https://redis.io/commands/smembers
421
438
  */
422
- smembers: (key: string) => this;
439
+ smembers: <TData extends unknown[] = string[]>(key: string) => Pipeline<[...TCommands, Command<any, TData>]>;
440
+ /**
441
+ * @see https://redis.io/commands/smismember
442
+ */
443
+ smismember: <TMembers extends unknown[]>(key: string, members: TMembers) => Pipeline<[...TCommands, Command<any, (0 | 1)[]>]>;
423
444
  /**
424
445
  * @see https://redis.io/commands/smove
425
446
  */
426
- smove: <TData>(source: string, destination: string, member: TData) => this;
447
+ smove: <TData>(source: string, destination: string, member: TData) => Pipeline<[...TCommands, Command<any, 0 | 1>]>;
427
448
  /**
428
449
  * @see https://redis.io/commands/spop
429
450
  */
430
- spop: <TData>(key: string, count?: number | undefined) => this;
451
+ spop: <TData>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData | null>]>;
431
452
  /**
432
453
  * @see https://redis.io/commands/srandmember
433
454
  */
434
- srandmember: <TData>(key: string, count?: number | undefined) => this;
455
+ srandmember: <TData>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData | null>]>;
435
456
  /**
436
457
  * @see https://redis.io/commands/srem
437
458
  */
438
- srem: <TData>(key: string, ...members: TData[]) => this;
459
+ srem: <TData>(key: string, ...members: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
439
460
  /**
440
461
  * @see https://redis.io/commands/sscan
441
462
  */
442
- sscan: (key: string, cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => this;
463
+ sscan: (key: string, cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, [number, (string | number)[]]>]>;
443
464
  /**
444
465
  * @see https://redis.io/commands/strlen
445
466
  */
446
- strlen: (key: string) => this;
467
+ strlen: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
447
468
  /**
448
469
  * @see https://redis.io/commands/sunion
449
470
  */
450
- sunion: (key: string, ...keys: string[]) => this;
471
+ sunion: (key: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, unknown[]>]>;
451
472
  /**
452
473
  * @see https://redis.io/commands/sunionstore
453
474
  */
454
- sunionstore: (destination: string, key: string, ...keys: string[]) => this;
475
+ sunionstore: (destination: string, key: string, ...keys: string[]) => Pipeline<[...TCommands, Command<any, number>]>;
455
476
  /**
456
477
  * @see https://redis.io/commands/time
457
478
  */
458
- time: () => this;
479
+ time: () => Pipeline<[...TCommands, Command<any, [number, number]>]>;
459
480
  /**
460
481
  * @see https://redis.io/commands/touch
461
482
  */
462
- touch: (...args: CommandArgs<typeof TouchCommand>) => this;
483
+ touch: (...args: CommandArgs<typeof TouchCommand>) => Pipeline<[...TCommands, Command<any, number>]>;
463
484
  /**
464
485
  * @see https://redis.io/commands/ttl
465
486
  */
466
- ttl: (key: string) => this;
487
+ ttl: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
467
488
  /**
468
489
  * @see https://redis.io/commands/type
469
490
  */
470
- type: (key: string) => this;
491
+ type: (key: string) => Pipeline<[...TCommands, Command<any, import("./commands/type.js").Type>]>;
471
492
  /**
472
493
  * @see https://redis.io/commands/unlink
473
494
  */
474
- unlink: (...args: CommandArgs<typeof UnlinkCommand>) => this;
495
+ unlink: (...args: CommandArgs<typeof UnlinkCommand>) => Pipeline<[...TCommands, Command<any, number>]>;
475
496
  /**
476
497
  * @see https://redis.io/commands/zadd
477
498
  */
478
- zadd: <TData>(...args: [key: string, scoreMember: ScoreMember<TData>, ...scoreMemberPairs: ScoreMember<TData>[]] | [string, ZAddCommandOptions | ZAddCommandOptionsWithIncr, ScoreMember<TData>, ...ScoreMember<TData>[]]) => this;
499
+ zadd: <TData>(...args: [key: string, scoreMember: ScoreMember<TData>, ...scoreMemberPairs: ScoreMember<TData>[]] | [string, ZAddCommandOptions | ZAddCommandOptionsWithIncr, ScoreMember<TData>, ...ScoreMember<TData>[]]) => Pipeline<[...TCommands, Command<any, number | null>]>;
479
500
  /**
480
501
  * @see https://redis.io/commands/zcard
481
502
  */
482
- zcard: (key: string) => this;
503
+ zcard: (key: string) => Pipeline<[...TCommands, Command<any, number>]>;
483
504
  /**
484
505
  * @see https://redis.io/commands/zcount
485
506
  */
486
- zcount: (key: string, min: string | number, max: string | number) => this;
507
+ zcount: (key: string, min: string | number, max: string | number) => Pipeline<[...TCommands, Command<any, number>]>;
487
508
  /**
488
509
  * @see https://redis.io/commands/zincrby
489
510
  */
490
- zincrby: <TData>(key: string, increment: number, member: TData) => this;
511
+ zincrby: <TData>(key: string, increment: number, member: TData) => Pipeline<[...TCommands, Command<any, number>]>;
491
512
  /**
492
513
  * @see https://redis.io/commands/zinterstore
493
514
  */
494
- zinterstore: (destination: string, numKeys: number, keys: string[], opts?: import("./commands/zinterstore.js").ZInterStoreCommandOptions | undefined) => this;
515
+ zinterstore: (destination: string, numKeys: number, keys: string[], opts?: import("./commands/zinterstore.js").ZInterStoreCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
495
516
  /**
496
517
  * @see https://redis.io/commands/zlexcount
497
518
  */
498
- zlexcount: (key: string, min: string, max: string) => this;
519
+ zlexcount: (key: string, min: string, max: string) => Pipeline<[...TCommands, Command<any, number>]>;
499
520
  /**
500
521
  * @see https://redis.io/commands/zmscore
501
522
  */
502
- zmscore: (key: string, members: unknown[]) => this;
523
+ zmscore: (key: string, members: unknown[]) => Pipeline<[...TCommands, Command<any, number[] | null>]>;
503
524
  /**
504
525
  * @see https://redis.io/commands/zpopmax
505
526
  */
506
- zpopmax: <TData>(key: string, count?: number | undefined) => this;
527
+ zpopmax: <TData>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData[]>]>;
507
528
  /**
508
529
  * @see https://redis.io/commands/zpopmin
509
530
  */
510
- zpopmin: <TData>(key: string, count?: number | undefined) => this;
531
+ zpopmin: <TData>(key: string, count?: number | undefined) => Pipeline<[...TCommands, Command<any, TData[]>]>;
511
532
  /**
512
533
  * @see https://redis.io/commands/zrange
513
534
  */
@@ -525,41 +546,141 @@ export declare class Pipeline {
525
546
  opts: {
526
547
  byScore: true;
527
548
  } & ZRangeCommandOptions
528
- ]) => this;
549
+ ]) => Pipeline<[...TCommands, Command<any, TData>]>;
529
550
  /**
530
551
  * @see https://redis.io/commands/zrank
531
552
  */
532
- zrank: <TData>(key: string, member: TData) => this;
553
+ zrank: <TData>(key: string, member: TData) => Pipeline<[...TCommands, Command<any, number | null>]>;
533
554
  /**
534
555
  * @see https://redis.io/commands/zrem
535
556
  */
536
- zrem: <TData>(key: string, ...members: TData[]) => this;
557
+ zrem: <TData>(key: string, ...members: TData[]) => Pipeline<[...TCommands, Command<any, number>]>;
537
558
  /**
538
559
  * @see https://redis.io/commands/zremrangebylex
539
560
  */
540
- zremrangebylex: (key: string, min: string, max: string) => this;
561
+ zremrangebylex: (key: string, min: string, max: string) => Pipeline<[...TCommands, Command<any, number>]>;
541
562
  /**
542
563
  * @see https://redis.io/commands/zremrangebyrank
543
564
  */
544
- zremrangebyrank: (key: string, start: number, stop: number) => this;
565
+ zremrangebyrank: (key: string, start: number, stop: number) => Pipeline<[...TCommands, Command<any, number>]>;
545
566
  /**
546
567
  * @see https://redis.io/commands/zremrangebyscore
547
568
  */
548
- zremrangebyscore: (key: string, min: number, max: number) => this;
569
+ zremrangebyscore: (key: string, min: number, max: number) => Pipeline<[...TCommands, Command<any, number>]>;
549
570
  /**
550
571
  * @see https://redis.io/commands/zrevrank
551
572
  */
552
- zrevrank: <TData>(key: string, member: TData) => this;
573
+ zrevrank: <TData>(key: string, member: TData) => Pipeline<[...TCommands, Command<any, number | null>]>;
553
574
  /**
554
575
  * @see https://redis.io/commands/zscan
555
576
  */
556
- zscan: (key: string, cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => this;
577
+ zscan: (key: string, cursor: number, opts?: import("./commands/scan.js").ScanCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, [number, (string | number)[]]>]>;
557
578
  /**
558
579
  * @see https://redis.io/commands/zscore
559
580
  */
560
- zscore: <TData>(key: string, member: TData) => this;
581
+ zscore: <TData>(key: string, member: TData) => Pipeline<[...TCommands, Command<any, number | null>]>;
561
582
  /**
562
583
  * @see https://redis.io/commands/zunionstore
563
584
  */
564
- zunionstore: (destination: string, numKeys: number, keys: string[], opts?: import("./commands/zunionstore.js").ZUnionStoreCommandOptions | undefined) => this;
585
+ zunionstore: (destination: string, numKeys: number, keys: string[], opts?: import("./commands/zunionstore.js").ZUnionStoreCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
586
+ /**
587
+ * @see https://redis.io/commands/zunion
588
+ */
589
+ zunion: (numKeys: number, keys: string[], opts?: import("./commands/zunion.js").ZUnionCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, any>]>;
590
+ /**
591
+ * @see https://redis.io/commands/?group=json
592
+ */
593
+ get json(): {
594
+ /**
595
+ * @see https://redis.io/commands/json.arrappend
596
+ */
597
+ arrappend: (key: string, path: string, ...values: unknown[]) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
598
+ /**
599
+ * @see https://redis.io/commands/json.arrindex
600
+ */
601
+ arrindex: (key: string, path: string, value: unknown, start?: number | undefined, stop?: number | undefined) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
602
+ /**
603
+ * @see https://redis.io/commands/json.arrinsert
604
+ */
605
+ arrinsert: (key: string, path: string, index: number, ...values: unknown[]) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
606
+ /**
607
+ * @see https://redis.io/commands/json.arrlen
608
+ */
609
+ arrlen: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
610
+ /**
611
+ * @see https://redis.io/commands/json.arrpop
612
+ */
613
+ arrpop: (key: string, path?: string | undefined, index?: number | undefined) => Pipeline<[...TCommands, Command<any, unknown[]>]>;
614
+ /**
615
+ * @see https://redis.io/commands/json.arrtrim
616
+ */
617
+ arrtrim: (key: string, path?: string | undefined, start?: number | undefined, stop?: number | undefined) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
618
+ /**
619
+ * @see https://redis.io/commands/json.clear
620
+ */
621
+ clear: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
622
+ /**
623
+ * @see https://redis.io/commands/json.del
624
+ */
625
+ del: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
626
+ /**
627
+ * @see https://redis.io/commands/json.forget
628
+ */
629
+ forget: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
630
+ /**
631
+ * @see https://redis.io/commands/json.get
632
+ */
633
+ get: (...args: CommandArgs<typeof JsonGetCommand>) => Pipeline<[...TCommands, Command<any, any>]>;
634
+ /**
635
+ * @see https://redis.io/commands/json.mget
636
+ */
637
+ mget: (keys: string[], path: string) => Pipeline<[...TCommands, Command<any, any>]>;
638
+ /**
639
+ * @see https://redis.io/commands/json.numincrby
640
+ */
641
+ numincrby: (key: string, path: string, value: number) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
642
+ /**
643
+ * @see https://redis.io/commands/json.nummultby
644
+ */
645
+ nummultby: (key: string, path: string, value: number) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
646
+ /**
647
+ * @see https://redis.io/commands/json.objkeys
648
+ */
649
+ objkeys: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, (string[] | null)[]>]>;
650
+ /**
651
+ * @see https://redis.io/commands/json.objlen
652
+ */
653
+ objlen: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
654
+ /**
655
+ * @see https://redis.io/commands/json.resp
656
+ */
657
+ resp: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, any>]>;
658
+ /**
659
+ * @see https://redis.io/commands/json.set
660
+ */
661
+ set: (key: string, path: string, value: string | number | boolean | Record<string, unknown> | (string | number | boolean | Record<string, unknown>)[], opts?: {
662
+ nx: true;
663
+ xx?: undefined;
664
+ } | {
665
+ nx?: undefined;
666
+ xx: true;
667
+ } | undefined) => Pipeline<[...TCommands, Command<any, "OK" | null>]>;
668
+ /**
669
+ * @see https://redis.io/commands/json.strappend
670
+ */
671
+ strappend: (key: string, path: string, value: string) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
672
+ /**
673
+ * @see https://redis.io/commands/json.strlen
674
+ */
675
+ strlen: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, (number | null)[]>]>;
676
+ /**
677
+ * @see https://redis.io/commands/json.toggle
678
+ */
679
+ toggle: (key: string, path: string) => Pipeline<[...TCommands, Command<any, number[]>]>;
680
+ /**
681
+ * @see https://redis.io/commands/json.type
682
+ */
683
+ type: (key: string, path?: string | undefined) => Pipeline<[...TCommands, Command<any, string[]>]>;
684
+ };
565
685
  }
686
+ export {};