@xylex-group/athena 2.14.0 → 3.0.2

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 (82) hide show
  1. package/README.md +109 -1402
  2. package/dist/admin.d.cts +1 -1
  3. package/dist/admin.d.ts +1 -1
  4. package/dist/{athena-auth-url-oLux_57a.d.cts → athena-request-headers-C7Jy-c_D.d.ts} +85 -1
  5. package/dist/{athena-auth-url-oLux_57a.d.ts → athena-request-headers-DujFFyMU.d.cts} +85 -1
  6. package/dist/billing.cjs +1311 -0
  7. package/dist/billing.cjs.map +1 -0
  8. package/dist/billing.d.cts +270 -0
  9. package/dist/billing.d.ts +270 -0
  10. package/dist/billing.js +1306 -0
  11. package/dist/billing.js.map +1 -0
  12. package/dist/browser.cjs +9695 -9243
  13. package/dist/browser.cjs.map +1 -1
  14. package/dist/browser.d.cts +11 -10
  15. package/dist/browser.d.ts +11 -10
  16. package/dist/browser.js +9692 -9241
  17. package/dist/browser.js.map +1 -1
  18. package/dist/cli/index.cjs +8137 -7286
  19. package/dist/cli/index.cjs.map +1 -1
  20. package/dist/cli/index.d.cts +4 -4
  21. package/dist/cli/index.d.ts +4 -4
  22. package/dist/cli/index.js +8137 -7286
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/index.cjs +9718 -9260
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +11 -10
  27. package/dist/index.d.ts +11 -10
  28. package/dist/index.js +9711 -9258
  29. package/dist/index.js.map +1 -1
  30. package/dist/{model-form-DcH3R7WD.d.ts → model-form-Dh0sisdL.d.ts} +2 -2
  31. package/dist/{model-form-BE1_Bmdd.d.cts → model-form-oOAJUVd4.d.cts} +2 -2
  32. package/dist/{module-DFGZXCtt.d.cts → module-CB25egcO.d.cts} +18 -52
  33. package/dist/module-C_ab-MM1.d.cts +360 -0
  34. package/dist/module-C_ab-MM1.d.ts +360 -0
  35. package/dist/{module-Ca3_OQqR.d.ts → module-CkUM6v58.d.ts} +18 -52
  36. package/dist/next/client.cjs +9116 -8468
  37. package/dist/next/client.cjs.map +1 -1
  38. package/dist/next/client.d.cts +24 -25
  39. package/dist/next/client.d.ts +24 -25
  40. package/dist/next/client.js +9088 -8469
  41. package/dist/next/client.js.map +1 -1
  42. package/dist/next/server.cjs +8932 -7776
  43. package/dist/next/server.cjs.map +1 -1
  44. package/dist/next/server.d.cts +62 -43
  45. package/dist/next/server.d.ts +62 -43
  46. package/dist/next/server.js +8873 -7777
  47. package/dist/next/server.js.map +1 -1
  48. package/dist/{payload-BbSCmILD.d.ts → payload-DWI1rw-e.d.cts} +1 -35
  49. package/dist/{payload-zXIwKTQf.d.cts → payload-DWI1rw-e.d.ts} +1 -35
  50. package/dist/{pipeline-DqwehoQV.d.ts → pipeline-B8aN2EHe.d.ts} +1 -1
  51. package/dist/{pipeline-CwQoD5G9.d.cts → pipeline-D4W-Cc-A.d.cts} +1 -1
  52. package/dist/proxy-request-headers-DGxdoyA0.d.cts +59 -0
  53. package/dist/proxy-request-headers-m4D2Tduy.d.ts +59 -0
  54. package/dist/react.cjs +118 -17
  55. package/dist/react.cjs.map +1 -1
  56. package/dist/react.d.cts +46 -16
  57. package/dist/react.d.ts +46 -16
  58. package/dist/react.js +117 -18
  59. package/dist/react.js.map +1 -1
  60. package/dist/social-providers.cjs +24 -20
  61. package/dist/social-providers.cjs.map +1 -1
  62. package/dist/social-providers.d.cts +96 -139
  63. package/dist/social-providers.d.ts +96 -139
  64. package/dist/social-providers.js +24 -20
  65. package/dist/social-providers.js.map +1 -1
  66. package/dist/{types-eAKAh71s.d.cts → types-AOY-GLu8.d.cts} +27 -54
  67. package/dist/{types-eAKAh71s.d.ts → types-AOY-GLu8.d.ts} +27 -54
  68. package/dist/{types-CD6K05JQ.d.ts → types-B75PdABb.d.ts} +3 -3
  69. package/dist/{types-dHnjluBC.d.cts → types-BBm-kEBL.d.cts} +2 -2
  70. package/dist/{types-C1swabT5.d.ts → types-BaAMXCqK.d.ts} +2 -2
  71. package/dist/{types-YQUR7wu0.d.cts → types-Bltx6iL6.d.cts} +3 -5
  72. package/dist/{types-YQUR7wu0.d.ts → types-Bltx6iL6.d.ts} +3 -5
  73. package/dist/{types-6H575ITc.d.cts → types-CgCv5o6R.d.cts} +3 -3
  74. package/dist/utils.cjs +7 -8
  75. package/dist/utils.cjs.map +1 -1
  76. package/dist/utils.d.cts +4 -145
  77. package/dist/utils.d.ts +4 -145
  78. package/dist/utils.js +7 -8
  79. package/dist/utils.js.map +1 -1
  80. package/dist/{client-wU2J9yqb.d.cts → v3-client-CWfZHcKL.d.cts} +402 -521
  81. package/dist/{client-uthENhaf.d.ts → v3-client-DZp2NEhK.d.ts} +402 -521
  82. package/package.json +15 -3
@@ -1,26 +1,7 @@
1
- import { a as AthenaGatewayCallOptions, b as AthenaGatewayConnectionOptions, c as AthenaGatewayConnectionResult, w as AthenaFetchPayload, s as AthenaGatewayResponse, x as AthenaInsertPayload, y as AthenaUpdatePayload, v as AthenaDeletePayload, n as AthenaRpcPayload, j as AthenaRpcCallOptions, C as AthenaQueryPayload, q as AthenaGatewayEndpointPath, r as AthenaGatewayMethod, i as AthenaJsonValue, g as AthenaJsonObject, 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-YQUR7wu0.cjs';
2
- import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-eAKAh71s.cjs';
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-6H575ITc.cjs';
4
-
5
- interface AthenaFindManyAstPayload$1 {
6
- table_name: string;
7
- select: Record<string, unknown>;
8
- where?: Record<string, unknown>;
9
- orderBy?: Record<string, unknown>;
10
- limit?: number;
11
- }
12
- declare function verifyAthenaGatewayUrl(baseUrl: string, options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
13
- interface AthenaGatewayClient {
14
- baseUrl: string;
15
- buildHeaders(options?: AthenaGatewayCallOptions): Record<string, string>;
16
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
17
- fetchGateway<T>(payload: AthenaFetchPayload | AthenaFindManyAstPayload$1, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
18
- insertGateway<T>(payload: AthenaInsertPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
19
- updateGateway<T>(payload: AthenaUpdatePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
20
- deleteGateway<T>(payload: AthenaDeletePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
21
- rpcGateway<T>(payload: AthenaRpcPayload, options?: AthenaRpcCallOptions): Promise<AthenaGatewayResponse<T>>;
22
- queryGateway<T>(payload: AthenaQueryPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
23
- }
1
+ import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-AOY-GLu8.cjs';
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.cjs';
3
+ import { A as AthenaModelTarget, n as RowOf, a as InsertOf, U as UpdateOf, u as AthenaClientTableName, t as AthenaClientModelForTableName, R as RegistryDef, D as DatabaseDef, o as SchemaDef, s as AnyModelDef, j as ModelDef, m as ModelRelationMetadata, r as AthenaClientModelsInput } from './types-CgCv5o6R.cjs';
4
+ import { a as AthenaBillingClientConfig, c as AthenaBillingModule } from './module-C_ab-MM1.cjs';
24
5
 
25
6
  type AthenaErrorKind = 'unique_violation' | 'not_found' | 'validation' | 'auth' | 'rate_limit' | 'transient' | 'unknown';
26
7
  declare const AthenaErrorKind: {
@@ -194,7 +175,7 @@ declare function coerceInt(value: unknown, options?: IntCoercionOptions): number
194
175
  */
195
176
  declare function assertInt(value: unknown, label?: string, options?: IntCoercionOptions): number;
196
177
  /**
197
- * @deprecated Prefer `experimental.retryReads` for standard SDK-managed read
178
+ * @deprecated Prefer `retryReads` for standard SDK-managed read
198
179
  * retries, or a call-site retry policy when you need custom write/replay
199
180
  * behavior. This helper is retained for compatibility.
200
181
  *
@@ -205,6 +186,154 @@ declare function assertInt(value: unknown, label?: string, options?: IntCoercion
205
186
  */
206
187
  declare function withRetry<T>(config: RetryConfig, fn: () => Promise<T>): Promise<T>;
207
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
+
272
+ type Whitespace = ' ' | '\n' | '\r' | '\t';
273
+ type TrimLeft<TValue extends string> = TValue extends `${Whitespace}${infer TRest}` ? TrimLeft<TRest> : TValue;
274
+ type TrimRight<TValue extends string> = TValue extends `${infer TRest}${Whitespace}` ? TrimRight<TRest> : TValue;
275
+ type Trim<TValue extends string> = TrimLeft<TrimRight<TValue>>;
276
+ /** Known string keys of a row / model type (empty when the shape is untyped). */
277
+ type AthenaColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
278
+ type KnownSelectColumnKey$1<Row> = AthenaColumnKey<Row>;
279
+ type HasKnownSelectColumns<Row> = [KnownSelectColumnKey$1<Row>] extends [never] ? false : string extends KnownSelectColumnKey$1<Row> ? false : true;
280
+ type HasComplexSelectTokenSyntax<TValue extends string> = TValue extends `${string}(${string}` ? true : TValue extends `${string})${string}` ? true : TValue extends `${string}.${string}` ? true : TValue extends `${string}"${string}` ? true : TValue extends `${string}'${string}` ? true : false;
281
+ type ValidateAliasedBase<Row, TOriginal extends string, TBase extends string> = HasComplexSelectTokenSyntax<Trim<TBase>> extends true ? TOriginal : Trim<TBase> extends KnownSelectColumnKey$1<Row> ? TOriginal : never;
282
+ type ValidateSelectToken<Row, TToken extends string> = Trim<TToken> extends infer TTrimmed extends string ? TTrimmed extends '' ? never : TTrimmed extends '*' ? TTrimmed : TTrimmed extends `${string}:${infer TBase}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} as ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} AS ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : HasComplexSelectTokenSyntax<TTrimmed> extends true ? TTrimmed : TTrimmed extends KnownSelectColumnKey$1<Row> ? TTrimmed : never : never;
283
+ type ValidateSelectList<Row, TValue extends string> = string extends TValue ? TValue : HasComplexSelectTokenSyntax<TValue> extends true ? TValue : TValue extends `${infer THead},${infer TTail}` ? ValidateSelectToken<Row, THead> extends never ? never : ValidateSelectList<Row, TTail> extends never ? never : TValue : ValidateSelectToken<Row, TValue> extends never ? never : TValue;
284
+ /**
285
+ * Preferred element type for typed array selects.
286
+ * Contextual typing validates each array-literal element against known keys
287
+ * (no `as const` required) and powers IntelliSense on each slot.
288
+ */
289
+ type AthenaSelectArrayElement<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey$1<Row> | '*' : string;
290
+ type AthenaSelectInput = string | string[] | readonly string[];
291
+ /**
292
+ * Compile-time validation for `select` / `single` / `maybeSingle` when
293
+ * row keys are known.
294
+ *
295
+ * - Comma-separated strings: validates each simple token (aliases / relation
296
+ * syntax are allowed through).
297
+ * - Arrays: always `readonly (keyof Row | '*')[]` for element IntelliSense and
298
+ * checking without `as const`.
299
+ */
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;
301
+ /**
302
+ * Filter / order / RPC column parameter. Known model keys are closed; dynamic
303
+ * rows retain free-form string support.
304
+ */
305
+ type AthenaTypecheckedColumnKey<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey$1<Row> : string;
306
+
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>>>;
311
+ type AthenaUpsertOptions<Update> = AthenaGatewayCallOptions & {
312
+ updateBody?: Update;
313
+ onConflict?: string | string[];
314
+ };
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 & {
327
+ resourceId?: string;
328
+ }): MutationQuery<Row | null, Row>;
329
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
330
+ query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
331
+ }
332
+
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;
208
337
  type AthenaStorageTemplateValue = string | number | boolean | null | undefined;
209
338
  type AthenaStorageTemplateVars = Record<string, AthenaStorageTemplateValue>;
210
339
  type AthenaStorageEnv = Record<string, string | undefined>;
@@ -250,6 +379,12 @@ interface AthenaStorageUploadProgress {
250
379
  aggregateLoaded: number;
251
380
  aggregateTotal: number;
252
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
+ };
253
388
  }
254
389
  type AthenaStorageUploadProgressHandler = (progress: AthenaStorageUploadProgress) => void;
255
390
  interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, StorageServerSideEncryptionOptions {
@@ -277,6 +412,14 @@ interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, S
277
412
  env?: AthenaStorageEnv;
278
413
  uploadHeaders?: AthenaStorageUploadHeaders;
279
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;
280
423
  }
281
424
  interface AthenaStorageUploadedFile {
282
425
  file: ManagedFileRecord;
@@ -309,6 +452,7 @@ interface AthenaStorageFileDownloadInput extends GetStorageFileUrlQuery {
309
452
  type AthenaStorageFileDeleteInput = string | readonly string[];
310
453
  interface AthenaStorageFileModule {
311
454
  upload(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
455
+ uploadMultipart(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
312
456
  download(fileId: string, query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response>;
313
457
  download(fileIds: readonly string[], query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response[]>;
314
458
  download(input: AthenaStorageFileDownloadInput, options?: AthenaStorageBinaryCallOptions): Promise<Response | Response[]>;
@@ -316,6 +460,33 @@ interface AthenaStorageFileModule {
316
460
  delete(fileId: string, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
317
461
  delete(fileIds: readonly string[], options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse[]>;
318
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;
319
490
 
320
491
  /**
321
492
  * Admin backup surface exposed under `client.storage.backup.*`.
@@ -1118,7 +1289,7 @@ interface CreateStorageCatalogRequest {
1118
1289
  */
1119
1290
  region?: string;
1120
1291
  bucket: string;
1121
- /** Storage provider: `s3`, `r2`, or `cloudflare_r2` (and free-form S3-compatible labels). */
1292
+ /** Storage provider: `s3` or `r2`; aliases include `aws`, `aws_s3`, `cloudflare_r2`, and `cloudflare-r2`. */
1122
1293
  provider?: string;
1123
1294
  /**
1124
1295
  * Cloudflare account ID for R2 catalogs when endpoint is omitted.
@@ -1385,49 +1556,78 @@ interface StorageMultipartListPartsRequest {
1385
1556
  file_id: string;
1386
1557
  upload_id: string;
1387
1558
  }
1388
- 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;
1389
1591
  endpoint: string;
1390
1592
  region: string;
1391
1593
  access_key_id: string;
1392
1594
  secret_key: string;
1595
+ } & DeprecatedInlineStorageConnectionFields);
1596
+ type StorageObjectFolderCreateRequest = StorageConnectionSelector & {
1393
1597
  bucket: string;
1394
1598
  prefix: string;
1395
- }
1599
+ };
1396
1600
  type StorageObjectFolderDeleteRequest = StorageObjectFolderCreateRequest;
1397
1601
  interface StorageObjectFolderRenameRequest extends Omit<StorageObjectFolderCreateRequest, 'prefix'> {
1398
1602
  from_prefix: string;
1399
1603
  to_prefix: string;
1400
1604
  }
1401
- interface StorageObjectBaseRequest {
1402
- endpoint: string;
1403
- region: string;
1404
- access_key_id: string;
1405
- secret_key: string;
1605
+ type StorageObjectBaseRequest = StorageConnectionSelector & {
1406
1606
  bucket: string;
1407
- }
1408
- interface StorageObjectRequest extends StorageObjectBaseRequest {
1607
+ };
1608
+ type StorageObjectRequest = StorageObjectBaseRequest & {
1409
1609
  key: string;
1410
- }
1411
- interface StorageObjectValidateRequest extends StorageObjectRequest {
1610
+ };
1611
+ type StorageObjectValidateRequest = StorageObjectRequest & {
1412
1612
  checksum_sha256?: string;
1413
1613
  etag?: string;
1414
- }
1415
- interface StorageObjectCopyRequest extends StorageObjectBaseRequest, StorageServerSideEncryptionOptions {
1614
+ };
1615
+ type StorageObjectCopyRequest = StorageObjectBaseRequest & StorageServerSideEncryptionOptions & {
1416
1616
  source_key: string;
1417
1617
  destination_key: string;
1418
1618
  destination_bucket?: string;
1419
- }
1420
- interface StorageObjectPublicUrlRequest extends StorageObjectRequest {
1619
+ };
1620
+ type StorageObjectPublicUrlRequest = StorageObjectRequest & {
1421
1621
  public_base_url?: string;
1422
1622
  force_path_style?: boolean;
1423
- }
1424
- interface StorageListObjectsRequest extends StorageObjectBaseRequest {
1623
+ };
1624
+ type StorageListObjectsRequest = StorageObjectBaseRequest & {
1425
1625
  prefix?: string;
1426
1626
  delimiter?: string;
1427
1627
  continuation_token?: string;
1428
1628
  max_keys?: number;
1429
- }
1430
- interface StorageUpdateObjectRequest extends StorageObjectRequest {
1629
+ };
1630
+ type StorageUpdateObjectRequest = StorageObjectRequest & {
1431
1631
  acl?: string;
1432
1632
  content_type?: string;
1433
1633
  cache_control?: string;
@@ -1435,18 +1635,18 @@ interface StorageUpdateObjectRequest extends StorageObjectRequest {
1435
1635
  content_encoding?: string;
1436
1636
  content_language?: string;
1437
1637
  metadata?: Record<string, string>;
1438
- }
1439
- interface StorageObjectVersionListRequest extends StorageObjectBaseRequest {
1638
+ };
1639
+ type StorageObjectVersionListRequest = StorageObjectBaseRequest & {
1440
1640
  key?: string;
1441
1641
  max_keys?: number;
1442
1642
  key_marker?: string;
1443
1643
  version_id_marker?: string;
1444
1644
  delimiter?: string;
1445
- }
1446
- interface StorageObjectVersionMutationRequest extends StorageObjectRequest {
1645
+ };
1646
+ type StorageObjectVersionMutationRequest = StorageObjectRequest & {
1447
1647
  version_id: string;
1448
- }
1449
- interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1648
+ };
1649
+ type StorageSignedPostPolicyRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1450
1650
  content_type?: string;
1451
1651
  min_size?: number;
1452
1652
  max_size?: number;
@@ -1454,10 +1654,10 @@ interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageSe
1454
1654
  public_base_url?: string;
1455
1655
  force_path_style?: boolean;
1456
1656
  success_action_status?: string;
1457
- }
1458
- interface StoragePresignUploadRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1657
+ };
1658
+ type StoragePresignUploadRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1459
1659
  content_type?: string;
1460
- }
1660
+ };
1461
1661
  type StorageBucketCorsRequest = StorageObjectBaseRequest;
1462
1662
  interface StorageBucketCorsRuleInput {
1463
1663
  allowed_origins: string[];
@@ -1466,9 +1666,9 @@ interface StorageBucketCorsRuleInput {
1466
1666
  expose_headers?: string[];
1467
1667
  max_age_seconds?: number;
1468
1668
  }
1469
- interface StorageSetBucketCorsRequest extends StorageBucketCorsRequest {
1669
+ type StorageSetBucketCorsRequest = StorageBucketCorsRequest & {
1470
1670
  rules: StorageBucketCorsRuleInput[];
1471
- }
1671
+ };
1472
1672
  type StorageBucketLifecycleRequest = StorageObjectBaseRequest;
1473
1673
  interface StorageBucketLifecycleRuleInput {
1474
1674
  id?: string;
@@ -1479,20 +1679,20 @@ interface StorageBucketLifecycleRuleInput {
1479
1679
  noncurrent_version_expiration_days?: number;
1480
1680
  abort_incomplete_multipart_upload_days?: number;
1481
1681
  }
1482
- interface StorageSetBucketLifecycleRequest extends StorageBucketLifecycleRequest {
1682
+ type StorageSetBucketLifecycleRequest = StorageBucketLifecycleRequest & {
1483
1683
  rules: StorageBucketLifecycleRuleInput[];
1484
- }
1684
+ };
1485
1685
  type StorageBucketPolicyRequest = StorageObjectBaseRequest;
1486
- interface StorageSetBucketPolicyRequest extends StorageBucketPolicyRequest {
1686
+ type StorageSetBucketPolicyRequest = StorageBucketPolicyRequest & {
1487
1687
  policy: Record<string, unknown> | string;
1488
- }
1688
+ };
1489
1689
  type StoragePublicAccessBlockRequest = StorageObjectBaseRequest;
1490
- interface StorageSetPublicAccessBlockRequest extends StoragePublicAccessBlockRequest {
1690
+ type StorageSetPublicAccessBlockRequest = StoragePublicAccessBlockRequest & {
1491
1691
  block_public_acls?: boolean;
1492
1692
  ignore_public_acls?: boolean;
1493
1693
  block_public_policy?: boolean;
1494
1694
  restrict_public_buckets?: boolean;
1495
- }
1695
+ };
1496
1696
  interface StorageFileVersionPathRequest {
1497
1697
  file_id: string;
1498
1698
  version_id: string;
@@ -1523,7 +1723,7 @@ interface AthenaStorageClientConfig extends AthenaStorageFileConfig {
1523
1723
  onError?: AthenaStorageErrorHandler;
1524
1724
  }
1525
1725
  /**
1526
- * Experimental credentials for signing the upload PUT in the client.
1726
+ * Credentials for signing the direct upload PUT in the client.
1527
1727
  * The Athena API still creates managed-file metadata so the public upload
1528
1728
  * result remains unchanged; file bytes go directly to this S3-compatible endpoint.
1529
1729
  */
@@ -1801,73 +2001,6 @@ interface AthenaStorageModule extends AthenaStorageBaseModule {
1801
2001
  declare function createAthenaStorageError(input: AthenaStorageErrorInput): AthenaStorageError;
1802
2002
  declare function createStorageModule(gateway: AthenaGatewayClient, runtimeOptions?: AthenaStorageClientConfig): AthenaStorageModule;
1803
2003
 
1804
- type Whitespace = ' ' | '\n' | '\r' | '\t';
1805
- type TrimLeft<TValue extends string> = TValue extends `${Whitespace}${infer TRest}` ? TrimLeft<TRest> : TValue;
1806
- type TrimRight<TValue extends string> = TValue extends `${infer TRest}${Whitespace}` ? TrimRight<TRest> : TValue;
1807
- type Trim<TValue extends string> = TrimLeft<TrimRight<TValue>>;
1808
- /** Known string keys of a row / model type (empty when the shape is untyped). */
1809
- type AthenaColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
1810
- type KnownSelectColumnKey<Row> = AthenaColumnKey<Row>;
1811
- type HasKnownSelectColumns<Row> = [KnownSelectColumnKey<Row>] extends [never] ? false : string extends KnownSelectColumnKey<Row> ? false : true;
1812
- type HasComplexSelectTokenSyntax<TValue extends string> = TValue extends `${string}(${string}` ? true : TValue extends `${string})${string}` ? true : TValue extends `${string}.${string}` ? true : TValue extends `${string}"${string}` ? true : TValue extends `${string}'${string}` ? true : false;
1813
- type ValidateAliasedBase<Row, TOriginal extends string, TBase extends string> = HasComplexSelectTokenSyntax<Trim<TBase>> extends true ? TOriginal : Trim<TBase> extends KnownSelectColumnKey<Row> ? TOriginal : never;
1814
- type ValidateSelectToken<Row, TToken extends string> = Trim<TToken> extends infer TTrimmed extends string ? TTrimmed extends '' ? never : TTrimmed extends '*' ? TTrimmed : TTrimmed extends `${string}:${infer TBase}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} as ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} AS ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : HasComplexSelectTokenSyntax<TTrimmed> extends true ? TTrimmed : TTrimmed extends KnownSelectColumnKey<Row> ? TTrimmed : never : never;
1815
- type ValidateSelectList<Row, TValue extends string> = string extends TValue ? TValue : HasComplexSelectTokenSyntax<TValue> extends true ? TValue : TValue extends `${infer THead},${infer TTail}` ? ValidateSelectToken<Row, THead> extends never ? never : ValidateSelectList<Row, TTail> extends never ? never : TValue : ValidateSelectToken<Row, TValue> extends never ? never : TValue;
1816
- /**
1817
- * Preferred element type for typed array selects.
1818
- * Contextual typing validates each array-literal element against known keys
1819
- * (no `as const` required) and powers IntelliSense on each slot.
1820
- */
1821
- type AthenaSelectArrayElement<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | '*' : string;
1822
- type AthenaSelectInput = string | string[] | readonly string[];
1823
- /**
1824
- * Compile-time validation for `select` / `single` / `maybeSingle` when
1825
- * `experimental.typecheckColumns` is enabled and row keys are known.
1826
- *
1827
- * - Comma-separated strings: validates each simple token (aliases / relation
1828
- * syntax are allowed through).
1829
- * - Arrays: always `readonly (keyof Row | '*')[]` for element IntelliSense and
1830
- * checking without `as const`.
1831
- */
1832
- 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;
1833
- /**
1834
- * Filter / order / RPC column parameter when `typecheckColumns` is enabled.
1835
- * When disabled, still surfaces known keys for IntelliSense via
1836
- * `Keys | (string & {})` so free-form strings remain assignable.
1837
- */
1838
- type AthenaTypecheckedColumnKey<Row, TEnabled extends boolean> = TEnabled extends true ? HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> : string : HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | (string & {}) : string;
1839
-
1840
- type AthenaRowShape$2 = Record<string, AthenaJsonValue | undefined>;
1841
- /**
1842
- * Free-form `from<Row>(table)` table argument.
1843
- * With client `models`, this is the known table-name union (IntelliSense).
1844
- * Without models, plain `string`.
1845
- */
1846
- type UntypedTableName$1<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
1847
- type ResolvedClientTableModel$1<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
1848
- 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>;
1849
- type AthenaUpsertOptions<Update> = AthenaGatewayCallOptions & {
1850
- updateBody?: Update;
1851
- onConflict?: string | string[];
1852
- };
1853
- interface AthenaDbModule<TStrict extends boolean = false, TModels = never> {
1854
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
1855
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder$1<TModels, TTableName, TStrict>;
1856
- from<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
1857
- select<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions): SelectChain<Row, Row, TStrict>;
1858
- select(table: UntypedTableName$1<TModels>, columns: AthenaSelectInput, options?: AthenaGatewayCallOptions): SelectChain<AthenaRowShape$2, AthenaRowShape$2, TStrict>;
1859
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
1860
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
1861
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaUpsertOptions<Update>): MutationQuery<Row, Row, TStrict>;
1862
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaUpsertOptions<Update>): MutationQuery<Row[], Row, TStrict>;
1863
- update<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
1864
- delete<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions & {
1865
- resourceId?: string;
1866
- }): MutationQuery<Row | null, Row, TStrict>;
1867
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
1868
- query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
1869
- }
1870
-
1871
2004
  type AthenaChatRoomKind = 'dm' | 'group' | 'channel';
1872
2005
  type AthenaChatMemberRole = 'owner' | 'admin' | 'member';
1873
2006
  interface AthenaChatAttachmentInput {
@@ -2165,7 +2298,7 @@ interface AthenaChatWsErrorEvent {
2165
2298
  code?: string | null;
2166
2299
  }
2167
2300
  type AthenaChatWsServerEvent = AthenaChatWsHelloOkEvent | AthenaChatWsSubscribedEvent | AthenaChatWsRoomCreatedEvent | AthenaChatWsRoomUpdatedEvent | AthenaChatWsRoomArchivedEvent | AthenaChatWsMessageCreatedEvent | AthenaChatWsMessageUpdatedEvent | AthenaChatWsMessageDeletedEvent | AthenaChatWsReadUpdatedEvent | AthenaChatWsMembersUpdatedEvent | AthenaChatWsTypingUpdatedEvent | AthenaChatWsPresenceUpdatedEvent | AthenaChatWsSyncRequiredEvent | AthenaChatWsReactionUpdatedEvent | AthenaChatWsPongEvent | AthenaChatWsErrorEvent;
2168
- type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'athenaKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
2301
+ type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
2169
2302
  signal?: AbortSignal;
2170
2303
  };
2171
2304
  interface AthenaChatWebSocketLike {
@@ -2236,9 +2369,10 @@ interface AthenaChatModule {
2236
2369
  realtime: AthenaChatRealtimeModule;
2237
2370
  }
2238
2371
 
2239
- type AthenaRowShape$1 = Record<string, AthenaJsonValue | undefined>;
2372
+ type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2240
2373
  type FilterColumnKey$1<Row> = Extract<keyof NonNullable<Row>, string>;
2241
2374
  type ResolvedFilterColumnKey$1<Row> = [FilterColumnKey$1<Row>] extends [never] ? string : FilterColumnKey$1<Row>;
2375
+ type KnownSelectColumnKey<Row> = AthenaColumnKey<Row>;
2242
2376
  type AthenaFilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'contains' | 'containedBy';
2243
2377
  type AthenaWherePrimitive = AthenaConditionValue;
2244
2378
  type AthenaWhereOperatorInput = {
@@ -2255,7 +2389,7 @@ type AthenaWhereOperatorInput = {
2255
2389
  contains?: AthenaConditionArrayValue;
2256
2390
  containedBy?: AthenaConditionArrayValue;
2257
2391
  };
2258
- type AthenaWhereColumnInput<Row = AthenaRowShape$1> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2392
+ type AthenaWhereColumnInput<Row = AthenaRowShape> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2259
2393
  type AthenaBooleanSafeOperator = Exclude<AthenaFilterOperator, 'in' | 'contains' | 'containedBy'>;
2260
2394
  type AthenaWhereBooleanSafeOperatorInput = Partial<Record<AthenaBooleanSafeOperator, AthenaConditionValue>>;
2261
2395
  type AthenaWhereBooleanNotOperatorInput = {
@@ -2269,9 +2403,9 @@ type AthenaStrictBooleanOperand<Keys extends string, Value> = {
2269
2403
  } & Partial<Record<Exclude<Keys, K>, never>>;
2270
2404
  }[Keys];
2271
2405
  type AthenaNonEmptyArray<T> = [T, ...T[]];
2272
- type AthenaWhereBooleanOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2273
- type AthenaWhereNotOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2274
- type AthenaWhere<Row = AthenaRowShape$1> = AthenaWhereColumnInput<Row> & {
2406
+ type AthenaWhereBooleanOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2407
+ type AthenaWhereNotOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2408
+ type AthenaWhere<Row = AthenaRowShape> = AthenaWhereColumnInput<Row> & {
2275
2409
  or?: string extends ResolvedFilterColumnKey$1<Row> ? Array<AthenaWhereColumnInput<Row>> : AthenaNonEmptyArray<AthenaWhereBooleanOperand<Row>>;
2276
2410
  not?: AthenaWhereNotOperand<Row>;
2277
2411
  };
@@ -2283,26 +2417,46 @@ interface AthenaRelationSelectNode<TSelect extends AthenaSelectShape = AthenaSel
2283
2417
  }
2284
2418
  type AthenaSelectShape = Record<string, true | AthenaRelationSelectNode<AthenaSelectShape>>;
2285
2419
  type AthenaAllowedRelationSelectNodeKey = 'select' | 'as' | 'via' | 'schema';
2420
+ /**
2421
+ * Structural validation only (relation node shape). Nested relation target rows
2422
+ * are not model-checked here unless a richer context path is wired later.
2423
+ */
2424
+ type AthenaStructuralValidatedSelectShape<TSelect> = {
2425
+ [K in keyof TSelect]: TSelect[K] extends true ? true : AthenaValidatedRelationSelectNode<TSelect[K]>;
2426
+ };
2286
2427
  type AthenaValidatedRelationSelectNode<TNode> = TNode extends {
2287
2428
  select: infer TChild;
2288
2429
  } ? Exclude<keyof TNode, AthenaAllowedRelationSelectNodeKey> extends never ? TNode extends {
2289
2430
  schema: string;
2290
2431
  via: string;
2291
2432
  } ? never : TChild extends Record<string, unknown> ? {
2292
- [K in keyof TNode]: K extends 'select' ? AthenaValidatedSelectShape<TChild> : K extends AthenaAllowedRelationSelectNodeKey ? TNode[K] : never;
2433
+ [K in keyof TNode]: K extends 'select' ? AthenaStructuralValidatedSelectShape<TChild> : K extends AthenaAllowedRelationSelectNodeKey ? TNode[K] : never;
2293
2434
  } : never : never : never;
2294
- type AthenaValidatedSelectShape<TSelect> = {
2295
- [K in keyof TSelect]: TSelect[K] extends true ? true : AthenaValidatedRelationSelectNode<TSelect[K]>;
2296
- };
2435
+ /**
2436
+ * Compile-time validation for `findMany({ select })`.
2437
+ *
2438
+ * - When `Row` has known model keys: scalar `true` entries must use those keys.
2439
+ * - Relation nodes (`{ select: ... }`) keep structural validation and may use
2440
+ * non-row keys (relation names are not row columns).
2441
+ * - When `Row` is untyped: free-form keys (same as pre-model behavior).
2442
+ */
2443
+ type AthenaValidatedSelectShape<Row, TSelect> = HasKnownSelectColumns<Row> extends true ? {
2444
+ [K in keyof TSelect]: TSelect[K] extends true ? K extends KnownSelectColumnKey<Row> ? true : never : AthenaValidatedRelationSelectNode<TSelect[K]>;
2445
+ } : AthenaStructuralValidatedSelectShape<TSelect>;
2297
2446
  type GenericRegistryDef = RegistryDef<Record<string, DatabaseDef<Record<string, SchemaDef<Record<string, AnyModelDef>>>>>>;
2298
2447
  type AthenaOrderByDirectionInput = 'asc' | 'desc' | 'ascending' | 'descending' | boolean | {
2299
2448
  ascending?: boolean;
2300
2449
  };
2301
- type AthenaOrderBy<Row = AthenaRowShape$1> = {
2450
+ type AthenaOrderBy<Row = AthenaRowShape> = {
2302
2451
  column: ResolvedFilterColumnKey$1<Row>;
2303
2452
  ascending?: boolean;
2304
2453
  } | Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaOrderByDirectionInput>>;
2305
- interface AthenaFindManyOptions<Row = AthenaRowShape$1, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2454
+ interface AthenaFindManyOptions<Row = AthenaRowShape, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2455
+ /**
2456
+ * Object select tree. Callers should pass through `findMany(...)`, which
2457
+ * intersects this with `AthenaValidatedSelectShape<Row, TSelect>` so model
2458
+ * column keys are checked after `TSelect` is inferred from the literal.
2459
+ */
2306
2460
  select: TSelect;
2307
2461
  where?: AthenaWhere<Row>;
2308
2462
  orderBy?: AthenaOrderBy<Row>;
@@ -2410,7 +2564,7 @@ type AthenaFindManyDebugTransport<Row = Record<string, unknown>, TSelect extends
2410
2564
  interface AthenaFindManyDebugAst<Row = Record<string, unknown>, TSelect extends AthenaSelectShape = AthenaSelectShape> extends AthenaDebugAstBase<'findMany'> {
2411
2565
  tableName: string;
2412
2566
  input: {
2413
- select: AthenaValidatedSelectShape<TSelect>;
2567
+ select: TSelect;
2414
2568
  where?: AthenaWhere<Row>;
2415
2569
  orderBy?: AthenaOrderBy<Row>;
2416
2570
  limit?: number;
@@ -2457,7 +2611,7 @@ interface AthenaUpsertDebugAst extends AthenaDebugAstBase<'upsert'> {
2457
2611
  interface AthenaUpdateDebugAst extends AthenaDebugAstBase<'update'> {
2458
2612
  tableName: string;
2459
2613
  input: {
2460
- values: AthenaUpdatePayload['set'];
2614
+ values: AthenaUpdatePayload['update_body'];
2461
2615
  state: AthenaTableBuilderStateAst;
2462
2616
  returning?: AthenaUpdatePayload['columns'];
2463
2617
  };
@@ -2508,122 +2662,6 @@ interface AthenaRawQueryDebugAst extends AthenaDebugAstBase<'query'> {
2508
2662
  type AthenaQueryDebugAst = AthenaSelectDebugAst | AthenaFindManyDebugAst | AthenaInsertDebugAst | AthenaUpsertDebugAst | AthenaUpdateDebugAst | AthenaDeleteDebugAst | AthenaRpcDebugAst | AthenaRawQueryDebugAst;
2509
2663
  declare function getAthenaDebugAst(value: unknown): AthenaQueryDebugAst | null;
2510
2664
 
2511
- interface AthenaResult<T> {
2512
- data: T | null;
2513
- error: AthenaResultError | null;
2514
- statusText?: string | null;
2515
- /**
2516
- * @deprecated Prefer `error?.gatewayCode`, `error?.hint`, and related fields on `error`.
2517
- */
2518
- errorDetails?: AthenaGatewayErrorDetails | null;
2519
- status: number;
2520
- count?: number | null;
2521
- raw: unknown;
2522
- }
2523
- interface AthenaResultError {
2524
- message: string;
2525
- code: string | null;
2526
- athenaCode: NormalizedAthenaError['code'];
2527
- gatewayCode?: AthenaGatewayErrorDetails['code'] | null;
2528
- kind: NormalizedAthenaError['kind'];
2529
- category: NormalizedAthenaError['category'];
2530
- retryable: boolean;
2531
- details: unknown | null;
2532
- hint: string | null;
2533
- status: number;
2534
- statusText: string | null;
2535
- constraint?: string;
2536
- table?: string;
2537
- operation?: string;
2538
- endpoint?: AthenaGatewayErrorDetails['endpoint'];
2539
- method?: AthenaGatewayErrorDetails['method'];
2540
- requestId?: string;
2541
- cause?: string;
2542
- raw: unknown;
2543
- }
2544
- type AthenaRequestService = 'db' | 'auth' | 'chat' | 'storage';
2545
- type AthenaRequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
2546
- interface AthenaRequestQueryValueMap {
2547
- [key: string]: string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>;
2548
- }
2549
- interface AthenaRequestOptions {
2550
- service?: AthenaRequestService;
2551
- url?: string;
2552
- path?: string;
2553
- method?: AthenaRequestMethod;
2554
- headers?: Record<string, string>;
2555
- /** Per-request override for the canonical `X-Athena-Key` header. */
2556
- apiKey?: string | null;
2557
- /** Per-request override for `X-Athena-Key` only. */
2558
- athenaKey?: string | null;
2559
- query?: AthenaRequestQueryValueMap;
2560
- body?: RequestInit['body'] | Record<string, unknown> | unknown[] | null;
2561
- signal?: AbortSignal;
2562
- credentials?: RequestInit['credentials'];
2563
- responseType?: 'json' | 'text' | 'response';
2564
- }
2565
- interface AthenaRequestResponse<T = unknown> {
2566
- ok: boolean;
2567
- status: number;
2568
- statusText: string;
2569
- headers: Headers;
2570
- data: T | string | null;
2571
- raw: Response;
2572
- }
2573
- interface AthenaClientExperimentalOptions {
2574
- /**
2575
- * @deprecated Failed `AthenaResult` values now include normalized structured `error`
2576
- * envelopes by default. This flag is retained as a no-op compatibility switch.
2577
- */
2578
- enableErrorNormalization?: boolean;
2579
- /**
2580
- * Retry retryable read failures (`select`, `findMany`, `query`) with a fixed internal policy.
2581
- *
2582
- * Applies two additional attempts with exponential backoff and jitter.
2583
- */
2584
- retryReads?: boolean;
2585
- /**
2586
- * Emit execution diagnostics for every query/mutation/RPC invocation.
2587
- * Includes payload, synthesized SQL, full outcome, and best-effort callsite metadata.
2588
- */
2589
- traceQueries?: boolean | AthenaQueryTraceOptions;
2590
- /**
2591
- * Build and attach a normalized operation AST for runtime debugging.
2592
- *
2593
- * When enabled, successful Athena results expose a non-enumerable debug AST
2594
- * that can be read with `getAthenaDebugAst(...)`. If tracing is also enabled,
2595
- * the same AST is included on emitted trace events.
2596
- */
2597
- debugAst?: boolean;
2598
- /**
2599
- * Compile-time opt-in for validating simple `select(...)`, `order(...)`, and
2600
- * RPC filter column names against known row keys.
2601
- *
2602
- * This flag is type-only. It does not change runtime request behavior.
2603
- */
2604
- typecheckColumns?: boolean;
2605
- /**
2606
- * Send the original `findMany(...)` AST body for clean object-select reads.
2607
- * This requires gateway support and falls back to legacy compiled transport
2608
- * when a chain carries filter/pagination state that the AST payload cannot
2609
- * represent losslessly yet.
2610
- */
2611
- findManyAst?: boolean;
2612
- /**
2613
- * Expose the experimental `client.storage.*` bindings for Athena storage APIs.
2614
- */
2615
- athenaStorageBackend?: boolean;
2616
- /**
2617
- * Sign high-level `storage.file.upload(...)` PUTs in the client and send
2618
- * file bytes directly to the configured S3-compatible storage endpoint.
2619
- * Athena still creates managed-file metadata, preserving the upload result contract.
2620
- */
2621
- directStorageUpload?: AthenaStorageDirectUploadConfig;
2622
- /**
2623
- * Optional storage SDK runtime hooks. Only used when `athenaStorageBackend` is enabled.
2624
- */
2625
- storage?: AthenaStorageClientConfig;
2626
- }
2627
2665
  interface AthenaQueryTraceOptions {
2628
2666
  /**
2629
2667
  * Custom sink for trace events. Defaults to console.info.
@@ -2662,34 +2700,21 @@ interface AthenaQueryTraceEvent {
2662
2700
  }
2663
2701
  type MutationSingleResult<Result> = Result extends Array<infer Item> ? Item | null : Result | null;
2664
2702
  type MutationResultRow<Result> = Result extends Array<infer Item> ? Item : Result;
2665
- type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2666
2703
  type FilterColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
2667
2704
  /** Known keys when the row shape is concrete; `string` when untyped / index signature. */
2668
2705
  type ResolvedFilterColumnKey<Row> = [FilterColumnKey<Row>] extends [never] ? string : string extends FilterColumnKey<Row> ? string : FilterColumnKey<Row>;
2669
- /**
2670
- * Table-name argument for free-form `from<Row>(table)`.
2671
- * - No client `models` → `string` (nothing to complete).
2672
- * - With `models` → known bare/qualified names (IntelliSense + reject unknowns).
2673
- * Prefer `.from("users")` without a row generic so the row type is inferred from the model.
2674
- */
2675
- type UntypedTableName<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
2676
- type ResolvedClientTableModel<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
2677
- type ClientTableQueryBuilder<TModels, TTableName extends string, TStrict extends boolean> = TableQueryBuilder<RowOf<ResolvedClientTableModel<TModels, TTableName>>, InsertOf<ResolvedClientTableModel<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel<TModels, TTableName>>, unknown, TStrict>;
2678
2706
  /**
2679
2707
  * Select/returning/single column input.
2680
2708
  *
2681
- * - Typed row + `typecheckColumns`: validates string lists; arrays use key union
2682
- * (IntelliSense + reject unknown elements without `as const`).
2683
- * - Typed row without strict: free-form strings still allowed; key unions are
2684
- * included so IDEs can suggest column names on `select` / `single` / etc.
2709
+ * - Typed row: validates string lists; arrays use the model-key union.
2685
2710
  * - Untyped row: plain `TValue` (`string | string[]`).
2686
2711
  */
2687
- 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> | '*')[];
2688
- interface MutationQuery<Result, Row = MutationResultRow<Result>, TStrict extends boolean = false> extends PromiseLike<AthenaResult<Result>> {
2689
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2690
- returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2691
- single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2692
- maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2712
+ type SelectColumnsFor<Row, TValue extends AthenaSelectInput> = AthenaValidatedSelectInput<Row, TValue>;
2713
+ interface MutationQuery<Result, Row = MutationResultRow<Result>> extends PromiseLike<AthenaResult<Result>> {
2714
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2715
+ returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2716
+ single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2717
+ maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2693
2718
  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>;
2694
2719
  catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<AthenaResult<Result> | TResult>;
2695
2720
  finally(onfinally?: (() => void) | undefined | null): Promise<AthenaResult<Result>>;
@@ -2725,277 +2750,133 @@ interface FilterChain<Self, Row> {
2725
2750
  or(expression: string): Self;
2726
2751
  }
2727
2752
  /** Chain returned by select() - supports filters and single/maybeSingle before execution */
2728
- interface SelectChain<Row, SelectedRow = Row, TStrict extends boolean = false> extends FilterChain<SelectChain<Row, SelectedRow, TStrict>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2729
- single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2730
- maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2753
+ interface SelectChain<Row, SelectedRow = Row> extends FilterChain<SelectChain<Row, SelectedRow>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2754
+ single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2755
+ maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2731
2756
  }
2732
2757
  /** Chain returned by update() - supports filters before execution, plus select/returning */
2733
- interface UpdateChain<Row, TStrict extends boolean = false> extends FilterChain<UpdateChain<Row, TStrict>, Row>, MutationQuery<Row[], Row, TStrict> {
2734
- }
2735
- interface RpcFilterChain<Self, Row, TStrict extends boolean = false> {
2736
- eq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2737
- neq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2738
- gt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2739
- gte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2740
- lt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2741
- lte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2742
- like(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2743
- ilike(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2744
- is(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2745
- in(column: AthenaTypecheckedColumnKey<Row, TStrict>, values: AthenaConditionArrayValue): Self;
2758
+ interface UpdateChain<Row> extends FilterChain<UpdateChain<Row>, Row>, MutationQuery<Row[], Row> {
2759
+ }
2760
+ interface RpcFilterChain<Self, Row> {
2761
+ eq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2762
+ neq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2763
+ gt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2764
+ gte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2765
+ lt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2766
+ lte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2767
+ like(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2768
+ ilike(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2769
+ is(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2770
+ in(column: AthenaTypecheckedColumnKey<Row>, values: AthenaConditionArrayValue): Self;
2746
2771
  }
2747
2772
  interface RpcOrderOptions {
2748
2773
  ascending?: boolean;
2749
2774
  }
2750
- interface RpcQueryBuilder<Row, TStrict extends boolean = false> extends RpcFilterChain<RpcQueryBuilder<Row, TStrict>, Row, TStrict>, PromiseLike<AthenaResult<Row[]>> {
2751
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2752
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2753
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2754
- order(column: AthenaTypecheckedColumnKey<Row, TStrict>, options?: RpcOrderOptions): RpcQueryBuilder<Row, TStrict>;
2755
- limit(count: number): RpcQueryBuilder<Row, TStrict>;
2756
- offset(count: number): RpcQueryBuilder<Row, TStrict>;
2757
- range(from: number, to: number): RpcQueryBuilder<Row, TStrict>;
2775
+ interface RpcQueryBuilder<Row> extends RpcFilterChain<RpcQueryBuilder<Row>, Row>, PromiseLike<AthenaResult<Row[]>> {
2776
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2777
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2778
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2779
+ order(column: AthenaTypecheckedColumnKey<Row>, options?: RpcOrderOptions): RpcQueryBuilder<Row>;
2780
+ limit(count: number): RpcQueryBuilder<Row>;
2781
+ offset(count: number): RpcQueryBuilder<Row>;
2782
+ range(from: number, to: number): RpcQueryBuilder<Row>;
2758
2783
  }
2759
2784
  interface AthenaFromOptions {
2760
2785
  schema?: string;
2761
2786
  }
2762
- interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown, TStrict extends boolean = false> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext, TStrict>, Row> {
2763
- select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T, TStrict>;
2787
+ interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext>, Row> {
2788
+ select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T>;
2764
2789
  findMany<const TSelect extends AthenaSelectShape>(options: AthenaFindManyOptions<Row, TSelect> & {
2765
- select: AthenaValidatedSelectShape<TSelect>;
2790
+ select: AthenaValidatedSelectShape<Row, TSelect>;
2766
2791
  }): Promise<AthenaResult<Array<AthenaFindManyResult<Row, TSelect, TContext>>>>;
2767
- insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
2768
- insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
2792
+ insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row>;
2793
+ insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row>;
2769
2794
  upsert(values: Insert, options?: AthenaGatewayCallOptions & {
2770
2795
  updateBody?: Update;
2771
2796
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2772
- }): MutationQuery<Row, Row, TStrict>;
2797
+ }): MutationQuery<Row, Row>;
2773
2798
  upsert(values: Insert[], options?: AthenaGatewayCallOptions & {
2774
2799
  updateBody?: Update;
2775
2800
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2776
- }): MutationQuery<Row[], Row, TStrict>;
2777
- update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
2801
+ }): MutationQuery<Row[], Row>;
2802
+ update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row>;
2778
2803
  delete(options?: AthenaGatewayCallOptions & {
2779
2804
  resourceId?: string;
2780
- }): MutationQuery<Row | null, Row, TStrict>;
2781
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2782
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2783
- reset(): TableQueryBuilder<Row, Insert, Update, TContext, TStrict>;
2784
- }
2785
- interface AthenaSdkClient<TStrict extends boolean = false, TModels = never> {
2786
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
2787
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder<TModels, TTableName, TStrict>;
2788
- from<Row = AthenaRowShape, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
2789
- db: AthenaDbModule<TStrict, TModels>;
2790
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
2791
- query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2792
- request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2793
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2794
- withContext(context?: AthenaClientContextOptions): AthenaSdkClient<TStrict, TModels>;
2795
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClient<TStrict, TModels>;
2796
- }
2797
- interface AthenaSdkClientWithAuth<TStrict extends boolean = false, TModels = never> extends AthenaSdkClient<TStrict, TModels> {
2798
- auth: AthenaAuthBindings;
2799
- chat: AthenaChatModule;
2800
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2801
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2802
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2803
- }
2804
- interface AthenaSdkClientWithStorage<TStrict extends boolean = false, TModels = never> extends AthenaSdkClientWithAuth<TStrict, TModels> {
2805
- storage: AthenaStorageModule;
2806
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2807
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2808
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2809
- }
2810
- interface AthenaHeaderBag {
2811
- get(name: string): string | null;
2812
- }
2813
- interface AthenaClientSessionLike {
2814
- user?: {
2815
- id?: string | null | undefined;
2816
- } | null | undefined;
2817
- session?: {
2818
- token?: string | null | undefined;
2819
- activeOrganizationId?: string | null | undefined;
2820
- } | null | undefined;
2821
- }
2822
- interface AthenaCreateClientServiceUrlConfig {
2823
- url?: string | null | undefined;
2824
- }
2825
- interface AthenaCreateClientChatOptions extends AthenaCreateClientServiceUrlConfig {
2826
- wsUrl?: string | null | undefined;
2827
- webSocketFactory?: AthenaChatWebSocketFactory | null | undefined;
2828
- }
2829
- interface AthenaCreateClientAuthOptions extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2830
- url?: string | null | undefined;
2831
- baseUrl?: string | null | undefined;
2832
- apiKey?: string | null | undefined;
2833
- bearerToken?: string | null | undefined;
2834
- cookie?: string | null | undefined;
2835
- sessionToken?: string | null | undefined;
2836
- }
2837
- interface AthenaCreateClientOptions {
2838
- client?: string | null | undefined;
2839
- userId?: string | null | undefined;
2840
- organizationId?: string | null | undefined;
2841
- forceNoCache?: boolean;
2842
- headers?: Record<string, string>;
2843
- /** Direct PostgreSQL URI forwarded as `x-pg-uri` on gateway requests. */
2844
- pgUri?: string | null | undefined;
2845
- /** JDBC/PostgreSQL URI mirrored to `x-athena-jdbc-url` and `x-jdbc-url`. */
2846
- jdbcUrl?: string | null | undefined;
2847
- /** Client-wide override for the canonical `X-Athena-Key` header. */
2848
- athenaKey?: string | null | undefined;
2849
- backend?: BackendConfig | BackendType;
2850
- db?: AthenaCreateClientServiceUrlConfig;
2851
- gateway?: AthenaCreateClientServiceUrlConfig;
2852
- auth?: AthenaCreateClientAuthOptions;
2853
- chat?: AthenaCreateClientChatOptions;
2854
- storage?: AthenaCreateClientServiceUrlConfig;
2855
- dbUrl?: string | null | undefined;
2856
- gatewayUrl?: string | null | undefined;
2857
- authUrl?: string | null | undefined;
2858
- chatUrl?: string | null | undefined;
2859
- chatWsUrl?: string | null | undefined;
2860
- storageUrl?: string | null | undefined;
2861
- models?: AthenaClientModelsInput;
2862
- experimental?: AthenaClientExperimentalOptions;
2863
- }
2864
- interface AthenaCreateClientOptionsWithStorage extends AthenaCreateClientOptions {
2865
- experimental: AthenaClientExperimentalOptions & {
2866
- athenaStorageBackend: true;
2867
- };
2805
+ }): MutationQuery<Row | null, Row>;
2806
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2807
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2808
+ reset(): TableQueryBuilder<Row, Insert, Update, TContext>;
2868
2809
  }
2869
- interface AthenaCreateClientOptionsWithTypecheckedColumns extends AthenaCreateClientOptions {
2870
- experimental: AthenaClientExperimentalOptions & {
2871
- typecheckColumns: true;
2872
- };
2873
- }
2874
- interface AthenaCreateClientOptionsWithStorageAndTypecheckedColumns extends AthenaCreateClientOptions {
2875
- experimental: AthenaClientExperimentalOptions & {
2876
- athenaStorageBackend: true;
2877
- typecheckColumns: true;
2878
- };
2810
+
2811
+ type MaybePromise<T> = T | Promise<T>;
2812
+ type ResolvedModels<TModels> = TModels extends AthenaClientModelsInput ? TModels : never;
2813
+
2814
+ interface AthenaRequestContext {
2815
+ userId?: string | null;
2816
+ organizationId?: string | null;
2817
+ headers?: Record<string, string>;
2818
+ cookie?: string | null;
2819
+ bearerToken?: string | null;
2820
+ sessionToken?: string | null;
2821
+ forceNoCache?: boolean;
2879
2822
  }
2880
- interface AthenaCreateClientConfig extends AthenaCreateClientOptions {
2881
- url?: string | null | undefined;
2882
- key: string | null | undefined;
2823
+ type AthenaRequestContextProvider = () => MaybePromise<AthenaRequestContext | undefined>;
2824
+ interface AthenaDbConfig {
2825
+ url?: string | null;
2826
+ pgUri?: string | null;
2827
+ jdbcUrl?: string | null;
2883
2828
  }
2884
- interface AthenaCreateClientConfigWithStorage extends AthenaCreateClientOptionsWithStorage {
2885
- url?: string | null | undefined;
2886
- key: string | null | undefined;
2829
+ interface AthenaAuthConfig extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2830
+ url?: string | null;
2887
2831
  }
2888
- interface AthenaCreateClientConfigWithTypecheckedColumns extends AthenaCreateClientOptionsWithTypecheckedColumns {
2889
- url?: string | null | undefined;
2890
- key: string | null | undefined;
2832
+ interface AthenaChatConfig {
2833
+ url?: string | null;
2834
+ wsUrl?: string | null;
2835
+ webSocketFactory?: AthenaChatWebSocketFactory | null;
2891
2836
  }
2892
- interface AthenaCreateClientConfigWithStorageAndTypecheckedColumns extends AthenaCreateClientOptionsWithStorageAndTypecheckedColumns {
2893
- url?: string | null | undefined;
2894
- key: string | null | undefined;
2837
+ interface AthenaStorageConfig extends Omit<AthenaStorageClientConfig, 'baseUrl' | 'directUpload'> {
2838
+ url?: string | null;
2839
+ directUpload?: AthenaStorageDirectUploadConfig;
2895
2840
  }
2896
- interface AthenaClientOverrideOptions extends Omit<AthenaCreateClientOptions, 'experimental' | 'models'> {
2897
- url?: string | null | undefined;
2898
- key?: string | null | undefined;
2841
+ interface AthenaBillingConfig extends Omit<AthenaBillingClientConfig, 'baseUrl' | 'apiKey' | 'client' | 'fetchImpl'> {
2842
+ /** Optional override; defaults to the unified/root or db Athena URL. */
2843
+ url?: string | null;
2899
2844
  }
2900
- interface AthenaClientContextOptions {
2901
- userId?: string | null | undefined;
2902
- organizationId?: string | null | undefined;
2903
- forceNoCache?: boolean;
2845
+ interface AthenaClientConfig<TModels extends AthenaClientModelsInput | undefined = undefined> {
2846
+ url?: string | null;
2847
+ key?: string | null;
2848
+ client?: string | null;
2849
+ backend?: BackendConfig | BackendType;
2904
2850
  headers?: Record<string, string>;
2905
- auth?: Omit<AthenaCreateClientAuthOptions, 'url' | 'baseUrl' | 'apiKey'>;
2906
- }
2907
- interface AthenaClientSessionOptions extends AthenaClientContextOptions {
2908
- requestHeaders?: AthenaHeaderBag | Record<string, string | null | undefined>;
2909
- }
2910
- interface AthenaClientFromEnvironmentOptions extends AthenaCreateClientOptions {
2851
+ models?: TModels;
2911
2852
  env?: Record<string, string | undefined>;
2912
- url?: string | null | undefined;
2913
- key?: string | null | undefined;
2914
- }
2915
- interface AthenaClientFromEnvironmentOptionsWithStorage extends AthenaClientFromEnvironmentOptions {
2916
- experimental: AthenaClientExperimentalOptions & {
2917
- athenaStorageBackend: true;
2918
- };
2919
- }
2920
- interface AthenaClientFromEnvironmentOptionsWithTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2921
- experimental: AthenaClientExperimentalOptions & {
2922
- typecheckColumns: true;
2923
- };
2853
+ context?: AthenaRequestContext | AthenaRequestContextProvider;
2854
+ db?: AthenaDbConfig;
2855
+ auth?: AthenaAuthConfig;
2856
+ chat?: AthenaChatConfig;
2857
+ storage?: AthenaStorageConfig;
2858
+ billing?: AthenaBillingConfig;
2859
+ retryReads?: boolean;
2860
+ traceQueries?: boolean | AthenaQueryTraceOptions;
2861
+ debugAst?: boolean;
2862
+ findManyAst?: boolean;
2924
2863
  }
2925
- interface AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2926
- experimental: AthenaClientExperimentalOptions & {
2927
- athenaStorageBackend: true;
2928
- typecheckColumns: true;
2929
- };
2864
+ type V3TableBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, Result = unknown> = TableQueryBuilder<Row, Insert, Update, Result>;
2865
+ interface AthenaClient<TModels extends AthenaClientModelsInput | undefined = AthenaClientModelsInput | undefined> {
2866
+ readonly db: AthenaDbModule<ResolvedModels<TModels>>;
2867
+ readonly auth: AthenaAuthBindings;
2868
+ readonly chat: AthenaChatModule;
2869
+ readonly storage: AthenaStorageModule;
2870
+ readonly billing: AthenaBillingModule;
2871
+ from<TModel extends AthenaModelTarget>(model: TModel): V3TableBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>>;
2872
+ 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>>>;
2873
+ from<Row = Record<string, unknown>, Insert = Partial<Row>, Update = Partial<Insert>>(table: string, options?: AthenaFromOptions): V3TableBuilder<Row, Insert, Update>;
2874
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
2875
+ query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2876
+ request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2877
+ verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2878
+ withContext(context: AthenaRequestContext): AthenaClient<TModels>;
2930
2879
  }
2931
- interface AthenaClientBuilder<StorageEnabled extends boolean = false, TStrict extends boolean = false> {
2932
- /** Set the public Athena base URL. */
2933
- url(url: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2934
- /** Set the API key used for all requests. */
2935
- key(apiKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2936
- /** Set the default backend routing strategy. */
2937
- backend(backend: BackendConfig | BackendType): AthenaClientBuilder<StorageEnabled, TStrict>;
2938
- /** Set the default Athena client routing key. */
2939
- client(clientName: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2940
- /** Attach static headers to every request. */
2941
- headers(headers: Record<string, string>): AthenaClientBuilder<StorageEnabled, TStrict>;
2942
- /** Forward a direct PostgreSQL URI as `x-pg-uri` on gateway requests. */
2943
- pgUri(pgUri: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2944
- /** Forward a JDBC/PostgreSQL URI to compatibility JDBC headers. */
2945
- jdbcUrl(jdbcUrl: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2946
- /** Override the canonical `X-Athena-Key` header for this client. */
2947
- athenaKey(athenaKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2948
- /** Configure Athena Auth client behavior for `client.auth.*` methods. */
2949
- auth(config: AthenaCreateClientAuthOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2950
- /** Configure experimental client options and narrow the built client when storage or strict column checks are enabled. */
2951
- experimental(options: AthenaClientExperimentalOptions & {
2952
- athenaStorageBackend: true;
2953
- typecheckColumns: true;
2954
- }): AthenaClientBuilder<true, true>;
2955
- experimental(options: AthenaClientExperimentalOptions & {
2956
- athenaStorageBackend: true;
2957
- }): AthenaClientBuilder<true, TStrict>;
2958
- experimental(options: AthenaClientExperimentalOptions & {
2959
- typecheckColumns: true;
2960
- }): AthenaClientBuilder<StorageEnabled, true>;
2961
- experimental(options: AthenaClientExperimentalOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2962
- /** Apply createClient options and narrow the built client when storage is enabled. */
2963
- options(options: AthenaCreateClientOptionsWithStorageAndTypecheckedColumns): AthenaClientBuilder<true, true>;
2964
- options(options: AthenaCreateClientOptionsWithStorage): AthenaClientBuilder<true, TStrict>;
2965
- options(options: AthenaCreateClientOptionsWithTypecheckedColumns): AthenaClientBuilder<StorageEnabled, true>;
2966
- options(options: AthenaCreateClientOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2967
- /** Build the immutable Athena SDK client. */
2968
- build(): StorageEnabled extends true ? AthenaSdkClientWithStorage<TStrict> : AthenaSdkClientWithAuth<TStrict>;
2969
- }
2970
- /** Canonical Athena client factory with builder-based configuration. */
2971
- declare class AthenaClient {
2972
- /** Create a fluent builder for a strongly-typed Athena SDK client. */
2973
- static builder(): AthenaClientBuilder<false, false>;
2974
- /** Build a client from process environment variables. */
2975
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns): AthenaSdkClientWithStorage<true>;
2976
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorage): AthenaSdkClientWithStorage<false>;
2977
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithTypecheckedColumns): AthenaSdkClientWithAuth<true>;
2978
- static fromEnvironment(options?: AthenaClientFromEnvironmentOptions): AthenaSdkClientWithAuth<false>;
2979
- }
2980
- type ExtractClientModels<TInput> = TInput extends {
2981
- models: infer TModels extends AthenaClientModelsInput;
2982
- } ? TModels : never;
2983
- type AthenaCreateClientReturn<TInput> = TInput extends {
2984
- experimental: AthenaClientExperimentalOptions & {
2985
- athenaStorageBackend: true;
2986
- typecheckColumns: true;
2987
- };
2988
- } ? AthenaSdkClientWithStorage<true, ExtractClientModels<TInput>> : TInput extends {
2989
- experimental: AthenaClientExperimentalOptions & {
2990
- athenaStorageBackend: true;
2991
- };
2992
- } ? AthenaSdkClientWithStorage<false, ExtractClientModels<TInput>> : TInput extends {
2993
- experimental: AthenaClientExperimentalOptions & {
2994
- typecheckColumns: true;
2995
- };
2996
- } ? AthenaSdkClientWithAuth<true, ExtractClientModels<TInput>> : AthenaSdkClientWithAuth<false, ExtractClientModels<TInput>>;
2997
- /** Create client (convenience wrapper; use AthenaClient.builder() for full control) */
2998
- declare function createClient<TConfig extends AthenaCreateClientConfig>(config: TConfig): AthenaCreateClientReturn<TConfig>;
2999
- declare function createClient<TOptions extends AthenaCreateClientOptions | undefined>(url: string | null | undefined, apiKey: string | null | undefined, options?: TOptions): TOptions extends AthenaCreateClientOptions ? AthenaCreateClientReturn<TOptions> : AthenaSdkClientWithAuth<false>;
2880
+ declare function createClient<const TModels extends AthenaClientModelsInput | undefined = undefined>(config: AthenaClientConfig<TModels>): AthenaClient<TModels>;
3000
2881
 
3001
- 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 AthenaStorageBackupNamespace 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 RetryBackoffStrategy as b$, type AthenaStorageBaseModule as b0, type AthenaStorageBinaryCallOptions as b1, type AthenaStorageBucketCorsNamespace as b2, type AthenaStorageBucketNamespace as b3, type AthenaStorageCallOptions as b4, type AthenaStorageCatalogNamespace as b5, type AthenaStorageClientConfig as b6, type AthenaStorageCredentialsNamespace as b7, type AthenaStorageDirectUploadConfig as b8, type AthenaStorageEnv as b9, type AthenaStorageTemplateValue as bA, type AthenaStorageTemplateVars as bB, type AthenaStorageUploadConstraints as bC, type AthenaStorageUploadProgress as bD, type AthenaStorageUploadProgressHandler as bE, type AthenaStorageUploadSource as bF, type AthenaStorageUploadedFile as bG, type AthenaTableBuilderStateAst as bH, type AthenaUpdateDebugAst as bI, type AthenaUpsertDebugAst as bJ, type BackupRecoveryStrategy as bK, type ConfirmStorageUploadRequest as bL, type CopyStorageFileRequest as bM, type CreateStorageCatalogRequest as bN, type CreateStorageUploadUrlRequest as bO, type CreateStorageUploadUrlsRequest as bP, type DeleteManyStorageFilesRequest as bQ, type DeleteStorageFolderRequest as bR, type GetStorageFileUrlQuery as bS, type IntCoercionOptions as bT, type ListStorageFilesRequest as bU, type ListStorageFoldersRequest as bV, type ManagedFileRecord as bW, type MoveStorageFolderRequest as bX, type NormalizedAthenaError as bY, type PresignedFileUrlResponse as bZ, type RequireAffectedOptions as b_, AthenaStorageError as ba, AthenaStorageErrorCode as bb, type AthenaStorageErrorDetails as bc, type AthenaStorageErrorHandler as bd, type AthenaStorageErrorInput as be, type AthenaStorageFileConfig as bf, type AthenaStorageFileDeleteInput as bg, type AthenaStorageFileDownloadInput as bh, type AthenaStorageFileListInput as bi, type AthenaStorageFileModule as bj, type AthenaStorageFileNamespace as bk, type AthenaStorageFileUploadInput as bl, type AthenaStorageFileUploadManyRequest as bm, type AthenaStorageFileUploadRequest as bn, type AthenaStorageFileUploadResult as bo, type AthenaStorageFolderNamespace as bp, type AthenaStorageManagedUpload as bq, type AthenaStorageModule as br, type AthenaStorageMultipartNamespace as bs, type AthenaStorageObjectFolderNamespace as bt, type AthenaStorageObjectNamespace as bu, type AthenaStoragePathContext as bv, type AthenaStoragePermissionNamespace as bw, type AthenaStoragePrefixPath as bx, type AthenaStoragePutBody as by, type AthenaStoragePutOptions as bz, type AthenaChatAttachmentView as c, type StorageSetBucketPolicyRequest as c$, type RetryConfig as c0, type RpcOrderOptions as c1, type RpcQueryBuilder as c2, type S3CatalogItem as c3, type S3CredentialListItem as c4, type SearchStorageFilesRequest as c5, type SetManyStorageFileVisibilityRequest as c6, type SetStorageFileVisibilityRequest as c7, type StorageAuditEventRecord as c8, type StorageAuditListResponse as c9, type StorageMultipartAbortRequest as cA, type StorageMultipartCompletePartInput as cB, type StorageMultipartCompleteRequest as cC, type StorageMultipartCreateRequest as cD, type StorageMultipartListPartsRequest as cE, type StorageMultipartSignPartRequest as cF, type StorageObjectBaseRequest as cG, type StorageObjectCopyRequest as cH, type StorageObjectFolderCreateRequest as cI, type StorageObjectFolderDeleteRequest as cJ, type StorageObjectFolderRenameRequest as cK, type StorageObjectPublicUrlRequest as cL, type StorageObjectRequest as cM, type StorageObjectValidateRequest as cN, type StorageObjectVersionListRequest as cO, type StorageObjectVersionMutationRequest as cP, type StoragePermissionCheckRequest as cQ, type StoragePermissionCheckResponse as cR, type StoragePermissionGrantRequest as cS, type StoragePermissionListRequest as cT, type StoragePermissionListResponse as cU, type StoragePermissionRevokeRequest as cV, type StoragePresignUploadRequest as cW, type StoragePublicAccessBlockRequest as cX, type StorageServerSideEncryptionOptions as cY, type StorageSetBucketCorsRequest as cZ, type StorageSetBucketLifecycleRequest as c_, type StorageAuditQueryRequest as ca, type StorageBackupCreateRequest as cb, type StorageBackupJob as cc, type StorageBackupListPage as cd, type StorageBackupListQuery as ce, type StorageBackupQueuedJob as cf, type StorageBackupRecord as cg, type StorageBackupRestoreRequest as ch, type StorageBackupSchedule as ci, type StorageBackupScheduleCreateRequest as cj, type StorageBatchUploadUrlResponse as ck, type StorageBatchUploadUrlResponseWithPut as cl, type StorageBucketCorsRequest as cm, type StorageBucketCorsRuleInput as cn, type StorageBucketLifecycleRequest as co, type StorageBucketLifecycleRuleInput as cp, type StorageBucketPolicyRequest as cq, type StorageFileAccessPurpose as cr, type StorageFileMutationManyResponse as cs, type StorageFileMutationResponse as ct, type StorageFilePermissionRecord as cu, type StorageFileRetentionRequest as cv, type StorageFileVersionPathRequest as cw, type StorageFolderMutationResponse as cx, type StorageListFilesResponse as cy, type StorageListObjectsRequest as cz, type AthenaChatCallOptions as d, type StorageSetPublicAccessBlockRequest as d0, type StorageSignedPostPolicyRequest as d1, type StorageUpdateObjectRequest as d2, type StorageUploadUrlResponse as d3, type StorageUploadUrlResponseWithPut as d4, type TableQueryBuilder as d5, type TreeStorageFoldersRequest as d6, type UnwrapOneOptions as d7, type UnwrapOptions as d8, type UpdateManyStorageFilesRequest as d9, type AthenaQueryTraceOptions as dA, type AthenaRelationSelectNode as dB, type AthenaResultError as dC, type AthenaSelectShape as dD, type AthenaWhere as dE, type AthenaWhereBooleanOperand as dF, type AthenaWhereOperatorInput as dG, type UpdateStorageCatalogRequest as da, type UpdateStorageFileRequest as db, assertInt as dc, coerceInt as dd, createAthenaStorageError as de, createClient as df, createStorageModule as dg, getAthenaDebugAst as dh, isOk as di, normalizeAthenaError as dj, parseBooleanFlag as dk, requireAffected as dl, requireSuccess as dm, storageSdkManifest as dn, unwrap as dp, unwrapOne as dq, unwrapRows as dr, verifyAthenaGatewayUrl as ds, withRetry as dt, type AthenaClientBuilder as du, type AthenaFindManyOptions as dv, type AthenaFindManyResult as dw, type AthenaOrderBy as dx, type AthenaQueryTraceCallsite as dy, type AthenaQueryTraceEvent as dz, 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 };
2882
+ 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 AthenaStorageFileConfig 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 AthenaRequestOptions as aA, type AthenaRequestQueryValueMap as aB, type AthenaRequestResponse as aC, type AthenaRequestService as aD, type AthenaResult as aE, type AthenaRpcBuilderStateAst as aF, type AthenaRpcDebugAst as aG, type AthenaSelectDebugAst as aH, type AthenaSelectDebugTransport as aI, type AthenaStorageAuditNamespace as aJ, type AthenaStorageBackupNamespace as aK, type AthenaStorageBaseModule as aL, type AthenaStorageBinaryCallOptions as aM, type AthenaStorageBucketCorsNamespace as aN, type AthenaStorageBucketNamespace as aO, type AthenaStorageCallOptions as aP, type AthenaStorageCatalogNamespace as aQ, type AthenaStorageClientConfig as aR, type AthenaStorageConfig as aS, type AthenaStorageCredentialsNamespace as aT, type AthenaStorageDirectUploadConfig as aU, type AthenaStorageEnv as aV, AthenaStorageError as aW, AthenaStorageErrorCode as aX, type AthenaStorageErrorDetails as aY, type AthenaStorageErrorHandler as aZ, type AthenaStorageErrorInput 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, type AthenaDbConfig as ai, type AthenaDbModule as aj, type AthenaDeleteDebugAst as ak, type AthenaEnvelope as al, AthenaError as am, AthenaErrorCategory as an, AthenaErrorCode as ao, type AthenaErrorInput as ap, AthenaErrorKind as aq, type AthenaFindManyDebugAst as ar, type AthenaFromOptions as as, type AthenaInsertDebugAst as at, type AthenaOperationContext as au, type AthenaQueryDebugAst as av, type AthenaRawQueryDebugAst as aw, type AthenaRequestContext as ax, type AthenaRequestContextProvider as ay, type AthenaRequestMethod as az, type AthenaChatAddMembersRequest as b, type StorageBackupListQuery as b$, type AthenaStorageFileDeleteInput as b0, type AthenaStorageFileDownloadInput as b1, type AthenaStorageFileListInput as b2, type AthenaStorageFileModule as b3, type AthenaStorageFileNamespace as b4, type AthenaStorageFileUploadInput as b5, type AthenaStorageFileUploadManyRequest as b6, type AthenaStorageFileUploadRequest as b7, type AthenaStorageFileUploadResult as b8, type AthenaStorageFolderNamespace as b9, type DeleteManyStorageFilesRequest as bA, type DeleteStorageFolderRequest as bB, type DeprecatedInlineStorageConnectionFields as bC, type GetStorageFileUrlQuery as bD, type IntCoercionOptions as bE, type ListStorageFilesRequest as bF, type ListStorageFoldersRequest as bG, type ManagedFileRecord as bH, type MoveStorageFolderRequest as bI, type NormalizedAthenaError as bJ, type PresignedFileUrlResponse as bK, type RequireAffectedOptions as bL, type RetryBackoffStrategy as bM, type RetryConfig as bN, type RpcOrderOptions as bO, type RpcQueryBuilder as bP, type S3CatalogItem as bQ, type S3CredentialListItem as bR, type SearchStorageFilesRequest as bS, type SetManyStorageFileVisibilityRequest as bT, type SetStorageFileVisibilityRequest as bU, type StorageAuditEventRecord as bV, type StorageAuditListResponse as bW, type StorageAuditQueryRequest as bX, type StorageBackupCreateRequest as bY, type StorageBackupJob as bZ, type StorageBackupListPage as b_, type AthenaStorageManagedUpload as ba, type AthenaStorageModule as bb, type AthenaStorageMultipartNamespace as bc, type AthenaStorageObjectFolderNamespace as bd, type AthenaStorageObjectNamespace as be, type AthenaStoragePathContext as bf, type AthenaStoragePermissionNamespace as bg, type AthenaStoragePrefixPath as bh, type AthenaStoragePutBody as bi, type AthenaStoragePutOptions as bj, type AthenaStorageTemplateValue as bk, type AthenaStorageTemplateVars as bl, type AthenaStorageUploadConstraints as bm, type AthenaStorageUploadProgress as bn, type AthenaStorageUploadProgressHandler as bo, type AthenaStorageUploadSource as bp, type AthenaStorageUploadedFile as bq, type AthenaTableBuilderStateAst as br, type AthenaUpdateDebugAst as bs, type AthenaUpsertDebugAst as bt, type BackupRecoveryStrategy as bu, type ConfirmStorageUploadRequest as bv, type CopyStorageFileRequest as bw, type CreateStorageCatalogRequest as bx, type CreateStorageUploadUrlRequest as by, type CreateStorageUploadUrlsRequest as bz, type AthenaChatAddReactionRequest as c, coerceInt as c$, type StorageBackupQueuedJob as c0, type StorageBackupRecord as c1, type StorageBackupRestoreRequest as c2, type StorageBackupSchedule as c3, type StorageBackupScheduleCreateRequest as c4, type StorageBatchUploadUrlResponse as c5, type StorageBatchUploadUrlResponseWithPut as c6, type StorageBucketCorsRequest as c7, type StorageBucketCorsRuleInput as c8, type StorageBucketLifecycleRequest as c9, type StorageObjectVersionListRequest as cA, type StorageObjectVersionMutationRequest as cB, type StoragePermissionCheckRequest as cC, type StoragePermissionCheckResponse as cD, type StoragePermissionGrantRequest as cE, type StoragePermissionListRequest as cF, type StoragePermissionListResponse as cG, type StoragePermissionRevokeRequest as cH, type StoragePresignUploadRequest as cI, type StoragePublicAccessBlockRequest as cJ, type StorageServerSideEncryptionOptions as cK, type StorageSetBucketCorsRequest as cL, type StorageSetBucketLifecycleRequest as cM, type StorageSetBucketPolicyRequest as cN, type StorageSetPublicAccessBlockRequest as cO, type StorageSignedPostPolicyRequest as cP, type StorageUpdateObjectRequest as cQ, type StorageUploadUrlResponse as cR, type StorageUploadUrlResponseWithPut as cS, type TableQueryBuilder as cT, type TreeStorageFoldersRequest as cU, type UnwrapOneOptions as cV, type UnwrapOptions as cW, type UpdateManyStorageFilesRequest as cX, type UpdateStorageCatalogRequest as cY, type UpdateStorageFileRequest as cZ, assertInt as c_, type StorageBucketLifecycleRuleInput as ca, type StorageBucketPolicyRequest as cb, type StorageConnectionSelector as cc, type StorageFileAccessPurpose as cd, type StorageFileMutationManyResponse as ce, type StorageFileMutationResponse as cf, type StorageFilePermissionRecord as cg, type StorageFileRetentionRequest as ch, type StorageFileVersionPathRequest as ci, type StorageFolderMutationResponse as cj, type StorageListFilesResponse as ck, type StorageListObjectsRequest as cl, type StorageMultipartAbortRequest as cm, type StorageMultipartCompletePartInput as cn, type StorageMultipartCompleteRequest as co, type StorageMultipartCreateRequest as cp, type StorageMultipartListPartsRequest as cq, type StorageMultipartSignPartRequest as cr, type StorageObjectBaseRequest as cs, type StorageObjectCopyRequest as ct, type StorageObjectFolderCreateRequest as cu, type StorageObjectFolderDeleteRequest as cv, type StorageObjectFolderRenameRequest as cw, type StorageObjectPublicUrlRequest as cx, type StorageObjectRequest as cy, type StorageObjectValidateRequest as cz, type AthenaChatAttachmentInput as d, createAthenaStorageError as d0, createClient as d1, createStorageModule as d2, getAthenaDebugAst as d3, isOk as d4, normalizeAthenaError as d5, parseBooleanFlag as d6, requireAffected as d7, requireSuccess as d8, storageSdkManifest as d9, unwrap as da, unwrapOne as db, unwrapRows as dc, verifyAthenaGatewayUrl as dd, withRetry as de, type AthenaFindManyOptions as df, type AthenaFindManyResult as dg, type AthenaOrderBy as dh, type AthenaQueryTraceCallsite as di, type AthenaQueryTraceEvent as dj, type AthenaQueryTraceOptions as dk, type AthenaRelationSelectNode as dl, type AthenaResultError as dm, type AthenaSelectShape as dn, type AthenaValidatedSelectShape as dp, type AthenaWhere as dq, type AthenaWhereBooleanOperand as dr, type AthenaWhereOperatorInput as ds, DEFAULT_MULTIPART_PART_SIZE_BYTES as dt, DEFAULT_MULTIPART_THRESHOLD_BYTES as du, createStorageFileModule as dv, resolveStoragePath as dw, 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 };