@xylex-group/athena 2.13.0 → 3.0.0

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 (79) hide show
  1. package/README.md +91 -1398
  2. package/bin/athena-js.js +0 -0
  3. package/dist/admin.d.cts +1 -1
  4. package/dist/admin.d.ts +1 -1
  5. package/dist/billing.cjs +1199 -0
  6. package/dist/billing.cjs.map +1 -0
  7. package/dist/billing.d.cts +230 -0
  8. package/dist/billing.d.ts +230 -0
  9. package/dist/billing.js +1194 -0
  10. package/dist/billing.js.map +1 -0
  11. package/dist/browser.cjs +8934 -8075
  12. package/dist/browser.cjs.map +1 -1
  13. package/dist/browser.d.cts +11 -10
  14. package/dist/browser.d.ts +11 -10
  15. package/dist/browser.js +8931 -8073
  16. package/dist/browser.js.map +1 -1
  17. package/dist/cli/index.cjs +8328 -7062
  18. package/dist/cli/index.cjs.map +1 -1
  19. package/dist/cli/index.d.cts +4 -4
  20. package/dist/cli/index.d.ts +4 -4
  21. package/dist/cli/index.js +8328 -7062
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/index.cjs +9391 -8526
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +11 -10
  26. package/dist/index.d.ts +11 -10
  27. package/dist/index.js +9384 -8524
  28. package/dist/index.js.map +1 -1
  29. package/dist/{model-form-Dw4zEL5a.d.cts → model-form-BEfCGB5b.d.cts} +2 -2
  30. package/dist/{model-form-yRg71q3H.d.ts → model-form-BKetpu6Q.d.ts} +2 -2
  31. package/dist/module-8dSMcy0K.d.cts +326 -0
  32. package/dist/module-8dSMcy0K.d.ts +326 -0
  33. package/dist/{module-DBteUIob.d.ts → module-Bef_MAPO.d.ts} +6 -52
  34. package/dist/{module-yoX49uQC.d.cts → module-CrrSmpML.d.cts} +6 -52
  35. package/dist/next/client.cjs +2 -8668
  36. package/dist/next/client.cjs.map +1 -1
  37. package/dist/next/client.d.cts +1 -27
  38. package/dist/next/client.d.ts +1 -27
  39. package/dist/next/client.js +3 -8668
  40. package/dist/next/client.js.map +1 -1
  41. package/dist/next/server.cjs +79 -8779
  42. package/dist/next/server.cjs.map +1 -1
  43. package/dist/next/server.d.cts +30 -46
  44. package/dist/next/server.d.ts +30 -46
  45. package/dist/next/server.js +79 -8779
  46. package/dist/next/server.js.map +1 -1
  47. package/dist/{payload-DEOWN_oo.d.ts → payload-DWI1rw-e.d.cts} +1 -35
  48. package/dist/{payload-BzVbUgY_.d.cts → payload-DWI1rw-e.d.ts} +1 -35
  49. package/dist/{pipeline-Bj6RWt1A.d.ts → pipeline-BXFQbsUW.d.ts} +1 -1
  50. package/dist/{pipeline-Dwck-wZO.d.cts → pipeline-Dfsed4VD.d.cts} +1 -1
  51. package/dist/react.cjs +114 -13
  52. package/dist/react.cjs.map +1 -1
  53. package/dist/react.d.cts +46 -16
  54. package/dist/react.d.ts +46 -16
  55. package/dist/react.js +113 -14
  56. package/dist/react.js.map +1 -1
  57. package/dist/social-providers.cjs +33 -24
  58. package/dist/social-providers.cjs.map +1 -1
  59. package/dist/social-providers.d.cts +79 -82
  60. package/dist/social-providers.d.ts +79 -82
  61. package/dist/social-providers.js +33 -24
  62. package/dist/social-providers.js.map +1 -1
  63. package/dist/{types-eAKAh71s.d.cts → types-AOY-GLu8.d.cts} +27 -54
  64. package/dist/{types-eAKAh71s.d.ts → types-AOY-GLu8.d.ts} +27 -54
  65. package/dist/{types-CH78O90i.d.cts → types-Bltx6iL6.d.cts} +4 -6
  66. package/dist/{types-CH78O90i.d.ts → types-Bltx6iL6.d.ts} +4 -6
  67. package/dist/{types-DPgejxYC.d.ts → types-CK7cBQbC.d.ts} +2 -2
  68. package/dist/{types-CjC9_5ZQ.d.cts → types-Z3-rsiM3.d.cts} +2 -2
  69. package/dist/{types-BRP7sfSF.d.ts → types-jClgDy1J.d.ts} +2 -2
  70. package/dist/{types-BU8uJH_b.d.cts → types-kO_Ut5wU.d.cts} +2 -2
  71. package/dist/utils.cjs +7 -8
  72. package/dist/utils.cjs.map +1 -1
  73. package/dist/utils.d.cts +2 -5
  74. package/dist/utils.d.ts +2 -5
  75. package/dist/utils.js +7 -8
  76. package/dist/utils.js.map +1 -1
  77. package/dist/{client-DVOKSYDI.d.ts → v3-client-CuCNy-JJ.d.ts} +532 -470
  78. package/dist/{client-BJjUwDSg.d.cts → v3-client-G8JMOilK.d.cts} +532 -470
  79. package/package.json +31 -21
@@ -1,6 +1,7 @@
1
- import { i as AthenaJsonValue, a as AthenaGatewayCallOptions, g as AthenaJsonObject, j as AthenaRpcCallOptions, b as AthenaGatewayConnectionOptions, c as AthenaGatewayConnectionResult, w as AthenaFetchPayload, s as AthenaGatewayResponse, x as AthenaInsertPayload, y as AthenaUpdatePayload, v as AthenaDeletePayload, n as AthenaRpcPayload, C as AthenaQueryPayload, q as AthenaGatewayEndpointPath, r as AthenaGatewayMethod, D as AthenaGatewayBaseOptions, E as AthenaConditionValue, F as AthenaConditionArrayValue, G as AthenaGatewayCondition, H as AthenaSortBy, k as AthenaRpcFilter, o as BackendConfig, p as BackendType, e as AthenaGatewayErrorDetails, A as AthenaConditionCastType, I as AthenaConditionOperator } from './types-CH78O90i.js';
2
- import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-eAKAh71s.js';
3
- import { A as AthenaModelTarget, n as RowOf, a as InsertOf, U as UpdateOf, u as AthenaClientTableName, s as AthenaClientModelForTableName, R as RegistryDef, D as DatabaseDef, o as SchemaDef, r as AnyModelDef, j as ModelDef, m as ModelRelationMetadata, t as AthenaClientModelsInput } from './types-BRP7sfSF.js';
1
+ import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-AOY-GLu8.js';
2
+ import { e as AthenaGatewayErrorDetails, a as AthenaGatewayCallOptions, b as AthenaGatewayConnectionOptions, c as AthenaGatewayConnectionResult, x as AthenaFetchPayload, s as AthenaGatewayResponse, y as AthenaInsertPayload, z as AthenaUpdatePayload, w as AthenaDeletePayload, n as AthenaRpcPayload, j as AthenaRpcCallOptions, C as AthenaQueryPayload, i as AthenaJsonValue, g as AthenaJsonObject, q as AthenaGatewayEndpointPath, r as AthenaGatewayMethod, D as AthenaGatewayBaseOptions, E as AthenaConditionValue, F as AthenaConditionArrayValue, G as AthenaGatewayCondition, H as AthenaSortBy, k as AthenaRpcFilter, A as AthenaConditionCastType, I as AthenaConditionOperator, o as BackendConfig, p as BackendType } from './types-Bltx6iL6.js';
3
+ import { A as AthenaModelTarget, n as RowOf, a as InsertOf, U as UpdateOf, u as AthenaClientTableName, s as AthenaClientModelForTableName, R as RegistryDef, D as DatabaseDef, o as SchemaDef, r as AnyModelDef, j as ModelDef, m as ModelRelationMetadata, t as AthenaClientModelsInput } from './types-jClgDy1J.js';
4
+ import { a as AthenaBillingClientConfig, c as AthenaBillingModule } from './module-8dSMcy0K.js';
4
5
 
5
6
  type AthenaErrorKind = 'unique_violation' | 'not_found' | 'validation' | 'auth' | 'rate_limit' | 'transient' | 'unknown';
6
7
  declare const AthenaErrorKind: {
@@ -174,7 +175,7 @@ declare function coerceInt(value: unknown, options?: IntCoercionOptions): number
174
175
  */
175
176
  declare function assertInt(value: unknown, label?: string, options?: IntCoercionOptions): number;
176
177
  /**
177
- * @deprecated Prefer `experimental.retryReads` for standard SDK-managed read
178
+ * @deprecated Prefer `retryReads` for standard SDK-managed read
178
179
  * retries, or a call-site retry policy when you need custom write/replay
179
180
  * behavior. This helper is retained for compatibility.
180
181
  *
@@ -185,6 +186,89 @@ declare function assertInt(value: unknown, label?: string, options?: IntCoercion
185
186
  */
186
187
  declare function withRetry<T>(config: RetryConfig, fn: () => Promise<T>): Promise<T>;
187
188
 
189
+ interface AthenaResult<T> {
190
+ data: T | null;
191
+ error: AthenaResultError | null;
192
+ statusText?: string | null;
193
+ /**
194
+ * @deprecated Prefer `error?.gatewayCode`, `error?.hint`, and related fields on `error`.
195
+ */
196
+ errorDetails?: AthenaGatewayErrorDetails | null;
197
+ status: number;
198
+ count?: number | null;
199
+ raw: unknown;
200
+ }
201
+ interface AthenaResultError {
202
+ message: string;
203
+ code: string | null;
204
+ athenaCode: NormalizedAthenaError['code'];
205
+ gatewayCode?: AthenaGatewayErrorDetails['code'] | null;
206
+ kind: NormalizedAthenaError['kind'];
207
+ category: NormalizedAthenaError['category'];
208
+ retryable: boolean;
209
+ details: unknown | null;
210
+ hint: string | null;
211
+ status: number;
212
+ statusText: string | null;
213
+ constraint?: string;
214
+ table?: string;
215
+ operation?: string;
216
+ endpoint?: AthenaGatewayErrorDetails['endpoint'];
217
+ method?: AthenaGatewayErrorDetails['method'];
218
+ requestId?: string;
219
+ cause?: string;
220
+ raw: unknown;
221
+ }
222
+
223
+ type AthenaRequestService = 'db' | 'auth' | 'chat' | 'storage';
224
+ type AthenaRequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
225
+ interface AthenaRequestQueryValueMap {
226
+ [key: string]: string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>;
227
+ }
228
+ interface AthenaRequestOptions {
229
+ service?: AthenaRequestService;
230
+ url?: string;
231
+ path?: string;
232
+ method?: AthenaRequestMethod;
233
+ headers?: Record<string, string>;
234
+ /** Per-request override for the canonical `X-Athena-Key` header. */
235
+ apiKey?: string | null;
236
+ query?: AthenaRequestQueryValueMap;
237
+ body?: RequestInit['body'] | Record<string, unknown> | unknown[] | null;
238
+ signal?: AbortSignal;
239
+ credentials?: RequestInit['credentials'];
240
+ responseType?: 'json' | 'text' | 'response';
241
+ }
242
+ interface AthenaRequestResponse<T = unknown> {
243
+ ok: boolean;
244
+ status: number;
245
+ statusText: string;
246
+ headers: Headers;
247
+ data: T | string | null;
248
+ raw: Response;
249
+ }
250
+
251
+ interface AthenaFindManyAstPayload$1 {
252
+ table_name: string;
253
+ select: Record<string, unknown>;
254
+ where?: Record<string, unknown>;
255
+ orderBy?: Record<string, unknown>;
256
+ limit?: number;
257
+ }
258
+ declare function verifyAthenaGatewayUrl(baseUrl: string, options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
259
+ interface AthenaGatewayClient {
260
+ baseUrl: string;
261
+ buildHeaders(options?: AthenaGatewayCallOptions): Record<string, string>;
262
+ resolveCallOptions(options?: AthenaGatewayCallOptions): Promise<AthenaGatewayCallOptions | undefined>;
263
+ verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
264
+ fetchGateway<T>(payload: AthenaFetchPayload | AthenaFindManyAstPayload$1, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
265
+ insertGateway<T>(payload: AthenaInsertPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
266
+ updateGateway<T>(payload: AthenaUpdatePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
267
+ deleteGateway<T>(payload: AthenaDeletePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
268
+ rpcGateway<T>(payload: AthenaRpcPayload, options?: AthenaRpcCallOptions): Promise<AthenaGatewayResponse<T>>;
269
+ queryGateway<T>(payload: AthenaQueryPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
270
+ }
271
+
188
272
  type Whitespace = ' ' | '\n' | '\r' | '\t';
189
273
  type TrimLeft<TValue extends string> = TValue extends `${Whitespace}${infer TRest}` ? TrimLeft<TRest> : TValue;
190
274
  type TrimRight<TValue extends string> = TValue extends `${infer TRest}${Whitespace}` ? TrimRight<TRest> : TValue;
@@ -206,7 +290,7 @@ type AthenaSelectArrayElement<Row> = HasKnownSelectColumns<Row> extends true ? K
206
290
  type AthenaSelectInput = string | string[] | readonly string[];
207
291
  /**
208
292
  * Compile-time validation for `select` / `single` / `maybeSingle` when
209
- * `experimental.typecheckColumns` is enabled and row keys are known.
293
+ * row keys are known.
210
294
  *
211
295
  * - Comma-separated strings: validates each simple token (aliases / relation
212
296
  * syntax are allowed through).
@@ -215,63 +299,41 @@ type AthenaSelectInput = string | string[] | readonly string[];
215
299
  */
216
300
  type AthenaValidatedSelectInput<Row, TValue extends AthenaSelectInput> = HasKnownSelectColumns<Row> extends true ? TValue extends readonly string[] ? readonly AthenaSelectArrayElement<Row>[] : TValue extends string ? ValidateSelectList<Row, TValue> : never : TValue;
217
301
  /**
218
- * Filter / order / RPC column parameter when `typecheckColumns` is enabled.
219
- * When disabled, still surfaces known keys for IntelliSense via
220
- * `Keys | (string & {})` so free-form strings remain assignable.
302
+ * Filter / order / RPC column parameter. Known model keys are closed; dynamic
303
+ * rows retain free-form string support.
221
304
  */
222
- type AthenaTypecheckedColumnKey<Row, TEnabled extends boolean> = TEnabled extends true ? HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> : string : HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | (string & {}) : string;
305
+ type AthenaTypecheckedColumnKey<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> : string;
223
306
 
224
- type AthenaRowShape$2 = Record<string, AthenaJsonValue | undefined>;
225
- /**
226
- * Free-form `from<Row>(table)` table argument.
227
- * With client `models`, this is the known table-name union (IntelliSense).
228
- * Without models, plain `string`.
229
- */
230
- type UntypedTableName$1<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
231
- type ResolvedClientTableModel$1<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
232
- type ClientTableQueryBuilder$1<TModels, TTableName extends string, TStrict extends boolean> = TableQueryBuilder<RowOf<ResolvedClientTableModel$1<TModels, TTableName>>, InsertOf<ResolvedClientTableModel$1<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel$1<TModels, TTableName>>, unknown, TStrict>;
307
+ type AthenaRowShape$1 = Record<string, AthenaJsonValue | undefined>;
308
+ type UntypedTableName<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
309
+ type ResolvedClientTableModel<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
310
+ type ClientTableQueryBuilder<TModels, TTableName extends string> = TableQueryBuilder<RowOf<ResolvedClientTableModel<TModels, TTableName>>, InsertOf<ResolvedClientTableModel<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel<TModels, TTableName>>>;
233
311
  type AthenaUpsertOptions<Update> = AthenaGatewayCallOptions & {
234
312
  updateBody?: Update;
235
313
  onConflict?: string | string[];
236
314
  };
237
- interface AthenaDbModule<TStrict extends boolean = false, TModels = never> {
238
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
239
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder$1<TModels, TTableName, TStrict>;
240
- from<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
241
- select<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions): SelectChain<Row, Row, TStrict>;
242
- select(table: UntypedTableName$1<TModels>, columns: AthenaSelectInput, options?: AthenaGatewayCallOptions): SelectChain<AthenaRowShape$2, AthenaRowShape$2, TStrict>;
243
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
244
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
245
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaUpsertOptions<Update>): MutationQuery<Row, Row, TStrict>;
246
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaUpsertOptions<Update>): MutationQuery<Row[], Row, TStrict>;
247
- update<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
248
- delete<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions & {
315
+ interface AthenaDbModule<TModels = never> {
316
+ from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>>;
317
+ from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder<TModels, TTableName>;
318
+ from<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update>;
319
+ select<Row = AthenaRowShape$1>(table: UntypedTableName<TModels>, options?: AthenaGatewayCallOptions): SelectChain<Row, Row>;
320
+ select(table: UntypedTableName<TModels>, columns: AthenaSelectInput, options?: AthenaGatewayCallOptions): SelectChain<AthenaRowShape$1, AthenaRowShape$1>;
321
+ insert<Row = AthenaRowShape$1, Insert = Partial<Row>>(table: UntypedTableName<TModels>, values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row>;
322
+ insert<Row = AthenaRowShape$1, Insert = Partial<Row>>(table: UntypedTableName<TModels>, values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row>;
323
+ upsert<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Insert, options?: AthenaUpsertOptions<Update>): MutationQuery<Row, Row>;
324
+ upsert<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Insert[], options?: AthenaUpsertOptions<Update>): MutationQuery<Row[], Row>;
325
+ update<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row>;
326
+ delete<Row = AthenaRowShape$1>(table: UntypedTableName<TModels>, options?: AthenaGatewayCallOptions & {
249
327
  resourceId?: string;
250
- }): MutationQuery<Row | null, Row, TStrict>;
251
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
328
+ }): MutationQuery<Row | null, Row>;
329
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
252
330
  query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
253
331
  }
254
332
 
255
- interface AthenaFindManyAstPayload$1 {
256
- table_name: string;
257
- select: Record<string, unknown>;
258
- where?: Record<string, unknown>;
259
- orderBy?: Record<string, unknown>;
260
- limit?: number;
261
- }
262
- declare function verifyAthenaGatewayUrl(baseUrl: string, options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
263
- interface AthenaGatewayClient {
264
- baseUrl: string;
265
- buildHeaders(options?: AthenaGatewayCallOptions): Record<string, string>;
266
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
267
- fetchGateway<T>(payload: AthenaFetchPayload | AthenaFindManyAstPayload$1, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
268
- insertGateway<T>(payload: AthenaInsertPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
269
- updateGateway<T>(payload: AthenaUpdatePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
270
- deleteGateway<T>(payload: AthenaDeletePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
271
- rpcGateway<T>(payload: AthenaRpcPayload, options?: AthenaRpcCallOptions): Promise<AthenaGatewayResponse<T>>;
272
- queryGateway<T>(payload: AthenaQueryPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
273
- }
274
-
333
+ /** Files at or above this size use multipart unless `forceSinglePut` is set. */
334
+ declare const DEFAULT_MULTIPART_THRESHOLD_BYTES: number;
335
+ /** Chunk size for multipart uploads (S3 requires >= 5 MiB except the last part). */
336
+ declare const DEFAULT_MULTIPART_PART_SIZE_BYTES: number;
275
337
  type AthenaStorageTemplateValue = string | number | boolean | null | undefined;
276
338
  type AthenaStorageTemplateVars = Record<string, AthenaStorageTemplateValue>;
277
339
  type AthenaStorageEnv = Record<string, string | undefined>;
@@ -296,6 +358,7 @@ interface AthenaStorageFileConfig {
296
358
  prefixPath?: AthenaStoragePrefixPath;
297
359
  vars?: AthenaStorageTemplateVars;
298
360
  env?: AthenaStorageEnv;
361
+ directUpload?: AthenaStorageDirectUploadConfig;
299
362
  }
300
363
  type AthenaStorageUploadSource = Blob | ArrayBuffer | Uint8Array;
301
364
  interface AthenaStorageUploadConstraints {
@@ -316,6 +379,12 @@ interface AthenaStorageUploadProgress {
316
379
  aggregateLoaded: number;
317
380
  aggregateTotal: number;
318
381
  aggregatePercent: number;
382
+ /** Present when the active file is uploading via multipart. */
383
+ multipart?: {
384
+ uploadId: string;
385
+ partNumber: number;
386
+ partCount: number;
387
+ };
319
388
  }
320
389
  type AthenaStorageUploadProgressHandler = (progress: AthenaStorageUploadProgress) => void;
321
390
  interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, StorageServerSideEncryptionOptions {
@@ -343,6 +412,14 @@ interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, S
343
412
  env?: AthenaStorageEnv;
344
413
  uploadHeaders?: AthenaStorageUploadHeaders;
345
414
  onProgress?: AthenaStorageUploadProgressHandler;
415
+ /** Override auto-multipart threshold (default 32 MiB). */
416
+ multipartThresholdBytes?: number;
417
+ /** Override multipart chunk size (default 8 MiB, minimum 5 MiB). */
418
+ multipartPartSizeBytes?: number;
419
+ /** Always use a single PUT even when the file exceeds the multipart threshold. */
420
+ forceSinglePut?: boolean;
421
+ /** Always use multipart even when the file is below the threshold. */
422
+ forceMultipart?: boolean;
346
423
  }
347
424
  interface AthenaStorageUploadedFile {
348
425
  file: ManagedFileRecord;
@@ -375,6 +452,7 @@ interface AthenaStorageFileDownloadInput extends GetStorageFileUrlQuery {
375
452
  type AthenaStorageFileDeleteInput = string | readonly string[];
376
453
  interface AthenaStorageFileModule {
377
454
  upload(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
455
+ uploadMultipart(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
378
456
  download(fileId: string, query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response>;
379
457
  download(fileIds: readonly string[], query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response[]>;
380
458
  download(input: AthenaStorageFileDownloadInput, options?: AthenaStorageBinaryCallOptions): Promise<Response | Response[]>;
@@ -382,6 +460,146 @@ interface AthenaStorageFileModule {
382
460
  delete(fileId: string, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
383
461
  delete(fileIds: readonly string[], options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse[]>;
384
462
  }
463
+ interface AthenaStorageFileBaseModule {
464
+ createStorageUploadUrl(input: CreateStorageUploadUrlRequest, options?: AthenaStorageCallOptions): Promise<StorageUploadUrlResponse>;
465
+ createStorageUploadUrls(input: {
466
+ files: CreateStorageUploadUrlRequest[];
467
+ }, options?: AthenaStorageCallOptions): Promise<StorageBatchUploadUrlResponse>;
468
+ listStorageFiles(input: ListStorageFilesRequest, options?: AthenaStorageCallOptions): Promise<StorageListFilesResponse>;
469
+ getStorageFileProxy(fileId: string, query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response>;
470
+ deleteStorageFile(fileId: string, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
471
+ }
472
+ interface AthenaStorageMultipartClient {
473
+ create(input: StorageMultipartCreateRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
474
+ signPart(input: StorageMultipartSignPartRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
475
+ complete(input: StorageMultipartCompleteRequest, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
476
+ abort(input: StorageMultipartAbortRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
477
+ }
478
+ declare function createStorageFileModule(base: AthenaStorageFileBaseModule, config?: AthenaStorageFileConfig, multipart?: AthenaStorageMultipartClient): AthenaStorageFileModule;
479
+ declare function resolveStoragePath(path: string, input: {
480
+ prefixPath?: AthenaStoragePrefixPath;
481
+ vars?: AthenaStorageTemplateVars;
482
+ env?: AthenaStorageEnv;
483
+ organization_id?: string;
484
+ organizationId?: string;
485
+ user_id?: string;
486
+ userId?: string;
487
+ resource_id?: string;
488
+ resourceId?: string;
489
+ }, options: AthenaStorageCallOptions | undefined, config?: AthenaStorageFileConfig): string;
490
+
491
+ /**
492
+ * Admin backup surface exposed under `client.storage.backup.*`.
493
+ *
494
+ * Routes live at `/admin/backups*` (admin / elevated key). Archives land in the
495
+ * server-configured S3 or R2 profile (`ATHENA_BACKUP_S3_*` including provider + account_id).
496
+ */
497
+
498
+ type BackupRecoveryStrategy = 'none' | 'repair_missing_role_oids';
499
+ interface StorageBackupRecord {
500
+ job_id: number;
501
+ s3_bucket: string;
502
+ s3_key: string;
503
+ /** Alias of s3_key for convenience */
504
+ key: string;
505
+ client_name: string;
506
+ label?: string | null;
507
+ size_bytes: number;
508
+ execution_daemon_id?: string | null;
509
+ completed_at: string;
510
+ }
511
+ interface StorageBackupListPage {
512
+ backups: StorageBackupRecord[];
513
+ next_cursor: string | null;
514
+ }
515
+ interface StorageBackupListQuery {
516
+ client_name?: string;
517
+ cursor?: string | null;
518
+ limit?: number;
519
+ }
520
+ interface StorageBackupCreateRequest {
521
+ client_name: string;
522
+ label?: string;
523
+ pg_uri?: string;
524
+ recovery_strategy?: BackupRecoveryStrategy;
525
+ }
526
+ interface StorageBackupQueuedJob {
527
+ job_id: number;
528
+ client_name: string;
529
+ status: string;
530
+ key?: string;
531
+ }
532
+ interface StorageBackupRestoreRequest {
533
+ client_name: string;
534
+ pg_uri?: string;
535
+ }
536
+ interface StorageBackupJob {
537
+ id: number;
538
+ job_type: string;
539
+ client_name?: string | null;
540
+ status: string;
541
+ progress_pct?: number | null;
542
+ progress_stage?: string | null;
543
+ s3_bucket?: string | null;
544
+ s3_key?: string | null;
545
+ label?: string | null;
546
+ error_message?: string | null;
547
+ created_at?: string;
548
+ updated_at?: string;
549
+ completed_at?: string | null;
550
+ [key: string]: unknown;
551
+ }
552
+ interface StorageBackupSchedule {
553
+ id: number;
554
+ client_name: string;
555
+ frequency?: string;
556
+ enabled?: boolean;
557
+ label?: string | null;
558
+ [key: string]: unknown;
559
+ }
560
+ interface StorageBackupScheduleCreateRequest {
561
+ client_name: string;
562
+ frequency: string;
563
+ time_of_day?: string;
564
+ day_of_week?: number;
565
+ day_of_month?: number;
566
+ label?: string;
567
+ execution_daemon_id?: string;
568
+ enabled?: boolean;
569
+ [key: string]: unknown;
570
+ }
571
+ interface AthenaStorageBackupNamespace {
572
+ /** `GET /admin/backups` */
573
+ list(query?: StorageBackupListQuery, options?: AthenaStorageCallOptions): Promise<StorageBackupListPage>;
574
+ /** `POST /admin/backups` — queue a backup job */
575
+ create(input: StorageBackupCreateRequest, options?: AthenaStorageCallOptions): Promise<StorageBackupQueuedJob>;
576
+ /** `POST /admin/backups/{key}/restore` */
577
+ restore(key: string, input: StorageBackupRestoreRequest, options?: AthenaStorageCallOptions): Promise<StorageBackupQueuedJob>;
578
+ /** `DELETE /admin/backups/{key}` */
579
+ delete(key: string, options?: AthenaStorageCallOptions): Promise<void>;
580
+ /** Build a browser download URL for `GET /admin/backups/{key}/download` */
581
+ downloadUrl(key: string, options?: {
582
+ apiKey?: string;
583
+ }): string;
584
+ jobs: {
585
+ list(query?: {
586
+ limit?: number;
587
+ status?: string;
588
+ client_name?: string;
589
+ }, options?: AthenaStorageCallOptions): Promise<StorageBackupJob[]>;
590
+ get(jobId: number | string, options?: AthenaStorageCallOptions): Promise<StorageBackupJob>;
591
+ cancel(jobId: number | string, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
592
+ delete(jobId: number | string, options?: AthenaStorageCallOptions): Promise<void>;
593
+ /** Presigned/console open link for the job archive object (S3 or R2) */
594
+ openObjectUrl(jobId: number | string, options?: AthenaStorageCallOptions): Promise<string>;
595
+ };
596
+ schedules: {
597
+ list(options?: AthenaStorageCallOptions): Promise<StorageBackupSchedule[]>;
598
+ create(input: StorageBackupScheduleCreateRequest, options?: AthenaStorageCallOptions): Promise<StorageBackupSchedule>;
599
+ update(id: number | string, input: Partial<StorageBackupScheduleCreateRequest>, options?: AthenaStorageCallOptions): Promise<StorageBackupSchedule>;
600
+ delete(id: number | string, options?: AthenaStorageCallOptions): Promise<void>;
601
+ };
602
+ }
385
603
 
386
604
  declare const storageSdkManifest: {
387
605
  readonly namespace: "storage";
@@ -424,6 +642,47 @@ declare const storageSdkManifest: {
424
642
  readonly path: "/storage/credentials";
425
643
  readonly responseEnvelope: "raw";
426
644
  readonly responseType: "{ data: S3CredentialListItem[] }";
645
+ }, {
646
+ readonly name: "backup.list";
647
+ readonly method: "GET";
648
+ readonly path: "/admin/backups";
649
+ readonly responseEnvelope: "athena";
650
+ readonly responseType: "StorageBackupListPage";
651
+ readonly note: "Admin backup archives on server S3/R2 profile";
652
+ }, {
653
+ readonly name: "backup.create";
654
+ readonly method: "POST";
655
+ readonly path: "/admin/backups";
656
+ readonly requestType: "StorageBackupCreateRequest";
657
+ readonly responseEnvelope: "athena";
658
+ readonly responseType: "StorageBackupQueuedJob";
659
+ }, {
660
+ readonly name: "backup.restore";
661
+ readonly method: "POST";
662
+ readonly path: "/admin/backups/{key}/restore";
663
+ readonly pathParams: readonly ["key"];
664
+ readonly requestType: "StorageBackupRestoreRequest";
665
+ readonly responseEnvelope: "athena";
666
+ readonly responseType: "StorageBackupQueuedJob";
667
+ }, {
668
+ readonly name: "backup.delete";
669
+ readonly method: "DELETE";
670
+ readonly path: "/admin/backups/{key}";
671
+ readonly pathParams: readonly ["key"];
672
+ readonly responseEnvelope: "athena";
673
+ readonly responseType: "void";
674
+ }, {
675
+ readonly name: "backup.jobs.list";
676
+ readonly method: "GET";
677
+ readonly path: "/admin/backups/jobs";
678
+ readonly responseEnvelope: "athena";
679
+ readonly responseType: "StorageBackupJob[]";
680
+ }, {
681
+ readonly name: "backup.schedules.list";
682
+ readonly method: "GET";
683
+ readonly path: "/admin/backups/schedules";
684
+ readonly responseEnvelope: "athena";
685
+ readonly responseType: "StorageBackupSchedule[]";
427
686
  }, {
428
687
  readonly name: "createStorageUploadUrl";
429
688
  readonly method: "POST";
@@ -1019,10 +1278,24 @@ interface StorageServerSideEncryptionOptions {
1019
1278
  }
1020
1279
  interface CreateStorageCatalogRequest {
1021
1280
  name: string;
1022
- endpoint: string;
1023
- region: string;
1281
+ /**
1282
+ * S3-compatible API endpoint.
1283
+ * Optional when `provider` is R2 and `account_id` (or `metadata.account_id`) is set;
1284
+ * the Athena server derives `https://{account_id}.r2.cloudflarestorage.com`.
1285
+ */
1286
+ endpoint?: string;
1287
+ /**
1288
+ * Region. Optional for R2 (server defaults to `auto` after normalize).
1289
+ */
1290
+ region?: string;
1024
1291
  bucket: string;
1292
+ /** Storage provider: `s3` or `r2`; aliases include `aws`, `aws_s3`, `cloudflare_r2`, and `cloudflare-r2`. */
1025
1293
  provider?: string;
1294
+ /**
1295
+ * Cloudflare account ID for R2 catalogs when endpoint is omitted.
1296
+ * Also accepted under `metadata.account_id`.
1297
+ */
1298
+ account_id?: string;
1026
1299
  force_path_style?: boolean;
1027
1300
  default_prefix?: string;
1028
1301
  public_base_url?: string;
@@ -1037,6 +1310,8 @@ interface UpdateStorageCatalogRequest {
1037
1310
  region?: string;
1038
1311
  bucket?: string;
1039
1312
  provider?: string;
1313
+ /** Cloudflare account ID for R2 (merged into metadata / endpoint derivation). */
1314
+ account_id?: string;
1040
1315
  force_path_style?: boolean;
1041
1316
  default_prefix?: string | null;
1042
1317
  public_base_url?: string | null;
@@ -1281,49 +1556,78 @@ interface StorageMultipartListPartsRequest {
1281
1556
  file_id: string;
1282
1557
  upload_id: string;
1283
1558
  }
1284
- interface StorageObjectFolderCreateRequest {
1559
+ interface DeprecatedInlineStorageConnectionFields {
1560
+ provider?: string;
1561
+ /**
1562
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1563
+ */
1564
+ endpoint?: string;
1565
+ /**
1566
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1567
+ */
1568
+ region?: string;
1569
+ /**
1570
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1571
+ */
1572
+ access_key_id?: string;
1573
+ /**
1574
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1575
+ */
1576
+ secret_key?: string;
1577
+ /**
1578
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1579
+ */
1580
+ session_token?: string;
1581
+ }
1582
+ type StorageConnectionSelector = ({
1583
+ s3_id: string;
1584
+ s3Id?: string;
1585
+ } & DeprecatedInlineStorageConnectionFields) | ({
1586
+ s3_id?: string;
1587
+ s3Id: string;
1588
+ } & DeprecatedInlineStorageConnectionFields) | ({
1589
+ s3_id?: string;
1590
+ s3Id?: string;
1285
1591
  endpoint: string;
1286
1592
  region: string;
1287
1593
  access_key_id: string;
1288
1594
  secret_key: string;
1595
+ } & DeprecatedInlineStorageConnectionFields);
1596
+ type StorageObjectFolderCreateRequest = StorageConnectionSelector & {
1289
1597
  bucket: string;
1290
1598
  prefix: string;
1291
- }
1599
+ };
1292
1600
  type StorageObjectFolderDeleteRequest = StorageObjectFolderCreateRequest;
1293
1601
  interface StorageObjectFolderRenameRequest extends Omit<StorageObjectFolderCreateRequest, 'prefix'> {
1294
1602
  from_prefix: string;
1295
1603
  to_prefix: string;
1296
1604
  }
1297
- interface StorageObjectBaseRequest {
1298
- endpoint: string;
1299
- region: string;
1300
- access_key_id: string;
1301
- secret_key: string;
1605
+ type StorageObjectBaseRequest = StorageConnectionSelector & {
1302
1606
  bucket: string;
1303
- }
1304
- interface StorageObjectRequest extends StorageObjectBaseRequest {
1607
+ };
1608
+ type StorageObjectRequest = StorageObjectBaseRequest & {
1305
1609
  key: string;
1306
- }
1307
- interface StorageObjectValidateRequest extends StorageObjectRequest {
1610
+ };
1611
+ type StorageObjectValidateRequest = StorageObjectRequest & {
1308
1612
  checksum_sha256?: string;
1309
1613
  etag?: string;
1310
- }
1311
- interface StorageObjectCopyRequest extends StorageObjectBaseRequest, StorageServerSideEncryptionOptions {
1614
+ };
1615
+ type StorageObjectCopyRequest = StorageObjectBaseRequest & StorageServerSideEncryptionOptions & {
1312
1616
  source_key: string;
1313
1617
  destination_key: string;
1314
1618
  destination_bucket?: string;
1315
- }
1316
- interface StorageObjectPublicUrlRequest extends StorageObjectRequest {
1619
+ };
1620
+ type StorageObjectPublicUrlRequest = StorageObjectRequest & {
1317
1621
  public_base_url?: string;
1318
1622
  force_path_style?: boolean;
1319
- }
1320
- interface StorageListObjectsRequest extends StorageObjectBaseRequest {
1623
+ };
1624
+ type StorageListObjectsRequest = StorageObjectBaseRequest & {
1321
1625
  prefix?: string;
1322
1626
  delimiter?: string;
1323
1627
  continuation_token?: string;
1324
1628
  max_keys?: number;
1325
- }
1326
- interface StorageUpdateObjectRequest extends StorageObjectRequest {
1629
+ };
1630
+ type StorageUpdateObjectRequest = StorageObjectRequest & {
1327
1631
  acl?: string;
1328
1632
  content_type?: string;
1329
1633
  cache_control?: string;
@@ -1331,18 +1635,18 @@ interface StorageUpdateObjectRequest extends StorageObjectRequest {
1331
1635
  content_encoding?: string;
1332
1636
  content_language?: string;
1333
1637
  metadata?: Record<string, string>;
1334
- }
1335
- interface StorageObjectVersionListRequest extends StorageObjectBaseRequest {
1638
+ };
1639
+ type StorageObjectVersionListRequest = StorageObjectBaseRequest & {
1336
1640
  key?: string;
1337
1641
  max_keys?: number;
1338
1642
  key_marker?: string;
1339
1643
  version_id_marker?: string;
1340
1644
  delimiter?: string;
1341
- }
1342
- interface StorageObjectVersionMutationRequest extends StorageObjectRequest {
1645
+ };
1646
+ type StorageObjectVersionMutationRequest = StorageObjectRequest & {
1343
1647
  version_id: string;
1344
- }
1345
- interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1648
+ };
1649
+ type StorageSignedPostPolicyRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1346
1650
  content_type?: string;
1347
1651
  min_size?: number;
1348
1652
  max_size?: number;
@@ -1350,10 +1654,10 @@ interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageSe
1350
1654
  public_base_url?: string;
1351
1655
  force_path_style?: boolean;
1352
1656
  success_action_status?: string;
1353
- }
1354
- interface StoragePresignUploadRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1657
+ };
1658
+ type StoragePresignUploadRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1355
1659
  content_type?: string;
1356
- }
1660
+ };
1357
1661
  type StorageBucketCorsRequest = StorageObjectBaseRequest;
1358
1662
  interface StorageBucketCorsRuleInput {
1359
1663
  allowed_origins: string[];
@@ -1362,9 +1666,9 @@ interface StorageBucketCorsRuleInput {
1362
1666
  expose_headers?: string[];
1363
1667
  max_age_seconds?: number;
1364
1668
  }
1365
- interface StorageSetBucketCorsRequest extends StorageBucketCorsRequest {
1669
+ type StorageSetBucketCorsRequest = StorageBucketCorsRequest & {
1366
1670
  rules: StorageBucketCorsRuleInput[];
1367
- }
1671
+ };
1368
1672
  type StorageBucketLifecycleRequest = StorageObjectBaseRequest;
1369
1673
  interface StorageBucketLifecycleRuleInput {
1370
1674
  id?: string;
@@ -1375,20 +1679,20 @@ interface StorageBucketLifecycleRuleInput {
1375
1679
  noncurrent_version_expiration_days?: number;
1376
1680
  abort_incomplete_multipart_upload_days?: number;
1377
1681
  }
1378
- interface StorageSetBucketLifecycleRequest extends StorageBucketLifecycleRequest {
1682
+ type StorageSetBucketLifecycleRequest = StorageBucketLifecycleRequest & {
1379
1683
  rules: StorageBucketLifecycleRuleInput[];
1380
- }
1684
+ };
1381
1685
  type StorageBucketPolicyRequest = StorageObjectBaseRequest;
1382
- interface StorageSetBucketPolicyRequest extends StorageBucketPolicyRequest {
1686
+ type StorageSetBucketPolicyRequest = StorageBucketPolicyRequest & {
1383
1687
  policy: Record<string, unknown> | string;
1384
- }
1688
+ };
1385
1689
  type StoragePublicAccessBlockRequest = StorageObjectBaseRequest;
1386
- interface StorageSetPublicAccessBlockRequest extends StoragePublicAccessBlockRequest {
1690
+ type StorageSetPublicAccessBlockRequest = StoragePublicAccessBlockRequest & {
1387
1691
  block_public_acls?: boolean;
1388
1692
  ignore_public_acls?: boolean;
1389
1693
  block_public_policy?: boolean;
1390
1694
  restrict_public_buckets?: boolean;
1391
- }
1695
+ };
1392
1696
  interface StorageFileVersionPathRequest {
1393
1697
  file_id: string;
1394
1698
  version_id: string;
@@ -1418,6 +1722,21 @@ type AthenaStorageErrorHandler = (error: AthenaStorageError) => void | Promise<v
1418
1722
  interface AthenaStorageClientConfig extends AthenaStorageFileConfig {
1419
1723
  onError?: AthenaStorageErrorHandler;
1420
1724
  }
1725
+ /**
1726
+ * Credentials for signing the direct upload PUT in the client.
1727
+ * The Athena API still creates managed-file metadata so the public upload
1728
+ * result remains unchanged; file bytes go directly to this S3-compatible endpoint.
1729
+ */
1730
+ interface AthenaStorageDirectUploadConfig {
1731
+ endpoint: string;
1732
+ bucket?: string;
1733
+ region?: string;
1734
+ accessKeyId: string;
1735
+ secretAccessKey: string;
1736
+ sessionToken?: string;
1737
+ /** R2 uses path-style addressing by default. */
1738
+ forcePathStyle?: boolean;
1739
+ }
1421
1740
  interface AthenaStorageCallOptions extends AthenaGatewayCallOptions {
1422
1741
  signal?: AbortSignal;
1423
1742
  onError?: AthenaStorageErrorHandler;
@@ -1672,6 +1991,11 @@ interface AthenaStorageModule extends AthenaStorageBaseModule {
1672
1991
  bucket: AthenaStorageBucketNamespace;
1673
1992
  multipart: AthenaStorageMultipartNamespace;
1674
1993
  audit: AthenaStorageAuditNamespace;
1994
+ /**
1995
+ * Database backup / restore admin API (`/admin/backups*`).
1996
+ * Archives are stored in the server S3 or R2 profile (`ATHENA_BACKUP_S3_*`).
1997
+ */
1998
+ backup: AthenaStorageBackupNamespace;
1675
1999
  delete: AthenaStorageFileModule['delete'];
1676
2000
  }
1677
2001
  declare function createAthenaStorageError(input: AthenaStorageErrorInput): AthenaStorageError;
@@ -1974,7 +2298,7 @@ interface AthenaChatWsErrorEvent {
1974
2298
  code?: string | null;
1975
2299
  }
1976
2300
  type AthenaChatWsServerEvent = AthenaChatWsHelloOkEvent | AthenaChatWsSubscribedEvent | AthenaChatWsRoomCreatedEvent | AthenaChatWsRoomUpdatedEvent | AthenaChatWsRoomArchivedEvent | AthenaChatWsMessageCreatedEvent | AthenaChatWsMessageUpdatedEvent | AthenaChatWsMessageDeletedEvent | AthenaChatWsReadUpdatedEvent | AthenaChatWsMembersUpdatedEvent | AthenaChatWsTypingUpdatedEvent | AthenaChatWsPresenceUpdatedEvent | AthenaChatWsSyncRequiredEvent | AthenaChatWsReactionUpdatedEvent | AthenaChatWsPongEvent | AthenaChatWsErrorEvent;
1977
- type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'athenaKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
2301
+ type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
1978
2302
  signal?: AbortSignal;
1979
2303
  };
1980
2304
  interface AthenaChatWebSocketLike {
@@ -2045,7 +2369,7 @@ interface AthenaChatModule {
2045
2369
  realtime: AthenaChatRealtimeModule;
2046
2370
  }
2047
2371
 
2048
- type AthenaRowShape$1 = Record<string, AthenaJsonValue | undefined>;
2372
+ type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2049
2373
  type FilterColumnKey$1<Row> = Extract<keyof NonNullable<Row>, string>;
2050
2374
  type ResolvedFilterColumnKey$1<Row> = [FilterColumnKey$1<Row>] extends [never] ? string : FilterColumnKey$1<Row>;
2051
2375
  type AthenaFilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'contains' | 'containedBy';
@@ -2064,7 +2388,7 @@ type AthenaWhereOperatorInput = {
2064
2388
  contains?: AthenaConditionArrayValue;
2065
2389
  containedBy?: AthenaConditionArrayValue;
2066
2390
  };
2067
- type AthenaWhereColumnInput<Row = AthenaRowShape$1> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2391
+ type AthenaWhereColumnInput<Row = AthenaRowShape> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2068
2392
  type AthenaBooleanSafeOperator = Exclude<AthenaFilterOperator, 'in' | 'contains' | 'containedBy'>;
2069
2393
  type AthenaWhereBooleanSafeOperatorInput = Partial<Record<AthenaBooleanSafeOperator, AthenaConditionValue>>;
2070
2394
  type AthenaWhereBooleanNotOperatorInput = {
@@ -2078,9 +2402,9 @@ type AthenaStrictBooleanOperand<Keys extends string, Value> = {
2078
2402
  } & Partial<Record<Exclude<Keys, K>, never>>;
2079
2403
  }[Keys];
2080
2404
  type AthenaNonEmptyArray<T> = [T, ...T[]];
2081
- type AthenaWhereBooleanOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2082
- type AthenaWhereNotOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2083
- type AthenaWhere<Row = AthenaRowShape$1> = AthenaWhereColumnInput<Row> & {
2405
+ type AthenaWhereBooleanOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2406
+ type AthenaWhereNotOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2407
+ type AthenaWhere<Row = AthenaRowShape> = AthenaWhereColumnInput<Row> & {
2084
2408
  or?: string extends ResolvedFilterColumnKey$1<Row> ? Array<AthenaWhereColumnInput<Row>> : AthenaNonEmptyArray<AthenaWhereBooleanOperand<Row>>;
2085
2409
  not?: AthenaWhereNotOperand<Row>;
2086
2410
  };
@@ -2107,11 +2431,11 @@ type GenericRegistryDef = RegistryDef<Record<string, DatabaseDef<Record<string,
2107
2431
  type AthenaOrderByDirectionInput = 'asc' | 'desc' | 'ascending' | 'descending' | boolean | {
2108
2432
  ascending?: boolean;
2109
2433
  };
2110
- type AthenaOrderBy<Row = AthenaRowShape$1> = {
2434
+ type AthenaOrderBy<Row = AthenaRowShape> = {
2111
2435
  column: ResolvedFilterColumnKey$1<Row>;
2112
2436
  ascending?: boolean;
2113
2437
  } | Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaOrderByDirectionInput>>;
2114
- interface AthenaFindManyOptions<Row = AthenaRowShape$1, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2438
+ interface AthenaFindManyOptions<Row = AthenaRowShape, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2115
2439
  select: TSelect;
2116
2440
  where?: AthenaWhere<Row>;
2117
2441
  orderBy?: AthenaOrderBy<Row>;
@@ -2266,7 +2590,7 @@ interface AthenaUpsertDebugAst extends AthenaDebugAstBase<'upsert'> {
2266
2590
  interface AthenaUpdateDebugAst extends AthenaDebugAstBase<'update'> {
2267
2591
  tableName: string;
2268
2592
  input: {
2269
- values: AthenaUpdatePayload['set'];
2593
+ values: AthenaUpdatePayload['update_body'];
2270
2594
  state: AthenaTableBuilderStateAst;
2271
2595
  returning?: AthenaUpdatePayload['columns'];
2272
2596
  };
@@ -2317,116 +2641,6 @@ interface AthenaRawQueryDebugAst extends AthenaDebugAstBase<'query'> {
2317
2641
  type AthenaQueryDebugAst = AthenaSelectDebugAst | AthenaFindManyDebugAst | AthenaInsertDebugAst | AthenaUpsertDebugAst | AthenaUpdateDebugAst | AthenaDeleteDebugAst | AthenaRpcDebugAst | AthenaRawQueryDebugAst;
2318
2642
  declare function getAthenaDebugAst(value: unknown): AthenaQueryDebugAst | null;
2319
2643
 
2320
- interface AthenaResult<T> {
2321
- data: T | null;
2322
- error: AthenaResultError | null;
2323
- statusText?: string | null;
2324
- /**
2325
- * @deprecated Prefer `error?.gatewayCode`, `error?.hint`, and related fields on `error`.
2326
- */
2327
- errorDetails?: AthenaGatewayErrorDetails | null;
2328
- status: number;
2329
- count?: number | null;
2330
- raw: unknown;
2331
- }
2332
- interface AthenaResultError {
2333
- message: string;
2334
- code: string | null;
2335
- athenaCode: NormalizedAthenaError['code'];
2336
- gatewayCode?: AthenaGatewayErrorDetails['code'] | null;
2337
- kind: NormalizedAthenaError['kind'];
2338
- category: NormalizedAthenaError['category'];
2339
- retryable: boolean;
2340
- details: unknown | null;
2341
- hint: string | null;
2342
- status: number;
2343
- statusText: string | null;
2344
- constraint?: string;
2345
- table?: string;
2346
- operation?: string;
2347
- endpoint?: AthenaGatewayErrorDetails['endpoint'];
2348
- method?: AthenaGatewayErrorDetails['method'];
2349
- requestId?: string;
2350
- cause?: string;
2351
- raw: unknown;
2352
- }
2353
- type AthenaRequestService = 'db' | 'auth' | 'chat' | 'storage';
2354
- type AthenaRequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
2355
- interface AthenaRequestQueryValueMap {
2356
- [key: string]: string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>;
2357
- }
2358
- interface AthenaRequestOptions {
2359
- service?: AthenaRequestService;
2360
- url?: string;
2361
- path?: string;
2362
- method?: AthenaRequestMethod;
2363
- headers?: Record<string, string>;
2364
- /** Per-request override for the canonical `X-Athena-Key` header. */
2365
- apiKey?: string | null;
2366
- /** Per-request override for `X-Athena-Key` only. */
2367
- athenaKey?: string | null;
2368
- query?: AthenaRequestQueryValueMap;
2369
- body?: RequestInit['body'] | Record<string, unknown> | unknown[] | null;
2370
- signal?: AbortSignal;
2371
- credentials?: RequestInit['credentials'];
2372
- responseType?: 'json' | 'text' | 'response';
2373
- }
2374
- interface AthenaRequestResponse<T = unknown> {
2375
- ok: boolean;
2376
- status: number;
2377
- statusText: string;
2378
- headers: Headers;
2379
- data: T | string | null;
2380
- raw: Response;
2381
- }
2382
- interface AthenaClientExperimentalOptions {
2383
- /**
2384
- * @deprecated Failed `AthenaResult` values now include normalized structured `error`
2385
- * envelopes by default. This flag is retained as a no-op compatibility switch.
2386
- */
2387
- enableErrorNormalization?: boolean;
2388
- /**
2389
- * Retry retryable read failures (`select`, `findMany`, `query`) with a fixed internal policy.
2390
- *
2391
- * Applies two additional attempts with exponential backoff and jitter.
2392
- */
2393
- retryReads?: boolean;
2394
- /**
2395
- * Emit execution diagnostics for every query/mutation/RPC invocation.
2396
- * Includes payload, synthesized SQL, full outcome, and best-effort callsite metadata.
2397
- */
2398
- traceQueries?: boolean | AthenaQueryTraceOptions;
2399
- /**
2400
- * Build and attach a normalized operation AST for runtime debugging.
2401
- *
2402
- * When enabled, successful Athena results expose a non-enumerable debug AST
2403
- * that can be read with `getAthenaDebugAst(...)`. If tracing is also enabled,
2404
- * the same AST is included on emitted trace events.
2405
- */
2406
- debugAst?: boolean;
2407
- /**
2408
- * Compile-time opt-in for validating simple `select(...)`, `order(...)`, and
2409
- * RPC filter column names against known row keys.
2410
- *
2411
- * This flag is type-only. It does not change runtime request behavior.
2412
- */
2413
- typecheckColumns?: boolean;
2414
- /**
2415
- * Send the original `findMany(...)` AST body for clean object-select reads.
2416
- * This requires gateway support and falls back to legacy compiled transport
2417
- * when a chain carries filter/pagination state that the AST payload cannot
2418
- * represent losslessly yet.
2419
- */
2420
- findManyAst?: boolean;
2421
- /**
2422
- * Expose the experimental `client.storage.*` bindings for Athena storage APIs.
2423
- */
2424
- athenaStorageBackend?: boolean;
2425
- /**
2426
- * Optional storage SDK runtime hooks. Only used when `athenaStorageBackend` is enabled.
2427
- */
2428
- storage?: AthenaStorageClientConfig;
2429
- }
2430
2644
  interface AthenaQueryTraceOptions {
2431
2645
  /**
2432
2646
  * Custom sink for trace events. Defaults to console.info.
@@ -2465,34 +2679,21 @@ interface AthenaQueryTraceEvent {
2465
2679
  }
2466
2680
  type MutationSingleResult<Result> = Result extends Array<infer Item> ? Item | null : Result | null;
2467
2681
  type MutationResultRow<Result> = Result extends Array<infer Item> ? Item : Result;
2468
- type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2469
2682
  type FilterColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
2470
2683
  /** Known keys when the row shape is concrete; `string` when untyped / index signature. */
2471
2684
  type ResolvedFilterColumnKey<Row> = [FilterColumnKey<Row>] extends [never] ? string : string extends FilterColumnKey<Row> ? string : FilterColumnKey<Row>;
2472
- /**
2473
- * Table-name argument for free-form `from<Row>(table)`.
2474
- * - No client `models` → `string` (nothing to complete).
2475
- * - With `models` → known bare/qualified names (IntelliSense + reject unknowns).
2476
- * Prefer `.from("users")` without a row generic so the row type is inferred from the model.
2477
- */
2478
- type UntypedTableName<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
2479
- type ResolvedClientTableModel<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
2480
- type ClientTableQueryBuilder<TModels, TTableName extends string, TStrict extends boolean> = TableQueryBuilder<RowOf<ResolvedClientTableModel<TModels, TTableName>>, InsertOf<ResolvedClientTableModel<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel<TModels, TTableName>>, unknown, TStrict>;
2481
2685
  /**
2482
2686
  * Select/returning/single column input.
2483
2687
  *
2484
- * - Typed row + `typecheckColumns`: validates string lists; arrays use key union
2485
- * (IntelliSense + reject unknown elements without `as const`).
2486
- * - Typed row without strict: free-form strings still allowed; key unions are
2487
- * included so IDEs can suggest column names on `select` / `single` / etc.
2688
+ * - Typed row: validates string lists; arrays use the model-key union.
2488
2689
  * - Untyped row: plain `TValue` (`string | string[]`).
2489
2690
  */
2490
- type SelectColumnsFor<Row, TStrict extends boolean, TValue extends AthenaSelectInput> = TStrict extends true ? AthenaValidatedSelectInput<Row, TValue> : [FilterColumnKey<Row>] extends [never] ? TValue : string extends FilterColumnKey<Row> ? TValue : TValue | FilterColumnKey<Row> | '*' | readonly (FilterColumnKey<Row> | '*')[];
2491
- interface MutationQuery<Result, Row = MutationResultRow<Result>, TStrict extends boolean = false> extends PromiseLike<AthenaResult<Result>> {
2492
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2493
- returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2494
- single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2495
- maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2691
+ type SelectColumnsFor<Row, TValue extends AthenaSelectInput> = AthenaValidatedSelectInput<Row, TValue>;
2692
+ interface MutationQuery<Result, Row = MutationResultRow<Result>> extends PromiseLike<AthenaResult<Result>> {
2693
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2694
+ returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2695
+ single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2696
+ maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2496
2697
  then<TResult1 = AthenaResult<Result>, TResult2 = never>(onfulfilled?: ((value: AthenaResult<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
2497
2698
  catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<AthenaResult<Result> | TResult>;
2498
2699
  finally(onfinally?: (() => void) | undefined | null): Promise<AthenaResult<Result>>;
@@ -2528,277 +2729,138 @@ interface FilterChain<Self, Row> {
2528
2729
  or(expression: string): Self;
2529
2730
  }
2530
2731
  /** Chain returned by select() - supports filters and single/maybeSingle before execution */
2531
- interface SelectChain<Row, SelectedRow = Row, TStrict extends boolean = false> extends FilterChain<SelectChain<Row, SelectedRow, TStrict>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2532
- single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2533
- maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2732
+ interface SelectChain<Row, SelectedRow = Row> extends FilterChain<SelectChain<Row, SelectedRow>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2733
+ single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2734
+ maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2534
2735
  }
2535
2736
  /** Chain returned by update() - supports filters before execution, plus select/returning */
2536
- interface UpdateChain<Row, TStrict extends boolean = false> extends FilterChain<UpdateChain<Row, TStrict>, Row>, MutationQuery<Row[], Row, TStrict> {
2537
- }
2538
- interface RpcFilterChain<Self, Row, TStrict extends boolean = false> {
2539
- eq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2540
- neq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2541
- gt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2542
- gte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2543
- lt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2544
- lte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2545
- like(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2546
- ilike(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2547
- is(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2548
- in(column: AthenaTypecheckedColumnKey<Row, TStrict>, values: AthenaConditionArrayValue): Self;
2737
+ interface UpdateChain<Row> extends FilterChain<UpdateChain<Row>, Row>, MutationQuery<Row[], Row> {
2738
+ }
2739
+ interface RpcFilterChain<Self, Row> {
2740
+ eq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2741
+ neq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2742
+ gt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2743
+ gte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2744
+ lt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2745
+ lte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2746
+ like(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2747
+ ilike(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2748
+ is(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2749
+ in(column: AthenaTypecheckedColumnKey<Row>, values: AthenaConditionArrayValue): Self;
2549
2750
  }
2550
2751
  interface RpcOrderOptions {
2551
2752
  ascending?: boolean;
2552
2753
  }
2553
- interface RpcQueryBuilder<Row, TStrict extends boolean = false> extends RpcFilterChain<RpcQueryBuilder<Row, TStrict>, Row, TStrict>, PromiseLike<AthenaResult<Row[]>> {
2554
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2555
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2556
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2557
- order(column: AthenaTypecheckedColumnKey<Row, TStrict>, options?: RpcOrderOptions): RpcQueryBuilder<Row, TStrict>;
2558
- limit(count: number): RpcQueryBuilder<Row, TStrict>;
2559
- offset(count: number): RpcQueryBuilder<Row, TStrict>;
2560
- range(from: number, to: number): RpcQueryBuilder<Row, TStrict>;
2754
+ interface RpcQueryBuilder<Row> extends RpcFilterChain<RpcQueryBuilder<Row>, Row>, PromiseLike<AthenaResult<Row[]>> {
2755
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2756
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2757
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2758
+ order(column: AthenaTypecheckedColumnKey<Row>, options?: RpcOrderOptions): RpcQueryBuilder<Row>;
2759
+ limit(count: number): RpcQueryBuilder<Row>;
2760
+ offset(count: number): RpcQueryBuilder<Row>;
2761
+ range(from: number, to: number): RpcQueryBuilder<Row>;
2561
2762
  }
2562
2763
  interface AthenaFromOptions {
2563
2764
  schema?: string;
2564
2765
  }
2565
- interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown, TStrict extends boolean = false> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext, TStrict>, Row> {
2566
- select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T, TStrict>;
2766
+ interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext>, Row> {
2767
+ select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T>;
2567
2768
  findMany<const TSelect extends AthenaSelectShape>(options: AthenaFindManyOptions<Row, TSelect> & {
2568
2769
  select: AthenaValidatedSelectShape<TSelect>;
2569
2770
  }): Promise<AthenaResult<Array<AthenaFindManyResult<Row, TSelect, TContext>>>>;
2570
- insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
2571
- insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
2771
+ insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row>;
2772
+ insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row>;
2572
2773
  upsert(values: Insert, options?: AthenaGatewayCallOptions & {
2573
2774
  updateBody?: Update;
2574
2775
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2575
- }): MutationQuery<Row, Row, TStrict>;
2776
+ }): MutationQuery<Row, Row>;
2576
2777
  upsert(values: Insert[], options?: AthenaGatewayCallOptions & {
2577
2778
  updateBody?: Update;
2578
2779
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2579
- }): MutationQuery<Row[], Row, TStrict>;
2580
- update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
2780
+ }): MutationQuery<Row[], Row>;
2781
+ update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row>;
2581
2782
  delete(options?: AthenaGatewayCallOptions & {
2582
2783
  resourceId?: string;
2583
- }): MutationQuery<Row | null, Row, TStrict>;
2584
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2585
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2586
- reset(): TableQueryBuilder<Row, Insert, Update, TContext, TStrict>;
2587
- }
2588
- interface AthenaSdkClient<TStrict extends boolean = false, TModels = never> {
2589
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
2590
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder<TModels, TTableName, TStrict>;
2591
- from<Row = AthenaRowShape, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
2592
- db: AthenaDbModule<TStrict, TModels>;
2593
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
2594
- query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2595
- request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2596
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2597
- withContext(context?: AthenaClientContextOptions): AthenaSdkClient<TStrict, TModels>;
2598
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClient<TStrict, TModels>;
2599
- }
2600
- interface AthenaSdkClientWithAuth<TStrict extends boolean = false, TModels = never> extends AthenaSdkClient<TStrict, TModels> {
2601
- auth: AthenaAuthBindings;
2602
- chat: AthenaChatModule;
2603
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2604
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2605
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2606
- }
2607
- interface AthenaSdkClientWithStorage<TStrict extends boolean = false, TModels = never> extends AthenaSdkClientWithAuth<TStrict, TModels> {
2608
- storage: AthenaStorageModule;
2609
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2610
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2611
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2612
- }
2613
- interface AthenaHeaderBag {
2614
- get(name: string): string | null;
2615
- }
2616
- interface AthenaClientSessionLike {
2617
- user?: {
2618
- id?: string | null | undefined;
2619
- } | null | undefined;
2620
- session?: {
2621
- token?: string | null | undefined;
2622
- activeOrganizationId?: string | null | undefined;
2623
- } | null | undefined;
2624
- }
2625
- interface AthenaCreateClientServiceUrlConfig {
2626
- url?: string | null | undefined;
2627
- }
2628
- interface AthenaCreateClientChatOptions extends AthenaCreateClientServiceUrlConfig {
2629
- wsUrl?: string | null | undefined;
2630
- webSocketFactory?: AthenaChatWebSocketFactory | null | undefined;
2631
- }
2632
- interface AthenaCreateClientAuthOptions extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2633
- url?: string | null | undefined;
2634
- baseUrl?: string | null | undefined;
2635
- apiKey?: string | null | undefined;
2636
- bearerToken?: string | null | undefined;
2637
- cookie?: string | null | undefined;
2638
- sessionToken?: string | null | undefined;
2639
- }
2640
- interface AthenaCreateClientOptions {
2641
- client?: string | null | undefined;
2642
- userId?: string | null | undefined;
2643
- organizationId?: string | null | undefined;
2644
- forceNoCache?: boolean;
2645
- headers?: Record<string, string>;
2646
- /** Direct PostgreSQL URI forwarded as `x-pg-uri` on gateway requests. */
2647
- pgUri?: string | null | undefined;
2648
- /** JDBC/PostgreSQL URI mirrored to `x-athena-jdbc-url` and `x-jdbc-url`. */
2649
- jdbcUrl?: string | null | undefined;
2650
- /** Client-wide override for the canonical `X-Athena-Key` header. */
2651
- athenaKey?: string | null | undefined;
2652
- backend?: BackendConfig | BackendType;
2653
- db?: AthenaCreateClientServiceUrlConfig;
2654
- gateway?: AthenaCreateClientServiceUrlConfig;
2655
- auth?: AthenaCreateClientAuthOptions;
2656
- chat?: AthenaCreateClientChatOptions;
2657
- storage?: AthenaCreateClientServiceUrlConfig;
2658
- dbUrl?: string | null | undefined;
2659
- gatewayUrl?: string | null | undefined;
2660
- authUrl?: string | null | undefined;
2661
- chatUrl?: string | null | undefined;
2662
- chatWsUrl?: string | null | undefined;
2663
- storageUrl?: string | null | undefined;
2664
- models?: AthenaClientModelsInput;
2665
- experimental?: AthenaClientExperimentalOptions;
2666
- }
2667
- interface AthenaCreateClientOptionsWithStorage extends AthenaCreateClientOptions {
2668
- experimental: AthenaClientExperimentalOptions & {
2669
- athenaStorageBackend: true;
2670
- };
2671
- }
2672
- interface AthenaCreateClientOptionsWithTypecheckedColumns extends AthenaCreateClientOptions {
2673
- experimental: AthenaClientExperimentalOptions & {
2674
- typecheckColumns: true;
2675
- };
2784
+ }): MutationQuery<Row | null, Row>;
2785
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2786
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2787
+ reset(): TableQueryBuilder<Row, Insert, Update, TContext>;
2676
2788
  }
2677
- interface AthenaCreateClientOptionsWithStorageAndTypecheckedColumns extends AthenaCreateClientOptions {
2678
- experimental: AthenaClientExperimentalOptions & {
2679
- athenaStorageBackend: true;
2680
- typecheckColumns: true;
2681
- };
2789
+
2790
+ type MaybePromise<T> = T | Promise<T>;
2791
+ type ResolvedModels<TModels> = TModels extends AthenaClientModelsInput ? TModels : never;
2792
+ type AthenaService = 'db' | 'auth' | 'chat' | 'storage' | 'billing';
2793
+ declare class AthenaConfigurationError extends Error {
2794
+ readonly code: "ATHENA_SERVICE_NOT_CONFIGURED";
2795
+ readonly service: AthenaService;
2796
+ constructor(service: AthenaService, message?: string);
2797
+ }
2798
+ interface AthenaRequestContext {
2799
+ userId?: string | null;
2800
+ organizationId?: string | null;
2801
+ headers?: Record<string, string>;
2802
+ cookie?: string | null;
2803
+ bearerToken?: string | null;
2804
+ sessionToken?: string | null;
2805
+ forceNoCache?: boolean;
2682
2806
  }
2683
- interface AthenaCreateClientConfig extends AthenaCreateClientOptions {
2684
- url?: string | null | undefined;
2685
- key: string | null | undefined;
2807
+ type AthenaRequestContextProvider = () => MaybePromise<AthenaRequestContext | undefined>;
2808
+ interface AthenaDbConfig {
2809
+ url?: string | null;
2810
+ pgUri?: string | null;
2811
+ jdbcUrl?: string | null;
2686
2812
  }
2687
- interface AthenaCreateClientConfigWithStorage extends AthenaCreateClientOptionsWithStorage {
2688
- url?: string | null | undefined;
2689
- key: string | null | undefined;
2813
+ interface AthenaAuthConfig extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2814
+ url?: string | null;
2690
2815
  }
2691
- interface AthenaCreateClientConfigWithTypecheckedColumns extends AthenaCreateClientOptionsWithTypecheckedColumns {
2692
- url?: string | null | undefined;
2693
- key: string | null | undefined;
2816
+ interface AthenaChatConfig {
2817
+ url?: string | null;
2818
+ wsUrl?: string | null;
2819
+ webSocketFactory?: AthenaChatWebSocketFactory | null;
2694
2820
  }
2695
- interface AthenaCreateClientConfigWithStorageAndTypecheckedColumns extends AthenaCreateClientOptionsWithStorageAndTypecheckedColumns {
2696
- url?: string | null | undefined;
2697
- key: string | null | undefined;
2821
+ interface AthenaStorageConfig extends Omit<AthenaStorageClientConfig, 'baseUrl' | 'directUpload'> {
2822
+ url?: string | null;
2823
+ directUpload?: AthenaStorageDirectUploadConfig;
2698
2824
  }
2699
- interface AthenaClientOverrideOptions extends Omit<AthenaCreateClientOptions, 'experimental' | 'models'> {
2700
- url?: string | null | undefined;
2701
- key?: string | null | undefined;
2825
+ interface AthenaBillingConfig extends Omit<AthenaBillingClientConfig, 'baseUrl' | 'apiKey' | 'client' | 'fetchImpl'> {
2826
+ /** Optional override; defaults to the unified/root or db Athena URL. */
2827
+ url?: string | null;
2702
2828
  }
2703
- interface AthenaClientContextOptions {
2704
- userId?: string | null | undefined;
2705
- organizationId?: string | null | undefined;
2706
- forceNoCache?: boolean;
2829
+ interface AthenaClientConfig<TModels extends AthenaClientModelsInput | undefined = undefined> {
2830
+ url?: string | null;
2831
+ key?: string | null;
2832
+ client?: string | null;
2833
+ backend?: BackendConfig | BackendType;
2707
2834
  headers?: Record<string, string>;
2708
- auth?: Omit<AthenaCreateClientAuthOptions, 'url' | 'baseUrl' | 'apiKey'>;
2709
- }
2710
- interface AthenaClientSessionOptions extends AthenaClientContextOptions {
2711
- requestHeaders?: AthenaHeaderBag | Record<string, string | null | undefined>;
2712
- }
2713
- interface AthenaClientFromEnvironmentOptions extends AthenaCreateClientOptions {
2835
+ models?: TModels;
2714
2836
  env?: Record<string, string | undefined>;
2715
- url?: string | null | undefined;
2716
- key?: string | null | undefined;
2717
- }
2718
- interface AthenaClientFromEnvironmentOptionsWithStorage extends AthenaClientFromEnvironmentOptions {
2719
- experimental: AthenaClientExperimentalOptions & {
2720
- athenaStorageBackend: true;
2721
- };
2722
- }
2723
- interface AthenaClientFromEnvironmentOptionsWithTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2724
- experimental: AthenaClientExperimentalOptions & {
2725
- typecheckColumns: true;
2726
- };
2837
+ context?: AthenaRequestContext | AthenaRequestContextProvider;
2838
+ db?: AthenaDbConfig;
2839
+ auth?: AthenaAuthConfig;
2840
+ chat?: AthenaChatConfig;
2841
+ storage?: AthenaStorageConfig;
2842
+ billing?: AthenaBillingConfig;
2843
+ retryReads?: boolean;
2844
+ traceQueries?: boolean | AthenaQueryTraceOptions;
2845
+ debugAst?: boolean;
2846
+ findManyAst?: boolean;
2727
2847
  }
2728
- interface AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2729
- experimental: AthenaClientExperimentalOptions & {
2730
- athenaStorageBackend: true;
2731
- typecheckColumns: true;
2732
- };
2848
+ type V3TableBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, Result = unknown> = TableQueryBuilder<Row, Insert, Update, Result>;
2849
+ interface AthenaClient<TModels extends AthenaClientModelsInput | undefined = AthenaClientModelsInput | undefined> {
2850
+ readonly db: AthenaDbModule<ResolvedModels<TModels>>;
2851
+ readonly auth: AthenaAuthBindings;
2852
+ readonly chat: AthenaChatModule;
2853
+ readonly storage: AthenaStorageModule;
2854
+ readonly billing: AthenaBillingModule;
2855
+ from<TModel extends AthenaModelTarget>(model: TModel): V3TableBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>>;
2856
+ from<TTableName extends AthenaClientTableName<ResolvedModels<TModels>>>(table: TTableName, options?: AthenaFromOptions): V3TableBuilder<RowOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>, InsertOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>, UpdateOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>>;
2857
+ from<Row = Record<string, unknown>, Insert = Partial<Row>, Update = Partial<Insert>>(table: string, options?: AthenaFromOptions): V3TableBuilder<Row, Insert, Update>;
2858
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
2859
+ query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2860
+ request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2861
+ verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2862
+ withContext(context: AthenaRequestContext): AthenaClient<TModels>;
2733
2863
  }
2734
- interface AthenaClientBuilder<StorageEnabled extends boolean = false, TStrict extends boolean = false> {
2735
- /** Set the public Athena base URL. */
2736
- url(url: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2737
- /** Set the API key used for all requests. */
2738
- key(apiKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2739
- /** Set the default backend routing strategy. */
2740
- backend(backend: BackendConfig | BackendType): AthenaClientBuilder<StorageEnabled, TStrict>;
2741
- /** Set the default Athena client routing key. */
2742
- client(clientName: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2743
- /** Attach static headers to every request. */
2744
- headers(headers: Record<string, string>): AthenaClientBuilder<StorageEnabled, TStrict>;
2745
- /** Forward a direct PostgreSQL URI as `x-pg-uri` on gateway requests. */
2746
- pgUri(pgUri: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2747
- /** Forward a JDBC/PostgreSQL URI to compatibility JDBC headers. */
2748
- jdbcUrl(jdbcUrl: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2749
- /** Override the canonical `X-Athena-Key` header for this client. */
2750
- athenaKey(athenaKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2751
- /** Configure Athena Auth client behavior for `client.auth.*` methods. */
2752
- auth(config: AthenaCreateClientAuthOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2753
- /** Configure experimental client options and narrow the built client when storage or strict column checks are enabled. */
2754
- experimental(options: AthenaClientExperimentalOptions & {
2755
- athenaStorageBackend: true;
2756
- typecheckColumns: true;
2757
- }): AthenaClientBuilder<true, true>;
2758
- experimental(options: AthenaClientExperimentalOptions & {
2759
- athenaStorageBackend: true;
2760
- }): AthenaClientBuilder<true, TStrict>;
2761
- experimental(options: AthenaClientExperimentalOptions & {
2762
- typecheckColumns: true;
2763
- }): AthenaClientBuilder<StorageEnabled, true>;
2764
- experimental(options: AthenaClientExperimentalOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2765
- /** Apply createClient options and narrow the built client when storage is enabled. */
2766
- options(options: AthenaCreateClientOptionsWithStorageAndTypecheckedColumns): AthenaClientBuilder<true, true>;
2767
- options(options: AthenaCreateClientOptionsWithStorage): AthenaClientBuilder<true, TStrict>;
2768
- options(options: AthenaCreateClientOptionsWithTypecheckedColumns): AthenaClientBuilder<StorageEnabled, true>;
2769
- options(options: AthenaCreateClientOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2770
- /** Build the immutable Athena SDK client. */
2771
- build(): StorageEnabled extends true ? AthenaSdkClientWithStorage<TStrict> : AthenaSdkClientWithAuth<TStrict>;
2772
- }
2773
- /** Canonical Athena client factory with builder-based configuration. */
2774
- declare class AthenaClient {
2775
- /** Create a fluent builder for a strongly-typed Athena SDK client. */
2776
- static builder(): AthenaClientBuilder<false, false>;
2777
- /** Build a client from process environment variables. */
2778
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns): AthenaSdkClientWithStorage<true>;
2779
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorage): AthenaSdkClientWithStorage<false>;
2780
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithTypecheckedColumns): AthenaSdkClientWithAuth<true>;
2781
- static fromEnvironment(options?: AthenaClientFromEnvironmentOptions): AthenaSdkClientWithAuth<false>;
2782
- }
2783
- type ExtractClientModels<TInput> = TInput extends {
2784
- models: infer TModels extends AthenaClientModelsInput;
2785
- } ? TModels : never;
2786
- type AthenaCreateClientReturn<TInput> = TInput extends {
2787
- experimental: AthenaClientExperimentalOptions & {
2788
- athenaStorageBackend: true;
2789
- typecheckColumns: true;
2790
- };
2791
- } ? AthenaSdkClientWithStorage<true, ExtractClientModels<TInput>> : TInput extends {
2792
- experimental: AthenaClientExperimentalOptions & {
2793
- athenaStorageBackend: true;
2794
- };
2795
- } ? AthenaSdkClientWithStorage<false, ExtractClientModels<TInput>> : TInput extends {
2796
- experimental: AthenaClientExperimentalOptions & {
2797
- typecheckColumns: true;
2798
- };
2799
- } ? AthenaSdkClientWithAuth<true, ExtractClientModels<TInput>> : AthenaSdkClientWithAuth<false, ExtractClientModels<TInput>>;
2800
- /** Create client (convenience wrapper; use AthenaClient.builder() for full control) */
2801
- declare function createClient<TConfig extends AthenaCreateClientConfig>(config: TConfig): AthenaCreateClientReturn<TConfig>;
2802
- declare function createClient<TOptions extends AthenaCreateClientOptions | undefined>(url: string | null | undefined, apiKey: string | null | undefined, options?: TOptions): TOptions extends AthenaCreateClientOptions ? AthenaCreateClientReturn<TOptions> : AthenaSdkClientWithAuth<false>;
2864
+ declare function createClient<const TModels extends AthenaClientModelsInput | undefined = undefined>(config: AthenaClientConfig<TModels>): AthenaClient<TModels>;
2803
2865
 
2804
- export { type AthenaChatWsReadUpdatedEvent as $, type AthenaChatAddMembersRequest as A, type AthenaChatRoom as B, type AthenaChatRoomCreatedResponse as C, type AthenaChatRoomKind as D, type AthenaChatRoomPage as E, type AthenaChatSearchHit as F, type AthenaChatSearchMessagesRequest as G, type AthenaChatSearchPage as H, type AthenaChatSendMessageRequest as I, type AthenaChatUpdateRoomRequest as J, type AthenaChatWebSocketFactory as K, type AthenaChatWebSocketLike as L, type AthenaChatWsAuthHelloCommand as M, type AthenaChatWsClientCommand as N, type AthenaChatWsErrorEvent as O, type AthenaChatWsHelloOkEvent as P, type AthenaChatWsMembersUpdatedEvent as Q, type AthenaChatWsMessageCreatedEvent as R, type AthenaChatWsMessageDeletedEvent as S, type AthenaChatWsMessageEventBase as T, type AthenaChatWsMessageUpdatedEvent as U, type AthenaChatWsPingCommand as V, type AthenaChatWsPongEvent as W, type AthenaChatWsPresenceHeartbeatCommand as X, type AthenaChatWsPresenceUpdatedEvent as Y, type AthenaChatWsReactionUpdatedEvent as Z, type AthenaChatWsReadUpToCommand as _, type AthenaChatAddReactionRequest as a, type AthenaStorageBaseModule as a$, type AthenaChatWsResumeCommand as a0, type AthenaChatWsRoomArchivedEvent as a1, type AthenaChatWsRoomCreatedEvent as a2, type AthenaChatWsRoomEventBase as a3, type AthenaChatWsRoomUpdatedEvent as a4, type AthenaChatWsServerEvent as a5, type AthenaChatWsSubscribeCommand as a6, type AthenaChatWsSubscribedEvent as a7, type AthenaChatWsSyncRequiredEvent as a8, type AthenaChatWsTypingStartCommand as a9, type AthenaEnvelope as aA, AthenaError as aB, AthenaErrorCategory as aC, AthenaErrorCode as aD, type AthenaErrorInput as aE, AthenaErrorKind as aF, type AthenaFindManyDebugAst as aG, type AthenaFromOptions as aH, type AthenaHeaderBag as aI, type AthenaInsertDebugAst as aJ, type AthenaOperationContext as aK, type AthenaQueryDebugAst as aL, type AthenaRawQueryDebugAst as aM, type AthenaRequestMethod as aN, type AthenaRequestOptions as aO, type AthenaRequestQueryValueMap as aP, type AthenaRequestResponse as aQ, type AthenaRequestService as aR, type AthenaResult as aS, type AthenaRpcBuilderStateAst as aT, type AthenaRpcDebugAst as aU, type AthenaSdkClient as aV, type AthenaSdkClientWithAuth as aW, type AthenaSdkClientWithStorage as aX, type AthenaSelectDebugAst as aY, type AthenaSelectDebugTransport as aZ, type AthenaStorageAuditNamespace as a_, type AthenaChatWsTypingStopCommand as aa, type AthenaChatWsTypingUpdatedEvent as ab, type AthenaChatWsUnsubscribeCommand as ac, AthenaClient as ad, type AthenaClientContextOptions as ae, type AthenaClientExperimentalOptions as af, type AthenaClientFromEnvironmentOptions as ag, type AthenaClientFromEnvironmentOptionsWithStorage as ah, type AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns as ai, type AthenaClientFromEnvironmentOptionsWithTypecheckedColumns as aj, type AthenaClientOverrideOptions as ak, type AthenaClientSessionLike as al, type AthenaClientSessionOptions as am, type AthenaCreateClientAuthOptions as an, type AthenaCreateClientChatOptions as ao, type AthenaCreateClientConfig as ap, type AthenaCreateClientConfigWithStorage as aq, type AthenaCreateClientConfigWithStorageAndTypecheckedColumns as ar, type AthenaCreateClientConfigWithTypecheckedColumns as as, type AthenaCreateClientOptions as at, type AthenaCreateClientOptionsWithStorage as au, type AthenaCreateClientOptionsWithStorageAndTypecheckedColumns as av, type AthenaCreateClientOptionsWithTypecheckedColumns as aw, type AthenaCreateClientServiceUrlConfig as ax, type AthenaDbModule as ay, type AthenaDeleteDebugAst as az, type AthenaChatAttachmentInput as b, type RpcQueryBuilder as b$, type AthenaStorageBinaryCallOptions as b0, type AthenaStorageBucketCorsNamespace as b1, type AthenaStorageBucketNamespace as b2, type AthenaStorageCallOptions as b3, type AthenaStorageCatalogNamespace as b4, type AthenaStorageClientConfig as b5, type AthenaStorageCredentialsNamespace as b6, type AthenaStorageEnv as b7, AthenaStorageError as b8, AthenaStorageErrorCode as b9, type AthenaStorageUploadConstraints as bA, type AthenaStorageUploadProgress as bB, type AthenaStorageUploadProgressHandler as bC, type AthenaStorageUploadSource as bD, type AthenaStorageUploadedFile as bE, type AthenaTableBuilderStateAst as bF, type AthenaUpdateDebugAst as bG, type AthenaUpsertDebugAst as bH, type ConfirmStorageUploadRequest as bI, type CopyStorageFileRequest as bJ, type CreateStorageCatalogRequest as bK, type CreateStorageUploadUrlRequest as bL, type CreateStorageUploadUrlsRequest as bM, type DeleteManyStorageFilesRequest as bN, type DeleteStorageFolderRequest as bO, type GetStorageFileUrlQuery as bP, type IntCoercionOptions as bQ, type ListStorageFilesRequest as bR, type ListStorageFoldersRequest as bS, type ManagedFileRecord as bT, type MoveStorageFolderRequest as bU, type NormalizedAthenaError as bV, type PresignedFileUrlResponse as bW, type RequireAffectedOptions as bX, type RetryBackoffStrategy as bY, type RetryConfig as bZ, type RpcOrderOptions as b_, type AthenaStorageErrorDetails as ba, type AthenaStorageErrorHandler as bb, type AthenaStorageErrorInput as bc, type AthenaStorageFileConfig as bd, type AthenaStorageFileDeleteInput as be, type AthenaStorageFileDownloadInput as bf, type AthenaStorageFileListInput as bg, type AthenaStorageFileModule as bh, type AthenaStorageFileNamespace as bi, type AthenaStorageFileUploadInput as bj, type AthenaStorageFileUploadManyRequest as bk, type AthenaStorageFileUploadRequest as bl, type AthenaStorageFileUploadResult as bm, type AthenaStorageFolderNamespace as bn, type AthenaStorageManagedUpload as bo, type AthenaStorageModule as bp, type AthenaStorageMultipartNamespace as bq, type AthenaStorageObjectFolderNamespace as br, type AthenaStorageObjectNamespace as bs, type AthenaStoragePathContext as bt, type AthenaStoragePermissionNamespace as bu, type AthenaStoragePrefixPath as bv, type AthenaStoragePutBody as bw, type AthenaStoragePutOptions as bx, type AthenaStorageTemplateValue as by, type AthenaStorageTemplateVars as bz, type AthenaChatAttachmentView as c, type UpdateStorageFileRequest as c$, type S3CatalogItem as c0, type S3CredentialListItem as c1, type SearchStorageFilesRequest as c2, type SetManyStorageFileVisibilityRequest as c3, type SetStorageFileVisibilityRequest as c4, type StorageAuditEventRecord as c5, type StorageAuditListResponse as c6, type StorageAuditQueryRequest as c7, type StorageBatchUploadUrlResponse as c8, type StorageBatchUploadUrlResponseWithPut as c9, type StorageObjectRequest as cA, type StorageObjectValidateRequest as cB, type StorageObjectVersionListRequest as cC, type StorageObjectVersionMutationRequest as cD, type StoragePermissionCheckRequest as cE, type StoragePermissionCheckResponse as cF, type StoragePermissionGrantRequest as cG, type StoragePermissionListRequest as cH, type StoragePermissionListResponse as cI, type StoragePermissionRevokeRequest as cJ, type StoragePresignUploadRequest as cK, type StoragePublicAccessBlockRequest as cL, type StorageServerSideEncryptionOptions as cM, type StorageSetBucketCorsRequest as cN, type StorageSetBucketLifecycleRequest as cO, type StorageSetBucketPolicyRequest as cP, type StorageSetPublicAccessBlockRequest as cQ, type StorageSignedPostPolicyRequest as cR, type StorageUpdateObjectRequest as cS, type StorageUploadUrlResponse as cT, type StorageUploadUrlResponseWithPut as cU, type TableQueryBuilder as cV, type TreeStorageFoldersRequest as cW, type UnwrapOneOptions as cX, type UnwrapOptions as cY, type UpdateManyStorageFilesRequest as cZ, type UpdateStorageCatalogRequest as c_, type StorageBucketCorsRequest as ca, type StorageBucketCorsRuleInput as cb, type StorageBucketLifecycleRequest as cc, type StorageBucketLifecycleRuleInput as cd, type StorageBucketPolicyRequest as ce, type StorageFileAccessPurpose as cf, type StorageFileMutationManyResponse as cg, type StorageFileMutationResponse as ch, type StorageFilePermissionRecord as ci, type StorageFileRetentionRequest as cj, type StorageFileVersionPathRequest as ck, type StorageFolderMutationResponse as cl, type StorageListFilesResponse as cm, type StorageListObjectsRequest as cn, type StorageMultipartAbortRequest as co, type StorageMultipartCompletePartInput as cp, type StorageMultipartCompleteRequest as cq, type StorageMultipartCreateRequest as cr, type StorageMultipartListPartsRequest as cs, type StorageMultipartSignPartRequest as ct, type StorageObjectBaseRequest as cu, type StorageObjectCopyRequest as cv, type StorageObjectFolderCreateRequest as cw, type StorageObjectFolderDeleteRequest as cx, type StorageObjectFolderRenameRequest as cy, type StorageObjectPublicUrlRequest as cz, type AthenaChatCallOptions as d, assertInt as d0, coerceInt as d1, createAthenaStorageError as d2, createClient as d3, createStorageModule as d4, getAthenaDebugAst as d5, isOk as d6, normalizeAthenaError as d7, parseBooleanFlag as d8, requireAffected as d9, requireSuccess as da, storageSdkManifest as db, unwrap as dc, unwrapOne as dd, unwrapRows as de, verifyAthenaGatewayUrl as df, withRetry as dg, type AthenaClientBuilder as dh, type AthenaFindManyOptions as di, type AthenaFindManyResult as dj, type AthenaOrderBy as dk, type AthenaQueryTraceCallsite as dl, type AthenaQueryTraceEvent as dm, type AthenaQueryTraceOptions as dn, type AthenaRelationSelectNode as dp, type AthenaResultError as dq, type AthenaSelectShape as dr, type AthenaWhere as ds, type AthenaWhereBooleanOperand as dt, type AthenaWhereOperatorInput as du, type AthenaChatConnectOptions as e, type AthenaChatCreateRoomRequest as f, type AthenaChatDeleteResult as g, type AthenaChatEditMessageRequest as h, type AthenaChatListMessagesQuery as i, type AthenaChatListRoomsQuery as j, type AthenaChatMarkReadUpToRequest as k, type AthenaChatMember as l, type AthenaChatMemberRole as m, type AthenaChatMessage as n, type AthenaChatMessageCreatedResponse as o, type AthenaChatMessagePage as p, type AthenaChatModule as q, type AthenaChatPresenceUser as r, type AthenaChatReactionCount as s, type AthenaChatReactionSummary as t, type AthenaChatReadCursor as u, type AthenaChatRealtimeConnection as v, type AthenaChatRealtimeInfoResponse as w, type AthenaChatRealtimeModule as x, type AthenaChatRemoveResult as y, type AthenaChatResumeRoomCursor as z };
2866
+ export { type AthenaChatWsPresenceUpdatedEvent as $, type AthenaAuthConfig as A, type AthenaChatRealtimeModule as B, type AthenaChatRemoveResult as C, type AthenaChatResumeRoomCursor as D, type AthenaChatRoom as E, type AthenaChatRoomCreatedResponse as F, type AthenaChatRoomKind as G, type AthenaChatRoomPage as H, type AthenaChatSearchHit as I, type AthenaChatSearchMessagesRequest as J, type AthenaChatSearchPage as K, type AthenaChatSendMessageRequest as L, type AthenaChatUpdateRoomRequest as M, type AthenaChatWebSocketFactory as N, type AthenaChatWebSocketLike as O, type AthenaChatWsAuthHelloCommand as P, type AthenaChatWsClientCommand as Q, type AthenaChatWsErrorEvent as R, type AthenaChatWsHelloOkEvent as S, type AthenaChatWsMembersUpdatedEvent as T, type AthenaChatWsMessageCreatedEvent as U, type AthenaChatWsMessageDeletedEvent as V, type AthenaChatWsMessageEventBase as W, type AthenaChatWsMessageUpdatedEvent as X, type AthenaChatWsPingCommand as Y, type AthenaChatWsPongEvent as Z, type AthenaChatWsPresenceHeartbeatCommand as _, type AthenaBillingConfig as a, type AthenaStorageErrorHandler as a$, type AthenaChatWsReactionUpdatedEvent as a0, type AthenaChatWsReadUpToCommand as a1, type AthenaChatWsReadUpdatedEvent as a2, type AthenaChatWsResumeCommand as a3, type AthenaChatWsRoomArchivedEvent as a4, type AthenaChatWsRoomCreatedEvent as a5, type AthenaChatWsRoomEventBase as a6, type AthenaChatWsRoomUpdatedEvent as a7, type AthenaChatWsServerEvent as a8, type AthenaChatWsSubscribeCommand as a9, type AthenaRequestMethod as aA, type AthenaRequestOptions as aB, type AthenaRequestQueryValueMap as aC, type AthenaRequestResponse as aD, type AthenaRequestService as aE, type AthenaResult as aF, type AthenaRpcBuilderStateAst as aG, type AthenaRpcDebugAst as aH, type AthenaSelectDebugAst as aI, type AthenaSelectDebugTransport as aJ, type AthenaService as aK, type AthenaStorageAuditNamespace as aL, type AthenaStorageBackupNamespace as aM, type AthenaStorageBaseModule as aN, type AthenaStorageBinaryCallOptions as aO, type AthenaStorageBucketCorsNamespace as aP, type AthenaStorageBucketNamespace as aQ, type AthenaStorageCallOptions as aR, type AthenaStorageCatalogNamespace as aS, type AthenaStorageClientConfig as aT, type AthenaStorageConfig as aU, type AthenaStorageCredentialsNamespace as aV, type AthenaStorageDirectUploadConfig as aW, type AthenaStorageEnv as aX, AthenaStorageError as aY, AthenaStorageErrorCode as aZ, type AthenaStorageErrorDetails as a_, type AthenaChatWsSubscribedEvent as aa, type AthenaChatWsSyncRequiredEvent as ab, type AthenaChatWsTypingStartCommand as ac, type AthenaChatWsTypingStopCommand as ad, type AthenaChatWsTypingUpdatedEvent as ae, type AthenaChatWsUnsubscribeCommand as af, type AthenaClient as ag, type AthenaClientConfig as ah, AthenaConfigurationError as ai, type AthenaDbConfig as aj, type AthenaDbModule as ak, type AthenaDeleteDebugAst as al, type AthenaEnvelope as am, AthenaError as an, AthenaErrorCategory as ao, AthenaErrorCode as ap, type AthenaErrorInput as aq, AthenaErrorKind as ar, type AthenaFindManyDebugAst as as, type AthenaFromOptions as at, type AthenaInsertDebugAst as au, type AthenaOperationContext as av, type AthenaQueryDebugAst as aw, type AthenaRawQueryDebugAst as ax, type AthenaRequestContext as ay, type AthenaRequestContextProvider as az, type AthenaChatAddMembersRequest as b, type StorageBackupJob as b$, type AthenaStorageErrorInput as b0, type AthenaStorageFileConfig as b1, type AthenaStorageFileDeleteInput as b2, type AthenaStorageFileDownloadInput as b3, type AthenaStorageFileListInput as b4, type AthenaStorageFileModule as b5, type AthenaStorageFileNamespace as b6, type AthenaStorageFileUploadInput as b7, type AthenaStorageFileUploadManyRequest as b8, type AthenaStorageFileUploadRequest as b9, type CreateStorageUploadUrlRequest as bA, type CreateStorageUploadUrlsRequest as bB, type DeleteManyStorageFilesRequest as bC, type DeleteStorageFolderRequest as bD, type DeprecatedInlineStorageConnectionFields as bE, type GetStorageFileUrlQuery as bF, type IntCoercionOptions as bG, type ListStorageFilesRequest as bH, type ListStorageFoldersRequest as bI, type ManagedFileRecord as bJ, type MoveStorageFolderRequest as bK, type NormalizedAthenaError as bL, type PresignedFileUrlResponse as bM, type RequireAffectedOptions as bN, type RetryBackoffStrategy as bO, type RetryConfig as bP, type RpcOrderOptions as bQ, type RpcQueryBuilder as bR, type S3CatalogItem as bS, type S3CredentialListItem as bT, type SearchStorageFilesRequest as bU, type SetManyStorageFileVisibilityRequest as bV, type SetStorageFileVisibilityRequest as bW, type StorageAuditEventRecord as bX, type StorageAuditListResponse as bY, type StorageAuditQueryRequest as bZ, type StorageBackupCreateRequest as b_, type AthenaStorageFileUploadResult as ba, type AthenaStorageFolderNamespace as bb, type AthenaStorageManagedUpload as bc, type AthenaStorageModule as bd, type AthenaStorageMultipartNamespace as be, type AthenaStorageObjectFolderNamespace as bf, type AthenaStorageObjectNamespace as bg, type AthenaStoragePathContext as bh, type AthenaStoragePermissionNamespace as bi, type AthenaStoragePrefixPath as bj, type AthenaStoragePutBody as bk, type AthenaStoragePutOptions as bl, type AthenaStorageTemplateValue as bm, type AthenaStorageTemplateVars as bn, type AthenaStorageUploadConstraints as bo, type AthenaStorageUploadProgress as bp, type AthenaStorageUploadProgressHandler as bq, type AthenaStorageUploadSource as br, type AthenaStorageUploadedFile as bs, type AthenaTableBuilderStateAst as bt, type AthenaUpdateDebugAst as bu, type AthenaUpsertDebugAst as bv, type BackupRecoveryStrategy as bw, type ConfirmStorageUploadRequest as bx, type CopyStorageFileRequest as by, type CreateStorageCatalogRequest as bz, type AthenaChatAddReactionRequest as c, type UpdateStorageFileRequest as c$, type StorageBackupListPage as c0, type StorageBackupListQuery as c1, type StorageBackupQueuedJob as c2, type StorageBackupRecord as c3, type StorageBackupRestoreRequest as c4, type StorageBackupSchedule as c5, type StorageBackupScheduleCreateRequest as c6, type StorageBatchUploadUrlResponse as c7, type StorageBatchUploadUrlResponseWithPut as c8, type StorageBucketCorsRequest as c9, type StorageObjectRequest as cA, type StorageObjectValidateRequest as cB, type StorageObjectVersionListRequest as cC, type StorageObjectVersionMutationRequest as cD, type StoragePermissionCheckRequest as cE, type StoragePermissionCheckResponse as cF, type StoragePermissionGrantRequest as cG, type StoragePermissionListRequest as cH, type StoragePermissionListResponse as cI, type StoragePermissionRevokeRequest as cJ, type StoragePresignUploadRequest as cK, type StoragePublicAccessBlockRequest as cL, type StorageServerSideEncryptionOptions as cM, type StorageSetBucketCorsRequest as cN, type StorageSetBucketLifecycleRequest as cO, type StorageSetBucketPolicyRequest as cP, type StorageSetPublicAccessBlockRequest as cQ, type StorageSignedPostPolicyRequest as cR, type StorageUpdateObjectRequest as cS, type StorageUploadUrlResponse as cT, type StorageUploadUrlResponseWithPut as cU, type TableQueryBuilder as cV, type TreeStorageFoldersRequest as cW, type UnwrapOneOptions as cX, type UnwrapOptions as cY, type UpdateManyStorageFilesRequest as cZ, type UpdateStorageCatalogRequest as c_, type StorageBucketCorsRuleInput as ca, type StorageBucketLifecycleRequest as cb, type StorageBucketLifecycleRuleInput as cc, type StorageBucketPolicyRequest as cd, type StorageConnectionSelector as ce, type StorageFileAccessPurpose as cf, type StorageFileMutationManyResponse as cg, type StorageFileMutationResponse as ch, type StorageFilePermissionRecord as ci, type StorageFileRetentionRequest as cj, type StorageFileVersionPathRequest as ck, type StorageFolderMutationResponse as cl, type StorageListFilesResponse as cm, type StorageListObjectsRequest as cn, type StorageMultipartAbortRequest as co, type StorageMultipartCompletePartInput as cp, type StorageMultipartCompleteRequest as cq, type StorageMultipartCreateRequest as cr, type StorageMultipartListPartsRequest as cs, type StorageMultipartSignPartRequest as ct, type StorageObjectBaseRequest as cu, type StorageObjectCopyRequest as cv, type StorageObjectFolderCreateRequest as cw, type StorageObjectFolderDeleteRequest as cx, type StorageObjectFolderRenameRequest as cy, type StorageObjectPublicUrlRequest as cz, type AthenaChatAttachmentInput as d, assertInt as d0, coerceInt as d1, createAthenaStorageError as d2, createClient as d3, createStorageModule as d4, getAthenaDebugAst as d5, isOk as d6, normalizeAthenaError as d7, parseBooleanFlag as d8, requireAffected as d9, requireSuccess as da, storageSdkManifest as db, unwrap as dc, unwrapOne as dd, unwrapRows as de, verifyAthenaGatewayUrl as df, withRetry as dg, type AthenaFindManyOptions as dh, type AthenaFindManyResult as di, type AthenaOrderBy as dj, type AthenaQueryTraceCallsite as dk, type AthenaQueryTraceEvent as dl, type AthenaQueryTraceOptions as dm, type AthenaRelationSelectNode as dn, type AthenaResultError as dp, type AthenaSelectShape as dq, type AthenaWhere as dr, type AthenaWhereBooleanOperand as ds, type AthenaWhereOperatorInput as dt, DEFAULT_MULTIPART_PART_SIZE_BYTES as du, DEFAULT_MULTIPART_THRESHOLD_BYTES as dv, createStorageFileModule as dw, resolveStoragePath as dx, type AthenaChatAttachmentView as e, type AthenaChatCallOptions as f, type AthenaChatConfig as g, type AthenaChatConnectOptions as h, type AthenaChatCreateRoomRequest as i, type AthenaChatDeleteResult as j, type AthenaChatEditMessageRequest as k, type AthenaChatListMessagesQuery as l, type AthenaChatListRoomsQuery as m, type AthenaChatMarkReadUpToRequest as n, type AthenaChatMember as o, type AthenaChatMemberRole as p, type AthenaChatMessage as q, type AthenaChatMessageCreatedResponse as r, type AthenaChatMessagePage as s, type AthenaChatModule as t, type AthenaChatPresenceUser as u, type AthenaChatReactionCount as v, type AthenaChatReactionSummary as w, type AthenaChatReadCursor as x, type AthenaChatRealtimeConnection as y, type AthenaChatRealtimeInfoResponse as z };