@indiegems/gem-web-sdk 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1438 @@
1
+ interface Clock {
2
+ now(): number;
3
+ setTimeout(fn: () => void, ms: number): unknown;
4
+ clearTimeout(handle: unknown): void;
5
+ }
6
+ declare const systemClock: Clock;
7
+ type AuthFailure = "chain_exhausted" | "unavailable" | "timeout" | "internal";
8
+ type AuthState = "ready" | "pending" | "degraded" | "lost";
9
+ interface TokenGrant {
10
+ readonly token: string;
11
+ readonly expiresAt: number;
12
+ readonly chainEndsAt: number;
13
+ }
14
+ declare class AuthError extends Error {
15
+ readonly reason: AuthFailure;
16
+ constructor(reason: AuthFailure, message: string);
17
+ static isAuthError(error: unknown): error is AuthError;
18
+ }
19
+ declare class TransportRefusal extends Error {
20
+ readonly retryable: false;
21
+ constructor(message: string);
22
+ static isRefusal(error: unknown): error is TransportRefusal;
23
+ }
24
+ declare const CONDITIONAL_HEADERS: readonly [
25
+ "if-match",
26
+ "if-none-match"
27
+ ];
28
+ type ConditionalRequestHeaders = Partial<Record<(typeof CONDITIONAL_HEADERS)[number], string>>;
29
+ interface TransportRequest {
30
+ readonly method: "GET" | "PUT" | "POST" | "PATCH" | "DELETE";
31
+ readonly path: string;
32
+ readonly body?: unknown;
33
+ readonly headers?: ConditionalRequestHeaders;
34
+ readonly signal?: AbortSignal;
35
+ readonly keepalive?: boolean;
36
+ }
37
+ interface TransportResponse {
38
+ readonly status: number;
39
+ readonly body: unknown;
40
+ readonly etag?: string;
41
+ readonly retryAfterSeconds?: number;
42
+ }
43
+ interface Transport {
44
+ request(request: TransportRequest): Promise<TransportResponse>;
45
+ }
46
+ type Base64String = string & {
47
+ readonly __contentEncoding: "base64";
48
+ };
49
+ declare function toBase64(value: string | Uint8Array): Base64String;
50
+ type GemErrorReason = "invalid" | "forbidden" | "not_found" | "conflict" | "precondition_failed" | "not_modified" | "insufficient_funds" | "too_large" | "rate_limited" | "unavailable";
51
+ declare class GemApiError extends Error {
52
+ readonly reason: GemErrorReason;
53
+ readonly status: number;
54
+ readonly detail: string;
55
+ readonly retryAfterSeconds?: number | undefined;
56
+ readonly code?: string | undefined;
57
+ constructor(reason: GemErrorReason, status: number, detail: string, retryAfterSeconds?: number | undefined, code?: string | undefined);
58
+ get retryable(): boolean;
59
+ }
60
+ interface ClientOptions {
61
+ readonly transport: Transport;
62
+ readonly clock: Clock;
63
+ readonly maxRetries?: number;
64
+ }
65
+ interface RequestOptions {
66
+ readonly keepalive?: boolean;
67
+ readonly ifMatch?: string;
68
+ readonly replaySafe?: boolean;
69
+ }
70
+ interface VersionedGetOptions {
71
+ readonly signal?: AbortSignal;
72
+ readonly ifNoneMatch?: string;
73
+ }
74
+ type VersionedResponse<T> = {
75
+ readonly modified: true;
76
+ readonly body: T;
77
+ readonly etag?: string;
78
+ } | {
79
+ readonly modified: false;
80
+ readonly etag?: string;
81
+ };
82
+ declare class GemClient {
83
+ private readonly options;
84
+ constructor(options: ClientOptions);
85
+ get<T>(path: string, signal?: AbortSignal): Promise<T>;
86
+ getWithEtag<T>(path: string, options?: VersionedGetOptions): Promise<VersionedResponse<T>>;
87
+ put<T>(path: string, body: unknown, signal?: AbortSignal, options?: RequestOptions): Promise<T>;
88
+ post<T>(path: string, body: unknown, signal?: AbortSignal, options?: RequestOptions): Promise<T>;
89
+ patch<T>(path: string, body: unknown, signal?: AbortSignal, options?: RequestOptions): Promise<T>;
90
+ delete<T>(path: string, signal?: AbortSignal, options?: RequestOptions): Promise<T>;
91
+ private send;
92
+ private sendRaw;
93
+ private backoff;
94
+ }
95
+ type RoomArgValue = string | number | boolean | readonly string[] | readonly number[] | readonly boolean[];
96
+ interface ServerTokenGrant {
97
+ readonly token: string;
98
+ readonly expiresAt: number;
99
+ }
100
+ interface ServerBundleHost {
101
+ readonly matchId: string;
102
+ readonly gameId: string;
103
+ readonly channel: string;
104
+ readonly gameRoomId?: string;
105
+ readonly apiBaseUrl?: string;
106
+ serverToken?(): ServerTokenGrant | undefined;
107
+ onServerToken?(listener: (grant: ServerTokenGrant) => void): () => void;
108
+ }
109
+ interface SendOptions {
110
+ readonly reliable?: boolean;
111
+ readonly ordered?: boolean;
112
+ }
113
+ interface BroadcastOptions extends SendOptions {
114
+ readonly except?: string;
115
+ }
116
+ interface GemServerHostProfile {
117
+ readonly displayName?: string;
118
+ readonly displayTag?: string;
119
+ readonly discriminator?: string;
120
+ }
121
+ interface GemServerHost extends ServerBundleHost {
122
+ readonly sizeClass: string;
123
+ readonly roomArgs?: Readonly<Record<string, RoomArgValue>>;
124
+ readonly roster: readonly string[];
125
+ players(): string[];
126
+ profile?(playerId: string): GemServerHostProfile | undefined;
127
+ playerNumber?(playerId: string): number | undefined;
128
+ send(playerId: string, data: string | Uint8Array, options?: SendOptions): void;
129
+ broadcast(data: string | Uint8Array, options?: BroadcastOptions): void;
130
+ kick(playerId: string, reason?: string): void;
131
+ endMatch?(): Promise<"ok" | "already_ended" | "refused" | "failed" | (string & {})>;
132
+ log(message: string): void;
133
+ warn(message: string): void;
134
+ }
135
+ interface HostTokenSourceOptions {
136
+ readonly clock: Clock;
137
+ readonly timeoutMs?: number;
138
+ readonly onStateChange?: (state: AuthState, reason?: AuthFailure) => void;
139
+ }
140
+ interface HostTokenSource {
141
+ dispose(): void;
142
+ }
143
+ declare function createHostTokenSource(host: ServerBundleHost, options: HostTokenSourceOptions): HostTokenSource;
144
+ interface GameApi {
145
+ readonly client: GemClient;
146
+ gameId(): string;
147
+ }
148
+ type ActiveWindowResponse = {
149
+ "ends_at": string;
150
+ "window_id": string;
151
+ };
152
+ type AdminActionRequest = {
153
+ "action": "mute";
154
+ "player_id": string;
155
+ } | {
156
+ "action": "unmute";
157
+ "player_id": string;
158
+ } | {
159
+ "action": "remove";
160
+ "player_id": string;
161
+ } | {
162
+ "action": "ban";
163
+ "player_id": string;
164
+ } | {
165
+ "action": "move_channel";
166
+ "channel": string;
167
+ "player_id": string;
168
+ } | {
169
+ "action": "proximity_params";
170
+ "hearing_radius"?: number | null;
171
+ "max_voices"?: number | null;
172
+ };
173
+ type BatchOrderItem = {
174
+ "nonce"?: string | null;
175
+ "operations": OperationRequest[];
176
+ "source_reference"?: string | null;
177
+ };
178
+ type BatchOrderItemResult = {
179
+ "auto_claimed_rewards"?: InventoryChange[];
180
+ "changes": InventoryChange[];
181
+ "nonce"?: string | null;
182
+ "order_id": string;
183
+ "status": OrderStatus;
184
+ };
185
+ type BatchOrderRequest = {
186
+ "channel"?: null | GameChannel;
187
+ "game_id"?: string | null;
188
+ "orders": BatchOrderItem[];
189
+ "source": OrderSource;
190
+ };
191
+ type BatchOrderResponse = {
192
+ "etag"?: string | null;
193
+ "orders": BatchOrderItemResult[];
194
+ "status": OrderStatus;
195
+ };
196
+ type BucketBalanceResponse = {
197
+ "balance": number;
198
+ "bucket": string;
199
+ };
200
+ type CatalogItem = {
201
+ "consumable": boolean;
202
+ "display_name"?: string | null;
203
+ "fungible": boolean;
204
+ "icon_url"?: string | null;
205
+ "item_id": string;
206
+ "platform_prices": PurchasePrice[];
207
+ "stack_size"?: number | null;
208
+ };
209
+ type CatalogRecipe = {
210
+ "availability_end"?: string | null;
211
+ "availability_start"?: string | null;
212
+ "catalog_id": string;
213
+ "cooldown_seconds"?: number | null;
214
+ "display_name"?: string | null;
215
+ "max_uses"?: number | null;
216
+ "platform_prices": PurchasePrice[];
217
+ "recipe_id": string;
218
+ "recipe_type": string;
219
+ };
220
+ type ClientPlatform = "universal" | "mobile" | "web";
221
+ type CreateOrderRequest = {
222
+ "channel"?: null | GameChannel;
223
+ "game_id"?: string | null;
224
+ "nonce"?: string | null;
225
+ "operations": OperationRequest[];
226
+ "source": OrderSource;
227
+ "source_reference"?: string | null;
228
+ };
229
+ type CreateSessionRequest = {
230
+ "channel_assignments": Record<string, unknown>;
231
+ "game_id": string;
232
+ "members": string[];
233
+ "mode_override"?: string | null;
234
+ "region": string;
235
+ "session_id": string;
236
+ "text_chat_enabled_override"?: boolean | null;
237
+ };
238
+ type CurrencyBalanceResponse = {
239
+ "buckets"?: BucketBalanceResponse[] | null;
240
+ "currency_id": string;
241
+ "total": number;
242
+ };
243
+ type CurrencyResetOverride = {
244
+ "bucket": string;
245
+ "currency_id": string;
246
+ "last_reset_at"?: string | null;
247
+ "next_reset_at"?: string | null;
248
+ };
249
+ type DropRateEntry = {
250
+ "drop_rate": number;
251
+ "entry_id": string;
252
+ "rarity_tier"?: string | null;
253
+ "weight": number;
254
+ };
255
+ type DropRatesResponse = {
256
+ "allow_duplicate_rolls": boolean;
257
+ "entries": DropRateEntry[];
258
+ "loot_table_id": string;
259
+ "name": string;
260
+ "roll_count": number;
261
+ "total_weight": number;
262
+ };
263
+ type EntityLeaderboardEntryResponse = {
264
+ "occurred_at": number;
265
+ "properties"?: Record<string, unknown> | null;
266
+ "rank": number;
267
+ "stats"?: Record<string, unknown> | null;
268
+ };
269
+ type EntityLeaderboardResponse = {
270
+ "bucket_1"?: string | null;
271
+ "bucket_2"?: string | null;
272
+ "entity_id": string;
273
+ "entity_type": EntityType;
274
+ "entries": EntityLeaderboardEntryResponse[];
275
+ "generated_at": number;
276
+ "leaderboard_type": string;
277
+ "personal_best"?: null | EntityLeaderboardEntryResponse;
278
+ "run_type": string;
279
+ "total_runs": number;
280
+ "total_runs_exact": boolean;
281
+ };
282
+ type EntityType = "player" | "character";
283
+ type ErrorDetail = {
284
+ "code": string;
285
+ "details"?: unknown;
286
+ "message": string;
287
+ };
288
+ type ErrorResponse = {
289
+ "error": ErrorDetail;
290
+ };
291
+ type EventDefinitionResponse = {
292
+ "created_at": string;
293
+ "description": string;
294
+ "display_name": string;
295
+ "event_id": string;
296
+ "icon_url": string;
297
+ "is_enabled": boolean;
298
+ "metadata": unknown;
299
+ "schedule": unknown;
300
+ "schedule_type": string;
301
+ "slug"?: string | null;
302
+ "status"?: null | EventStatusInfo;
303
+ "updated_at": string;
304
+ };
305
+ type EventListResponse = {
306
+ "events": EventDefinitionResponse[];
307
+ "limit": number;
308
+ "offset": number;
309
+ "total": number;
310
+ };
311
+ type EventStatusInfo = {
312
+ "current_window"?: null | ActiveWindowResponse;
313
+ "is_active": boolean;
314
+ "next_window"?: null | WindowPreviewResponse;
315
+ };
316
+ type FidelityReport = {
317
+ "caveats": string[];
318
+ "defaults_applied": string[];
319
+ };
320
+ type GameChannel = "dev" | "test" | "release";
321
+ type GameRoomMemberResponseV2 = {
322
+ "avatar_icon_id"?: string | null;
323
+ "discriminator"?: string | null;
324
+ "display_name"?: string | null;
325
+ "display_tag"?: string | null;
326
+ "group_id"?: string | null;
327
+ "is_ready": boolean;
328
+ "joined_at": number;
329
+ "platform"?: null | ClientPlatform;
330
+ "player_id": string;
331
+ "role": string;
332
+ };
333
+ type GameRoomResponseV2 = {
334
+ "created_at": number;
335
+ "game_channel": string;
336
+ "game_id": string;
337
+ "game_room_type": string;
338
+ "host_player_id": string;
339
+ "id": string;
340
+ "is_public": boolean;
341
+ "join_code"?: string | null;
342
+ "match_id"?: string | null;
343
+ "max_players": number;
344
+ "member_count": number;
345
+ "members": GameRoomMemberResponseV2[];
346
+ "name": string;
347
+ "region"?: string | null;
348
+ "room_args"?: Record<string, unknown> | null;
349
+ "room_args_template"?: null | RoomArgsTemplate;
350
+ "settings"?: unknown;
351
+ "started_at"?: number | null;
352
+ "status": string;
353
+ "template_id"?: string | null;
354
+ "template_slug"?: string | null;
355
+ "transports": string[];
356
+ "updated_at": number;
357
+ "version": number;
358
+ };
359
+ type GameRoomSummaryResponse = {
360
+ "created_at": number;
361
+ "game_channel": string;
362
+ "game_id": string;
363
+ "game_room_type": string;
364
+ "host_player_id": string;
365
+ "id": string;
366
+ "is_public": boolean;
367
+ "max_players": number;
368
+ "member_count": number;
369
+ "name": string;
370
+ "status": string;
371
+ "template_slug"?: string | null;
372
+ };
373
+ type GameRoomTemplateListResponse = {
374
+ "templates": GameRoomTemplateResponse[];
375
+ };
376
+ type GameRoomTemplateResponse = {
377
+ "allow_host_transfer": boolean;
378
+ "allow_join_in_progress": boolean;
379
+ "allow_kick": boolean;
380
+ "allow_party_join": boolean;
381
+ "allow_ready_check": boolean;
382
+ "auto_close_when_empty": boolean;
383
+ "auto_leave_on_client_shutdown": boolean;
384
+ "auto_start_host": boolean;
385
+ "default_visibility": string;
386
+ "game_id"?: string | null;
387
+ "game_room_ttl_seconds": number;
388
+ "game_room_type": string;
389
+ "id": string;
390
+ "idle_timeout_seconds"?: number | null;
391
+ "is_active": boolean;
392
+ "match_type": MatchType;
393
+ "max_match_duration_seconds": number;
394
+ "max_players": number;
395
+ "min_players": number;
396
+ "name": string;
397
+ "notify_on_host_transfer": string;
398
+ "notify_on_join": string;
399
+ "notify_on_kick": string;
400
+ "notify_on_leave": string;
401
+ "notify_on_ready": string;
402
+ "offline_member_timeout_seconds"?: number | null;
403
+ "room_args_template"?: null | RoomArgsTemplate;
404
+ "show_in_browser": boolean;
405
+ "slug"?: string | null;
406
+ "transports": string[];
407
+ };
408
+ type GameRoomsListResponse = {
409
+ "game_rooms": GameRoomSummaryResponse[];
410
+ "next_cursor"?: string | null;
411
+ };
412
+ type InitiateTransferRequest = {
413
+ "currencies"?: TransferCurrencyRequest[];
414
+ "items"?: TransferItemRequest[];
415
+ "message"?: string | null;
416
+ "nonce": string;
417
+ "source_entity_id": string;
418
+ "source_entity_type": string;
419
+ "target_entity_id": string;
420
+ "target_entity_type": string;
421
+ };
422
+ type InventoryChange = {
423
+ "balance_after": number;
424
+ "balance_before": number;
425
+ "bucket": string;
426
+ "currency_id": string;
427
+ "delta": number;
428
+ "type": "currency";
429
+ } | {
430
+ "delta": number;
431
+ "instance_id": string;
432
+ "item_definition_id": string;
433
+ "quantity_after": number;
434
+ "quantity_before": number;
435
+ "type": "item";
436
+ } | {
437
+ "instance_id": string;
438
+ "item_definition_id": string;
439
+ "properties_after": unknown;
440
+ "properties_before": unknown;
441
+ "type": "item_properties_changed";
442
+ } | {
443
+ "custom_data_after": unknown;
444
+ "custom_data_before": unknown;
445
+ "instance_id": string;
446
+ "item_definition_id": string;
447
+ "type": "item_custom_data_changed";
448
+ } | {
449
+ "completed": boolean;
450
+ "delta": number;
451
+ "depth"?: number;
452
+ "op_index"?: number | null;
453
+ "progression_definition_id": string;
454
+ "type": "progression";
455
+ "value_after": number;
456
+ "value_before": number;
457
+ } | {
458
+ "clamped_by": PlatformGrantClamp;
459
+ "granted": number;
460
+ "mapping_index": number;
461
+ "outcome": PlatformGrantOutcome;
462
+ "progression_definition_id": string;
463
+ "reason"?: string | null;
464
+ "requested": number;
465
+ "target_currency_id": string;
466
+ "type": "platform_grant";
467
+ } | {
468
+ "balance_after": number;
469
+ "balance_before": number;
470
+ "bucket": string;
471
+ "currency_id": string;
472
+ "type": "currency_bucket_reset";
473
+ } | {
474
+ "progression_definition_id": string;
475
+ "reset_reason": string;
476
+ "type": "progression_reset";
477
+ "value_before": number;
478
+ "was_completed": boolean;
479
+ } | {
480
+ "type": "unknown";
481
+ };
482
+ type InventoryResponse = {
483
+ "currencies": PaginatedCollectionCurrencyBalanceResponse;
484
+ "entity_id": string;
485
+ "etag": string;
486
+ "items": PaginatedCollectionItemInstanceResponse;
487
+ "progressions": PaginatedCollectionProgressionStateResponse;
488
+ "scope": InventoryScopeResponse;
489
+ };
490
+ type InventoryScopeResponse = {
491
+ "type": "platform";
492
+ } | {
493
+ "channel": GameChannel;
494
+ "game_id": string;
495
+ "type": "game";
496
+ };
497
+ type ItemInstanceResponse = {
498
+ "acquired_at": number;
499
+ "custom_data"?: unknown;
500
+ "instance_id": string;
501
+ "item_definition_id": string;
502
+ "properties": unknown;
503
+ "quantity": number;
504
+ };
505
+ type LeaderboardEntryResponse = {
506
+ "discriminator"?: string | null;
507
+ "display_name"?: string | null;
508
+ "display_tag"?: string | null;
509
+ "entity_id"?: string | null;
510
+ "entity_type"?: null | EntityType;
511
+ "is_viewer"?: boolean;
512
+ "occurred_at": number;
513
+ "properties"?: Record<string, unknown> | null;
514
+ "rank": number;
515
+ "stats"?: Record<string, unknown> | null;
516
+ };
517
+ type LeaderboardResponse = {
518
+ "bucket_1"?: string | null;
519
+ "bucket_2"?: string | null;
520
+ "entries": LeaderboardEntryResponse[];
521
+ "generated_at": number;
522
+ "leaderboard_type": string;
523
+ "run_type": string;
524
+ "update_frequency_seconds": number;
525
+ };
526
+ type ListTransfersResponse = {
527
+ "next_cursor"?: string | null;
528
+ "transfers": TransferResponse[];
529
+ };
530
+ type LootRollResultResponse = {
531
+ "entry_id": string;
532
+ "grants": InventoryChange[];
533
+ "rarity_tier"?: string | null;
534
+ "roll_number": number;
535
+ "was_replacement": boolean;
536
+ };
537
+ type MatchType = "dedicated" | "p2p" | "none";
538
+ type OperationRequest = {
539
+ "amount": number;
540
+ "bucket"?: string | null;
541
+ "currency_id": SlugOrId;
542
+ "overflow"?: OverflowBehavior;
543
+ "reason"?: string | null;
544
+ "type": "currency_grant";
545
+ } | {
546
+ "amount": number;
547
+ "bucket"?: string | null;
548
+ "currency_id": SlugOrId;
549
+ "overflow"?: OverflowBehavior;
550
+ "reason"?: string | null;
551
+ "type": "currency_consume";
552
+ } | {
553
+ "amount": number;
554
+ "bucket"?: string | null;
555
+ "currency_id": SlugOrId;
556
+ "reason"?: string | null;
557
+ "type": "currency_set";
558
+ } | {
559
+ "custom_data"?: Record<string, unknown> | null;
560
+ "instance_id"?: string | null;
561
+ "item_definition_id": SlugOrId;
562
+ "overflow"?: OverflowBehavior;
563
+ "properties"?: Record<string, unknown> | null;
564
+ "quantity"?: number;
565
+ "reason"?: string | null;
566
+ "type": "item_grant";
567
+ } | {
568
+ "instance_id"?: string | null;
569
+ "item_definition_id": SlugOrId;
570
+ "overflow"?: OverflowBehavior;
571
+ "quantity"?: number;
572
+ "reason"?: string | null;
573
+ "type": "item_remove";
574
+ } | {
575
+ "instance_id": string;
576
+ "item_definition_id": SlugOrId;
577
+ "properties": Record<string, unknown>;
578
+ "reason"?: string | null;
579
+ "type": "item_set_properties";
580
+ } | {
581
+ "instance_id": string;
582
+ "item_definition_id": SlugOrId;
583
+ "reason"?: string | null;
584
+ "type": "item_set_custom_data";
585
+ "updates": Record<string, unknown>;
586
+ } | {
587
+ "amount": number;
588
+ "progression_definition_id": SlugOrId;
589
+ "reason"?: string | null;
590
+ "type": "progression_add";
591
+ } | {
592
+ "progression_definition_id": SlugOrId;
593
+ "reason"?: string | null;
594
+ "type": "progression_set";
595
+ "value": number;
596
+ } | {
597
+ "progression_definition_id": SlugOrId;
598
+ "reason"?: string | null;
599
+ "type": "progression_max";
600
+ "value": number;
601
+ } | {
602
+ "progression_definition_id": SlugOrId;
603
+ "reason"?: string | null;
604
+ "type": "progression_reset";
605
+ };
606
+ type OrderListResponse = {
607
+ "has_more": boolean;
608
+ "next_cursor"?: string | null;
609
+ "orders": OrderRecordResponse[];
610
+ };
611
+ type OrderRecordResponse = {
612
+ "created_at": number;
613
+ "nonce"?: string | null;
614
+ "order_id": string;
615
+ "source": OrderSource;
616
+ "source_reference"?: string | null;
617
+ "status": string;
618
+ };
619
+ type OrderResponse = {
620
+ "changes"?: InventoryChange[];
621
+ "error"?: string | null;
622
+ "etag"?: string | null;
623
+ "order_id": string;
624
+ "status": OrderStatus;
625
+ };
626
+ type OrderSource = "real_money_purchase" | "real_money_refund" | "full_game_purchase" | "full_game_refund" | "platform_purchase" | "reward" | "admin" | "system" | "promo" | "game_consume" | "play" | "recipe" | "transfer" | "platform_funded_game_inventory_purchase";
627
+ type OrderStatus = "completed" | "failed";
628
+ type OverflowBehavior = "fail" | "clamp" | "allow";
629
+ type PaginatedCollectionCurrencyBalanceResponse = {
630
+ "data": {
631
+ "buckets"?: BucketBalanceResponse[] | null;
632
+ "currency_id": string;
633
+ "total": number;
634
+ }[];
635
+ "has_more": boolean;
636
+ "next_cursor"?: string | null;
637
+ };
638
+ type PaginatedCollectionItemInstanceResponse = {
639
+ "data": {
640
+ "acquired_at": number;
641
+ "custom_data"?: unknown;
642
+ "instance_id": string;
643
+ "item_definition_id": string;
644
+ "properties": unknown;
645
+ "quantity": number;
646
+ }[];
647
+ "has_more": boolean;
648
+ "next_cursor"?: string | null;
649
+ };
650
+ type PaginatedCollectionProgressionStateResponse = {
651
+ "data": {
652
+ "completion_count": number;
653
+ "current_value": number;
654
+ "is_completed": boolean;
655
+ "progression_definition_id": string;
656
+ }[];
657
+ "has_more": boolean;
658
+ "next_cursor"?: string | null;
659
+ };
660
+ type PaginatedResponseSaveDataResponse = {
661
+ "data": {
662
+ "created_at": number;
663
+ "download_url"?: string | null;
664
+ "entity_id": string;
665
+ "entity_type": string;
666
+ "etag": string;
667
+ "key": string;
668
+ "metadata"?: unknown;
669
+ "size_bytes": number;
670
+ "updated_at": number;
671
+ }[];
672
+ "has_more": boolean;
673
+ "next_cursor"?: string | null;
674
+ };
675
+ type PlatformGrantClamp = "none" | "max_per_event" | "game_max_per_entity" | "platform_max_per_game_per_entity" | "max_balance";
676
+ type PlatformGrantOutcome = "fired" | "clamped" | "suppressed";
677
+ type ProgressionAddRequest = {
678
+ "amount": number;
679
+ "reason"?: string | null;
680
+ };
681
+ type ProgressionClaimRequest = {
682
+ "channel"?: null | GameChannel;
683
+ "game_id": string;
684
+ "reason"?: string | null;
685
+ "track_id"?: string | null;
686
+ };
687
+ type ProgressionResetRequest = {
688
+ "reason"?: string | null;
689
+ };
690
+ type ProgressionStateOverride = {
691
+ "last_reset_at"?: string | null;
692
+ "last_window_id"?: string | null;
693
+ "progression_definition_id": string;
694
+ "rewards_claimed_through"?: Record<string, unknown> | null;
695
+ };
696
+ type ProgressionStateResponse = {
697
+ "completion_count": number;
698
+ "current_value": number;
699
+ "is_completed": boolean;
700
+ "progression_definition_id": string;
701
+ };
702
+ type PurchaseCatalogResponse = {
703
+ "config_version": number;
704
+ "items": CatalogItem[];
705
+ "recipes": CatalogRecipe[];
706
+ };
707
+ type PurchasePrice = {
708
+ "platform_currency_id": string;
709
+ "price": number;
710
+ };
711
+ type PutSettingRequest = {
712
+ "value": Base64String;
713
+ };
714
+ type RecipeAvailabilityResponse = {
715
+ "can_execute": boolean;
716
+ "cooldown_expires_at"?: string | null;
717
+ "reasons": UnavailabilityReason[];
718
+ "recipe_id": string;
719
+ "uses_remaining"?: number | null;
720
+ };
721
+ type RecipeExecuteRequest = {
722
+ "catalog_id": SlugOrId;
723
+ "channel"?: null | GameChannel;
724
+ "game_id": string;
725
+ "nonce"?: string | null;
726
+ "recipe_id": SlugOrId;
727
+ };
728
+ type RecipeExecuteResponse = {
729
+ "auto_claimed_rewards": InventoryChange[];
730
+ "consumed": InventoryChange[];
731
+ "etag"?: string | null;
732
+ "granted": InventoryChange[];
733
+ "loot_results"?: LootRollResultResponse[] | null;
734
+ "order_id": string;
735
+ "status": OrderStatus;
736
+ };
737
+ type RecipeUsageListResponse = {
738
+ "usages": RecipeUsageResponse[];
739
+ };
740
+ type RecipeUsageResponse = {
741
+ "cooldown_expires_at"?: string | null;
742
+ "is_on_cooldown": boolean;
743
+ "last_used_at"?: string | null;
744
+ "recipe_id": string;
745
+ "use_count": number;
746
+ };
747
+ type RoomArgType = "string" | "int" | "float" | "bool";
748
+ type RoomArgsResponse = {
749
+ "room_args": Record<string, unknown>;
750
+ "room_args_template": RoomArgsTemplate;
751
+ };
752
+ type RoomArgsTemplate = {
753
+ "name": string;
754
+ } & {
755
+ "allowed"?: Record<string, unknown>[] | null;
756
+ "default"?: Record<string, unknown> | null;
757
+ "description"?: string | null;
758
+ "fixed"?: Record<string, unknown> | null;
759
+ "list"?: boolean;
760
+ "max"?: number | null;
761
+ "max_items"?: number | null;
762
+ "max_length"?: number | null;
763
+ "min"?: number | null;
764
+ "min_items"?: number | null;
765
+ "mutable"?: boolean | null;
766
+ "required"?: boolean;
767
+ "type": RoomArgType;
768
+ }[];
769
+ type SaveDataResponse = {
770
+ "created_at": number;
771
+ "download_url"?: string | null;
772
+ "entity_id": string;
773
+ "entity_type": string;
774
+ "etag": string;
775
+ "key": string;
776
+ "metadata"?: unknown;
777
+ "size_bytes": number;
778
+ "updated_at": number;
779
+ };
780
+ type SaveFinalizeRequest = {
781
+ "session_id": string;
782
+ };
783
+ type SaveUploadUrlRequest = {
784
+ "content_type"?: string;
785
+ "metadata"?: unknown;
786
+ "size_bytes": number;
787
+ };
788
+ type SaveUploadUrlResponse = {
789
+ "expires_at": number;
790
+ "session_id": string;
791
+ "upload_headers": Record<string, unknown>;
792
+ "upload_url": string;
793
+ };
794
+ type SettingResponse = {
795
+ "etag": string;
796
+ "key": string;
797
+ "updated_at": number;
798
+ "value": Base64String;
799
+ };
800
+ type SettingsListResponse = {
801
+ "settings": SettingResponse[];
802
+ };
803
+ type SimulateOrderRequest = {
804
+ "inventory": SuppliedInventory;
805
+ "order": CreateOrderRequest;
806
+ "overrides"?: SimulationOverrides;
807
+ "seed"?: string | null;
808
+ "simulated_at"?: string | null;
809
+ };
810
+ type SimulateOrderResponse = {
811
+ "auto_claimed_rewards": InventoryChange[];
812
+ "changes": InventoryChange[];
813
+ "fidelity": FidelityReport;
814
+ "generation_details"?: unknown;
815
+ "outcome": SimulationOutcome;
816
+ "resulting_etag": string;
817
+ "resulting_inventory": InventoryResponse;
818
+ "seed": string;
819
+ "simulation_id": string;
820
+ };
821
+ type SimulationFailure = {
822
+ "code": string;
823
+ "message": string;
824
+ "operation_index"?: number | null;
825
+ };
826
+ type SimulationOutcome = {
827
+ "failure"?: null | SimulationFailure;
828
+ "status": OrderStatus;
829
+ };
830
+ type SimulationOverrides = {
831
+ "currencies"?: CurrencyResetOverride[];
832
+ "progressions"?: ProgressionStateOverride[];
833
+ };
834
+ type SlugOrId = string;
835
+ type SuppliedBucketRow = {
836
+ "balance": number;
837
+ "bucket": string;
838
+ };
839
+ type SuppliedCurrencies = {
840
+ "data"?: SuppliedCurrencyRow[];
841
+ "has_more"?: boolean;
842
+ "next_cursor"?: string | null;
843
+ };
844
+ type SuppliedCurrencyRow = {
845
+ "buckets"?: SuppliedBucketRow[] | null;
846
+ "currency_id": string;
847
+ "total": number;
848
+ };
849
+ type SuppliedInventory = {
850
+ "currencies"?: SuppliedCurrencies;
851
+ "entity_id"?: string | null;
852
+ "etag"?: string;
853
+ "items"?: SuppliedItems;
854
+ "progressions"?: SuppliedProgressions;
855
+ "scope"?: null | SuppliedScope;
856
+ };
857
+ type SuppliedItemRow = {
858
+ "acquired_at"?: number | null;
859
+ "custom_data"?: unknown;
860
+ "instance_id": string;
861
+ "item_definition_id": string;
862
+ "properties"?: unknown;
863
+ "quantity": number;
864
+ };
865
+ type SuppliedItems = {
866
+ "data"?: SuppliedItemRow[];
867
+ "has_more"?: boolean;
868
+ "next_cursor"?: string | null;
869
+ };
870
+ type SuppliedProgressionRow = {
871
+ "completion_count": number;
872
+ "current_value": number;
873
+ "is_completed": boolean;
874
+ "progression_definition_id": string;
875
+ };
876
+ type SuppliedProgressions = {
877
+ "data"?: SuppliedProgressionRow[];
878
+ "has_more"?: boolean;
879
+ "next_cursor"?: string | null;
880
+ };
881
+ type SuppliedScope = {
882
+ "type": "platform";
883
+ } | {
884
+ "channel"?: null | GameChannel;
885
+ "game_id": string;
886
+ "type": "game";
887
+ };
888
+ type TransferCurrencyRequest = {
889
+ "amount": number;
890
+ "currency_id": string;
891
+ };
892
+ type TransferItemRequest = {
893
+ "instance_id"?: string | null;
894
+ "item_definition_id": string;
895
+ "quantity": number;
896
+ };
897
+ type TransferResponse = {
898
+ "created_at": string;
899
+ "currencies": unknown;
900
+ "expires_at": string;
901
+ "items": unknown;
902
+ "message"?: string | null;
903
+ "resolved_at"?: string | null;
904
+ "source_entity_id": string;
905
+ "source_entity_type": string;
906
+ "status": string;
907
+ "target_entity_id": string;
908
+ "target_entity_type": string;
909
+ "transfer_id": string;
910
+ };
911
+ type UnavailabilityReason = {
912
+ "type": "not_found";
913
+ } | {
914
+ "type": "inactive";
915
+ } | {
916
+ "type": "not_client_executable";
917
+ } | {
918
+ "available_from": string;
919
+ "type": "not_yet_available";
920
+ } | {
921
+ "expired_at": string;
922
+ "type": "expired";
923
+ } | {
924
+ "event_id": string;
925
+ "type": "event_not_active";
926
+ } | {
927
+ "expires_at": string;
928
+ "type": "on_cooldown";
929
+ } | {
930
+ "max_uses": number;
931
+ "type": "max_uses_reached";
932
+ } | {
933
+ "prerequisite_type": string;
934
+ "reference_id": string;
935
+ "type": "prerequisite_not_met";
936
+ } | {
937
+ "available": number;
938
+ "currency_id": string;
939
+ "required": number;
940
+ "type": "insufficient_currency";
941
+ } | {
942
+ "available": number;
943
+ "item_definition_id": string;
944
+ "required": number;
945
+ "type": "insufficient_items";
946
+ };
947
+ type UpdateGameRoomRequest = {
948
+ "is_public"?: boolean | null;
949
+ "max_players"?: number | null;
950
+ "name"?: string | null;
951
+ "room_args"?: Record<string, unknown> | null;
952
+ "settings"?: unknown;
953
+ };
954
+ type UpdateRoomArgsRequest = {
955
+ "room_args": Record<string, unknown>;
956
+ };
957
+ type WindowPreviewResponse = {
958
+ "ends_at": string;
959
+ "starts_at": string;
960
+ };
961
+ declare function acceptTransfer(api: GameApi, transfer_id: string, options?: {
962
+ signal?: AbortSignal;
963
+ }): Promise<TransferResponse>;
964
+ declare function addEntityProgression(api: GameApi, entity_type: string, entity_id: string, progression_definition_id: SlugOrId, body: ProgressionAddRequest, options?: {
965
+ signal?: AbortSignal;
966
+ }): Promise<OrderResponse>;
967
+ declare function adminAction(api: GameApi, session_id: string, body: AdminActionRequest, options?: {
968
+ signal?: AbortSignal;
969
+ }): Promise<void>;
970
+ declare function cancelInventoryTransfer(api: GameApi, transfer_id: string, options?: {
971
+ signal?: AbortSignal;
972
+ }): Promise<TransferResponse>;
973
+ declare function claimEntityProgressionRewards(api: GameApi, entity_type: string, entity_id: string, progression_definition_id: SlugOrId, body: ProgressionClaimRequest, options?: {
974
+ signal?: AbortSignal;
975
+ }): Promise<OrderResponse>;
976
+ declare function closeGameRoom(api: GameApi, game_room_id: string, options?: {
977
+ signal?: AbortSignal;
978
+ }): Promise<void>;
979
+ declare function createEntityBatchOrder(api: GameApi, entity_type: string, entity_id: string, body: BatchOrderRequest, options?: {
980
+ ifMatch?: string;
981
+ signal?: AbortSignal;
982
+ }): Promise<BatchOrderResponse>;
983
+ declare function createEntityOrder(api: GameApi, entity_type: string, entity_id: string, body: CreateOrderRequest, options?: {
984
+ ifMatch?: string;
985
+ signal?: AbortSignal;
986
+ }): Promise<OrderResponse>;
987
+ declare function createSession(api: GameApi, body: CreateSessionRequest, options?: {
988
+ signal?: AbortSignal;
989
+ }): Promise<void>;
990
+ declare function deleteEntityGameSetting(api: GameApi, entity_type: string, entity_id: string, key: string, options?: {
991
+ signal?: AbortSignal;
992
+ }): Promise<void>;
993
+ declare function deleteEntitySave(api: GameApi, entity_type: string, entity_id: string, key: string, options?: {
994
+ signal?: AbortSignal;
995
+ }): Promise<void>;
996
+ declare function deleteSession(api: GameApi, session_id: string, options?: {
997
+ signal?: AbortSignal;
998
+ }): Promise<void>;
999
+ declare function executeEntityRecipe(api: GameApi, entity_type: string, entity_id: string, body: RecipeExecuteRequest, options?: {
1000
+ ifMatch?: string;
1001
+ signal?: AbortSignal;
1002
+ }): Promise<RecipeExecuteResponse>;
1003
+ declare function finalizeSaveUpload(api: GameApi, entity_type: string, entity_id: string, key: string, body: SaveFinalizeRequest, options?: {
1004
+ signal?: AbortSignal;
1005
+ }): Promise<SaveDataResponse>;
1006
+ declare function getDropRates(api: GameApi, loot_table_id: SlugOrId, options?: {
1007
+ signal?: AbortSignal;
1008
+ }): Promise<DropRatesResponse>;
1009
+ declare function getEntityCurrency(api: GameApi, entity_type: string, entity_id: string, currency_id: SlugOrId, options?: {
1010
+ signal?: AbortSignal;
1011
+ }): Promise<CurrencyBalanceResponse>;
1012
+ declare function getEntityGameSetting(api: GameApi, entity_type: string, entity_id: string, key: string, options?: {
1013
+ ifNoneMatch?: string;
1014
+ signal?: AbortSignal;
1015
+ }): Promise<VersionedResponse<SettingResponse>>;
1016
+ declare function getEntityInventory(api: GameApi, entity_type: string, entity_id: string, options?: {
1017
+ "include_buckets"?: boolean;
1018
+ "currency_limit"?: number;
1019
+ "currency_cursor"?: string;
1020
+ "item_limit"?: number;
1021
+ "item_cursor"?: string;
1022
+ "progression_limit"?: number;
1023
+ "progression_cursor"?: string;
1024
+ signal?: AbortSignal;
1025
+ }): Promise<InventoryResponse>;
1026
+ declare function getEntityInventoryItem(api: GameApi, entity_type: string, entity_id: string, item_definition_id: SlugOrId, options?: {
1027
+ signal?: AbortSignal;
1028
+ }): Promise<ItemInstanceResponse[]>;
1029
+ declare function getEntityLeaderboard(api: GameApi, leaderboard_type: string, entity_type: string, entity_id: string, options?: {
1030
+ "bucket_1"?: string;
1031
+ "bucket_2"?: string;
1032
+ "limit"?: number;
1033
+ signal?: AbortSignal;
1034
+ }): Promise<EntityLeaderboardResponse>;
1035
+ declare function getEntityOrder(api: GameApi, entity_type: string, entity_id: string, order_id: string, options?: {
1036
+ signal?: AbortSignal;
1037
+ }): Promise<OrderRecordResponse>;
1038
+ declare function getEntityProgression(api: GameApi, entity_type: string, entity_id: string, progression_definition_id: SlugOrId, options?: {
1039
+ signal?: AbortSignal;
1040
+ }): Promise<ProgressionStateResponse>;
1041
+ declare function getEntityRecipeAvailability(api: GameApi, entity_type: string, entity_id: string, catalog_id: SlugOrId, recipe_id: SlugOrId, options?: {
1042
+ signal?: AbortSignal;
1043
+ }): Promise<RecipeAvailabilityResponse>;
1044
+ declare function getEntityRecipeUsage(api: GameApi, entity_type: string, entity_id: string, options?: {
1045
+ "limit"?: number;
1046
+ signal?: AbortSignal;
1047
+ }): Promise<RecipeUsageListResponse>;
1048
+ declare function getEntitySave(api: GameApi, entity_type: string, entity_id: string, key: string, options?: {
1049
+ ifNoneMatch?: string;
1050
+ signal?: AbortSignal;
1051
+ }): Promise<VersionedResponse<SaveDataResponse>>;
1052
+ declare function getEvent(api: GameApi, event_id: string, options?: {
1053
+ signal?: AbortSignal;
1054
+ }): Promise<EventDefinitionResponse>;
1055
+ declare function getGameRoomV2(api: GameApi, game_room_id: string, options?: {
1056
+ ifNoneMatch?: string;
1057
+ signal?: AbortSignal;
1058
+ }): Promise<VersionedResponse<GameRoomResponseV2>>;
1059
+ declare function getLeaderboard(api: GameApi, leaderboard_type: string, options?: {
1060
+ "bucket_1"?: string;
1061
+ "bucket_2"?: string;
1062
+ signal?: AbortSignal;
1063
+ }): Promise<LeaderboardResponse>;
1064
+ declare function getPurchaseCatalog(api: GameApi, options?: {
1065
+ "config_version"?: number;
1066
+ signal?: AbortSignal;
1067
+ }): Promise<PurchaseCatalogResponse>;
1068
+ declare function getResolvedTemplate(api: GameApi, template_id: string, options?: {
1069
+ signal?: AbortSignal;
1070
+ }): Promise<GameRoomTemplateResponse>;
1071
+ declare function getRoomArgs(api: GameApi, game_room_id: string, options?: {
1072
+ signal?: AbortSignal;
1073
+ }): Promise<RoomArgsResponse>;
1074
+ declare function getTransferDetails(api: GameApi, transfer_id: string, options?: {
1075
+ signal?: AbortSignal;
1076
+ }): Promise<TransferResponse>;
1077
+ declare function initiateInventoryTransfer(api: GameApi, body: InitiateTransferRequest, options?: {
1078
+ signal?: AbortSignal;
1079
+ }): Promise<TransferResponse>;
1080
+ declare function kickPlayer(api: GameApi, game_room_id: string, player_id: string, options?: {
1081
+ signal?: AbortSignal;
1082
+ }): Promise<void>;
1083
+ declare function listEntityGameSettings(api: GameApi, entity_type: string, entity_id: string, options?: {
1084
+ signal?: AbortSignal;
1085
+ }): Promise<SettingsListResponse>;
1086
+ declare function listEntityOrders(api: GameApi, entity_type: string, entity_id: string, options?: {
1087
+ "limit"?: number;
1088
+ "cursor"?: string;
1089
+ signal?: AbortSignal;
1090
+ }): Promise<OrderListResponse>;
1091
+ declare function listEntityProgressions(api: GameApi, entity_type: string, entity_id: string, options?: {
1092
+ signal?: AbortSignal;
1093
+ }): Promise<ProgressionStateResponse[]>;
1094
+ declare function listEntitySaves(api: GameApi, entity_type: string, entity_id: string, options?: {
1095
+ "limit"?: number;
1096
+ "cursor"?: string;
1097
+ signal?: AbortSignal;
1098
+ }): Promise<PaginatedResponseSaveDataResponse>;
1099
+ declare function listEvents(api: GameApi, options?: {
1100
+ "include_inactive"?: boolean;
1101
+ "limit"?: number;
1102
+ "offset"?: number;
1103
+ signal?: AbortSignal;
1104
+ }): Promise<EventListResponse>;
1105
+ declare function listGameRooms(api: GameApi, options?: {
1106
+ "status"?: string | null;
1107
+ "game_channel"?: string | null;
1108
+ "game_room_type"?: string | null;
1109
+ "template_id"?: string | null;
1110
+ "template_slug"?: string | null;
1111
+ "limit"?: number | null;
1112
+ "cursor"?: string | null;
1113
+ signal?: AbortSignal;
1114
+ }): Promise<GameRoomsListResponse>;
1115
+ declare function listResolvedTemplates(api: GameApi, options?: {
1116
+ signal?: AbortSignal;
1117
+ }): Promise<GameRoomTemplateListResponse>;
1118
+ declare function listTransfers(api: GameApi, options: {
1119
+ "entity_type": string;
1120
+ "entity_id": string;
1121
+ "direction"?: string;
1122
+ "status"?: string;
1123
+ "cursor"?: string;
1124
+ "limit"?: number;
1125
+ signal?: AbortSignal;
1126
+ }): Promise<ListTransfersResponse>;
1127
+ declare function matchEnd(api: GameApi, match_id: string, options?: {
1128
+ signal?: AbortSignal;
1129
+ }): Promise<void>;
1130
+ declare function putEntityGameSetting(api: GameApi, entity_type: string, entity_id: string, key: string, body: PutSettingRequest, options?: {
1131
+ ifMatch?: string;
1132
+ signal?: AbortSignal;
1133
+ }): Promise<SettingResponse>;
1134
+ declare function putRoomArgs(api: GameApi, game_room_id: string, body: UpdateRoomArgsRequest, options?: {
1135
+ signal?: AbortSignal;
1136
+ }): Promise<RoomArgsResponse>;
1137
+ declare function rejectTransfer(api: GameApi, transfer_id: string, options?: {
1138
+ signal?: AbortSignal;
1139
+ }): Promise<TransferResponse>;
1140
+ declare function requestSaveUploadUrl(api: GameApi, entity_type: string, entity_id: string, key: string, body: SaveUploadUrlRequest, options?: {
1141
+ signal?: AbortSignal;
1142
+ }): Promise<SaveUploadUrlResponse>;
1143
+ declare function resetEntityProgression(api: GameApi, entity_type: string, entity_id: string, progression_definition_id: SlugOrId, body: ProgressionResetRequest, options?: {
1144
+ signal?: AbortSignal;
1145
+ }): Promise<OrderResponse>;
1146
+ declare function simulateEntityOrder(api: GameApi, entity_type: string, entity_id: string, body: SimulateOrderRequest, options?: {
1147
+ signal?: AbortSignal;
1148
+ }): Promise<SimulateOrderResponse>;
1149
+ declare function transferHostV2(api: GameApi, game_room_id: string, player_id: string, options?: {
1150
+ signal?: AbortSignal;
1151
+ }): Promise<GameRoomResponseV2>;
1152
+ declare function updateGameRoomV2(api: GameApi, game_room_id: string, body: UpdateGameRoomRequest, options?: {
1153
+ ifMatch?: string;
1154
+ signal?: AbortSignal;
1155
+ }): Promise<GameRoomResponseV2>;
1156
+ type generated_ActiveWindowResponse = ActiveWindowResponse;
1157
+ type generated_AdminActionRequest = AdminActionRequest;
1158
+ type generated_BatchOrderItem = BatchOrderItem;
1159
+ type generated_BatchOrderItemResult = BatchOrderItemResult;
1160
+ type generated_BatchOrderRequest = BatchOrderRequest;
1161
+ type generated_BatchOrderResponse = BatchOrderResponse;
1162
+ type generated_BucketBalanceResponse = BucketBalanceResponse;
1163
+ type generated_CatalogItem = CatalogItem;
1164
+ type generated_CatalogRecipe = CatalogRecipe;
1165
+ type generated_ClientPlatform = ClientPlatform;
1166
+ type generated_CreateOrderRequest = CreateOrderRequest;
1167
+ type generated_CreateSessionRequest = CreateSessionRequest;
1168
+ type generated_CurrencyBalanceResponse = CurrencyBalanceResponse;
1169
+ type generated_CurrencyResetOverride = CurrencyResetOverride;
1170
+ type generated_DropRateEntry = DropRateEntry;
1171
+ type generated_DropRatesResponse = DropRatesResponse;
1172
+ type generated_EntityLeaderboardEntryResponse = EntityLeaderboardEntryResponse;
1173
+ type generated_EntityLeaderboardResponse = EntityLeaderboardResponse;
1174
+ type generated_EntityType = EntityType;
1175
+ type generated_ErrorDetail = ErrorDetail;
1176
+ type generated_ErrorResponse = ErrorResponse;
1177
+ type generated_EventDefinitionResponse = EventDefinitionResponse;
1178
+ type generated_EventListResponse = EventListResponse;
1179
+ type generated_EventStatusInfo = EventStatusInfo;
1180
+ type generated_FidelityReport = FidelityReport;
1181
+ type generated_GameApi = GameApi;
1182
+ type generated_GameChannel = GameChannel;
1183
+ type generated_GameRoomMemberResponseV2 = GameRoomMemberResponseV2;
1184
+ type generated_GameRoomResponseV2 = GameRoomResponseV2;
1185
+ type generated_GameRoomSummaryResponse = GameRoomSummaryResponse;
1186
+ type generated_GameRoomTemplateListResponse = GameRoomTemplateListResponse;
1187
+ type generated_GameRoomTemplateResponse = GameRoomTemplateResponse;
1188
+ type generated_GameRoomsListResponse = GameRoomsListResponse;
1189
+ type generated_InitiateTransferRequest = InitiateTransferRequest;
1190
+ type generated_InventoryChange = InventoryChange;
1191
+ type generated_InventoryResponse = InventoryResponse;
1192
+ type generated_InventoryScopeResponse = InventoryScopeResponse;
1193
+ type generated_ItemInstanceResponse = ItemInstanceResponse;
1194
+ type generated_LeaderboardEntryResponse = LeaderboardEntryResponse;
1195
+ type generated_LeaderboardResponse = LeaderboardResponse;
1196
+ type generated_ListTransfersResponse = ListTransfersResponse;
1197
+ type generated_LootRollResultResponse = LootRollResultResponse;
1198
+ type generated_MatchType = MatchType;
1199
+ type generated_OperationRequest = OperationRequest;
1200
+ type generated_OrderListResponse = OrderListResponse;
1201
+ type generated_OrderRecordResponse = OrderRecordResponse;
1202
+ type generated_OrderResponse = OrderResponse;
1203
+ type generated_OrderSource = OrderSource;
1204
+ type generated_OrderStatus = OrderStatus;
1205
+ type generated_OverflowBehavior = OverflowBehavior;
1206
+ type generated_PaginatedCollectionCurrencyBalanceResponse = PaginatedCollectionCurrencyBalanceResponse;
1207
+ type generated_PaginatedCollectionItemInstanceResponse = PaginatedCollectionItemInstanceResponse;
1208
+ type generated_PaginatedCollectionProgressionStateResponse = PaginatedCollectionProgressionStateResponse;
1209
+ type generated_PaginatedResponseSaveDataResponse = PaginatedResponseSaveDataResponse;
1210
+ type generated_PlatformGrantClamp = PlatformGrantClamp;
1211
+ type generated_PlatformGrantOutcome = PlatformGrantOutcome;
1212
+ type generated_ProgressionAddRequest = ProgressionAddRequest;
1213
+ type generated_ProgressionClaimRequest = ProgressionClaimRequest;
1214
+ type generated_ProgressionResetRequest = ProgressionResetRequest;
1215
+ type generated_ProgressionStateOverride = ProgressionStateOverride;
1216
+ type generated_ProgressionStateResponse = ProgressionStateResponse;
1217
+ type generated_PurchaseCatalogResponse = PurchaseCatalogResponse;
1218
+ type generated_PurchasePrice = PurchasePrice;
1219
+ type generated_PutSettingRequest = PutSettingRequest;
1220
+ type generated_RecipeAvailabilityResponse = RecipeAvailabilityResponse;
1221
+ type generated_RecipeExecuteRequest = RecipeExecuteRequest;
1222
+ type generated_RecipeExecuteResponse = RecipeExecuteResponse;
1223
+ type generated_RecipeUsageListResponse = RecipeUsageListResponse;
1224
+ type generated_RecipeUsageResponse = RecipeUsageResponse;
1225
+ type generated_RoomArgType = RoomArgType;
1226
+ type generated_RoomArgsResponse = RoomArgsResponse;
1227
+ type generated_RoomArgsTemplate = RoomArgsTemplate;
1228
+ type generated_SaveDataResponse = SaveDataResponse;
1229
+ type generated_SaveFinalizeRequest = SaveFinalizeRequest;
1230
+ type generated_SaveUploadUrlRequest = SaveUploadUrlRequest;
1231
+ type generated_SaveUploadUrlResponse = SaveUploadUrlResponse;
1232
+ type generated_SettingResponse = SettingResponse;
1233
+ type generated_SettingsListResponse = SettingsListResponse;
1234
+ type generated_SimulateOrderRequest = SimulateOrderRequest;
1235
+ type generated_SimulateOrderResponse = SimulateOrderResponse;
1236
+ type generated_SimulationFailure = SimulationFailure;
1237
+ type generated_SimulationOutcome = SimulationOutcome;
1238
+ type generated_SimulationOverrides = SimulationOverrides;
1239
+ type generated_SlugOrId = SlugOrId;
1240
+ type generated_SuppliedBucketRow = SuppliedBucketRow;
1241
+ type generated_SuppliedCurrencies = SuppliedCurrencies;
1242
+ type generated_SuppliedCurrencyRow = SuppliedCurrencyRow;
1243
+ type generated_SuppliedInventory = SuppliedInventory;
1244
+ type generated_SuppliedItemRow = SuppliedItemRow;
1245
+ type generated_SuppliedItems = SuppliedItems;
1246
+ type generated_SuppliedProgressionRow = SuppliedProgressionRow;
1247
+ type generated_SuppliedProgressions = SuppliedProgressions;
1248
+ type generated_SuppliedScope = SuppliedScope;
1249
+ type generated_TransferCurrencyRequest = TransferCurrencyRequest;
1250
+ type generated_TransferItemRequest = TransferItemRequest;
1251
+ type generated_TransferResponse = TransferResponse;
1252
+ type generated_UnavailabilityReason = UnavailabilityReason;
1253
+ type generated_UpdateGameRoomRequest = UpdateGameRoomRequest;
1254
+ type generated_UpdateRoomArgsRequest = UpdateRoomArgsRequest;
1255
+ type generated_WindowPreviewResponse = WindowPreviewResponse;
1256
+ declare const generated_acceptTransfer: typeof acceptTransfer;
1257
+ declare const generated_addEntityProgression: typeof addEntityProgression;
1258
+ declare const generated_adminAction: typeof adminAction;
1259
+ declare const generated_cancelInventoryTransfer: typeof cancelInventoryTransfer;
1260
+ declare const generated_claimEntityProgressionRewards: typeof claimEntityProgressionRewards;
1261
+ declare const generated_closeGameRoom: typeof closeGameRoom;
1262
+ declare const generated_createEntityBatchOrder: typeof createEntityBatchOrder;
1263
+ declare const generated_createEntityOrder: typeof createEntityOrder;
1264
+ declare const generated_createSession: typeof createSession;
1265
+ declare const generated_deleteEntityGameSetting: typeof deleteEntityGameSetting;
1266
+ declare const generated_deleteEntitySave: typeof deleteEntitySave;
1267
+ declare const generated_deleteSession: typeof deleteSession;
1268
+ declare const generated_executeEntityRecipe: typeof executeEntityRecipe;
1269
+ declare const generated_finalizeSaveUpload: typeof finalizeSaveUpload;
1270
+ declare const generated_getDropRates: typeof getDropRates;
1271
+ declare const generated_getEntityCurrency: typeof getEntityCurrency;
1272
+ declare const generated_getEntityGameSetting: typeof getEntityGameSetting;
1273
+ declare const generated_getEntityInventory: typeof getEntityInventory;
1274
+ declare const generated_getEntityInventoryItem: typeof getEntityInventoryItem;
1275
+ declare const generated_getEntityLeaderboard: typeof getEntityLeaderboard;
1276
+ declare const generated_getEntityOrder: typeof getEntityOrder;
1277
+ declare const generated_getEntityProgression: typeof getEntityProgression;
1278
+ declare const generated_getEntityRecipeAvailability: typeof getEntityRecipeAvailability;
1279
+ declare const generated_getEntityRecipeUsage: typeof getEntityRecipeUsage;
1280
+ declare const generated_getEntitySave: typeof getEntitySave;
1281
+ declare const generated_getEvent: typeof getEvent;
1282
+ declare const generated_getGameRoomV2: typeof getGameRoomV2;
1283
+ declare const generated_getLeaderboard: typeof getLeaderboard;
1284
+ declare const generated_getPurchaseCatalog: typeof getPurchaseCatalog;
1285
+ declare const generated_getResolvedTemplate: typeof getResolvedTemplate;
1286
+ declare const generated_getRoomArgs: typeof getRoomArgs;
1287
+ declare const generated_getTransferDetails: typeof getTransferDetails;
1288
+ declare const generated_initiateInventoryTransfer: typeof initiateInventoryTransfer;
1289
+ declare const generated_kickPlayer: typeof kickPlayer;
1290
+ declare const generated_listEntityGameSettings: typeof listEntityGameSettings;
1291
+ declare const generated_listEntityOrders: typeof listEntityOrders;
1292
+ declare const generated_listEntityProgressions: typeof listEntityProgressions;
1293
+ declare const generated_listEntitySaves: typeof listEntitySaves;
1294
+ declare const generated_listEvents: typeof listEvents;
1295
+ declare const generated_listGameRooms: typeof listGameRooms;
1296
+ declare const generated_listResolvedTemplates: typeof listResolvedTemplates;
1297
+ declare const generated_listTransfers: typeof listTransfers;
1298
+ declare const generated_matchEnd: typeof matchEnd;
1299
+ declare const generated_putEntityGameSetting: typeof putEntityGameSetting;
1300
+ declare const generated_putRoomArgs: typeof putRoomArgs;
1301
+ declare const generated_rejectTransfer: typeof rejectTransfer;
1302
+ declare const generated_requestSaveUploadUrl: typeof requestSaveUploadUrl;
1303
+ declare const generated_resetEntityProgression: typeof resetEntityProgression;
1304
+ declare const generated_simulateEntityOrder: typeof simulateEntityOrder;
1305
+ declare const generated_transferHostV2: typeof transferHostV2;
1306
+ declare const generated_updateGameRoomV2: typeof updateGameRoomV2;
1307
+ declare namespace generated {
1308
+ export { type generated_ActiveWindowResponse as ActiveWindowResponse, type generated_AdminActionRequest as AdminActionRequest, type generated_BatchOrderItem as BatchOrderItem, type generated_BatchOrderItemResult as BatchOrderItemResult, type generated_BatchOrderRequest as BatchOrderRequest, type generated_BatchOrderResponse as BatchOrderResponse, type generated_BucketBalanceResponse as BucketBalanceResponse, type generated_CatalogItem as CatalogItem, type generated_CatalogRecipe as CatalogRecipe, type generated_ClientPlatform as ClientPlatform, type generated_CreateOrderRequest as CreateOrderRequest, type generated_CreateSessionRequest as CreateSessionRequest, type generated_CurrencyBalanceResponse as CurrencyBalanceResponse, type generated_CurrencyResetOverride as CurrencyResetOverride, type generated_DropRateEntry as DropRateEntry, type generated_DropRatesResponse as DropRatesResponse, type generated_EntityLeaderboardEntryResponse as EntityLeaderboardEntryResponse, type generated_EntityLeaderboardResponse as EntityLeaderboardResponse, type generated_EntityType as EntityType, type generated_ErrorDetail as ErrorDetail, type generated_ErrorResponse as ErrorResponse, type generated_EventDefinitionResponse as EventDefinitionResponse, type generated_EventListResponse as EventListResponse, type generated_EventStatusInfo as EventStatusInfo, type generated_FidelityReport as FidelityReport, type generated_GameApi as GameApi, type generated_GameChannel as GameChannel, type generated_GameRoomMemberResponseV2 as GameRoomMemberResponseV2, type generated_GameRoomResponseV2 as GameRoomResponseV2, type generated_GameRoomSummaryResponse as GameRoomSummaryResponse, type generated_GameRoomTemplateListResponse as GameRoomTemplateListResponse, type generated_GameRoomTemplateResponse as GameRoomTemplateResponse, type generated_GameRoomsListResponse as GameRoomsListResponse, type generated_InitiateTransferRequest as InitiateTransferRequest, type generated_InventoryChange as InventoryChange, type generated_InventoryResponse as InventoryResponse, type generated_InventoryScopeResponse as InventoryScopeResponse, type generated_ItemInstanceResponse as ItemInstanceResponse, type generated_LeaderboardEntryResponse as LeaderboardEntryResponse, type generated_LeaderboardResponse as LeaderboardResponse, type generated_ListTransfersResponse as ListTransfersResponse, type generated_LootRollResultResponse as LootRollResultResponse, type generated_MatchType as MatchType, type generated_OperationRequest as OperationRequest, type generated_OrderListResponse as OrderListResponse, type generated_OrderRecordResponse as OrderRecordResponse, type generated_OrderResponse as OrderResponse, type generated_OrderSource as OrderSource, type generated_OrderStatus as OrderStatus, type generated_OverflowBehavior as OverflowBehavior, type generated_PaginatedCollectionCurrencyBalanceResponse as PaginatedCollectionCurrencyBalanceResponse, type generated_PaginatedCollectionItemInstanceResponse as PaginatedCollectionItemInstanceResponse, type generated_PaginatedCollectionProgressionStateResponse as PaginatedCollectionProgressionStateResponse, type generated_PaginatedResponseSaveDataResponse as PaginatedResponseSaveDataResponse, type generated_PlatformGrantClamp as PlatformGrantClamp, type generated_PlatformGrantOutcome as PlatformGrantOutcome, type generated_ProgressionAddRequest as ProgressionAddRequest, type generated_ProgressionClaimRequest as ProgressionClaimRequest, type generated_ProgressionResetRequest as ProgressionResetRequest, type generated_ProgressionStateOverride as ProgressionStateOverride, type generated_ProgressionStateResponse as ProgressionStateResponse, type generated_PurchaseCatalogResponse as PurchaseCatalogResponse, type generated_PurchasePrice as PurchasePrice, type generated_PutSettingRequest as PutSettingRequest, type generated_RecipeAvailabilityResponse as RecipeAvailabilityResponse, type generated_RecipeExecuteRequest as RecipeExecuteRequest, type generated_RecipeExecuteResponse as RecipeExecuteResponse, type generated_RecipeUsageListResponse as RecipeUsageListResponse, type generated_RecipeUsageResponse as RecipeUsageResponse, type generated_RoomArgType as RoomArgType, type generated_RoomArgsResponse as RoomArgsResponse, type generated_RoomArgsTemplate as RoomArgsTemplate, type generated_SaveDataResponse as SaveDataResponse, type generated_SaveFinalizeRequest as SaveFinalizeRequest, type generated_SaveUploadUrlRequest as SaveUploadUrlRequest, type generated_SaveUploadUrlResponse as SaveUploadUrlResponse, type generated_SettingResponse as SettingResponse, type generated_SettingsListResponse as SettingsListResponse, type generated_SimulateOrderRequest as SimulateOrderRequest, type generated_SimulateOrderResponse as SimulateOrderResponse, type generated_SimulationFailure as SimulationFailure, type generated_SimulationOutcome as SimulationOutcome, type generated_SimulationOverrides as SimulationOverrides, type generated_SlugOrId as SlugOrId, type generated_SuppliedBucketRow as SuppliedBucketRow, type generated_SuppliedCurrencies as SuppliedCurrencies, type generated_SuppliedCurrencyRow as SuppliedCurrencyRow, type generated_SuppliedInventory as SuppliedInventory, type generated_SuppliedItemRow as SuppliedItemRow, type generated_SuppliedItems as SuppliedItems, type generated_SuppliedProgressionRow as SuppliedProgressionRow, type generated_SuppliedProgressions as SuppliedProgressions, type generated_SuppliedScope as SuppliedScope, type generated_TransferCurrencyRequest as TransferCurrencyRequest, type generated_TransferItemRequest as TransferItemRequest, type generated_TransferResponse as TransferResponse, type generated_UnavailabilityReason as UnavailabilityReason, type generated_UpdateGameRoomRequest as UpdateGameRoomRequest, type generated_UpdateRoomArgsRequest as UpdateRoomArgsRequest, type generated_WindowPreviewResponse as WindowPreviewResponse, generated_acceptTransfer as acceptTransfer, generated_addEntityProgression as addEntityProgression, generated_adminAction as adminAction, generated_cancelInventoryTransfer as cancelInventoryTransfer, generated_claimEntityProgressionRewards as claimEntityProgressionRewards, generated_closeGameRoom as closeGameRoom, generated_createEntityBatchOrder as createEntityBatchOrder, generated_createEntityOrder as createEntityOrder, generated_createSession as createSession, generated_deleteEntityGameSetting as deleteEntityGameSetting, generated_deleteEntitySave as deleteEntitySave, generated_deleteSession as deleteSession, generated_executeEntityRecipe as executeEntityRecipe, generated_finalizeSaveUpload as finalizeSaveUpload, generated_getDropRates as getDropRates, generated_getEntityCurrency as getEntityCurrency, generated_getEntityGameSetting as getEntityGameSetting, generated_getEntityInventory as getEntityInventory, generated_getEntityInventoryItem as getEntityInventoryItem, generated_getEntityLeaderboard as getEntityLeaderboard, generated_getEntityOrder as getEntityOrder, generated_getEntityProgression as getEntityProgression, generated_getEntityRecipeAvailability as getEntityRecipeAvailability, generated_getEntityRecipeUsage as getEntityRecipeUsage, generated_getEntitySave as getEntitySave, generated_getEvent as getEvent, generated_getGameRoomV2 as getGameRoomV2, generated_getLeaderboard as getLeaderboard, generated_getPurchaseCatalog as getPurchaseCatalog, generated_getResolvedTemplate as getResolvedTemplate, generated_getRoomArgs as getRoomArgs, generated_getTransferDetails as getTransferDetails, generated_initiateInventoryTransfer as initiateInventoryTransfer, generated_kickPlayer as kickPlayer, generated_listEntityGameSettings as listEntityGameSettings, generated_listEntityOrders as listEntityOrders, generated_listEntityProgressions as listEntityProgressions, generated_listEntitySaves as listEntitySaves, generated_listEvents as listEvents, generated_listGameRooms as listGameRooms, generated_listResolvedTemplates as listResolvedTemplates, generated_listTransfers as listTransfers, generated_matchEnd as matchEnd, generated_putEntityGameSetting as putEntityGameSetting, generated_putRoomArgs as putRoomArgs, generated_rejectTransfer as rejectTransfer, generated_requestSaveUploadUrl as requestSaveUploadUrl, generated_resetEntityProgression as resetEntityProgression, generated_simulateEntityOrder as simulateEntityOrder, generated_transferHostV2 as transferHostV2, generated_updateGameRoomV2 as updateGameRoomV2 };
1309
+ }
1310
+ type AnalyticsValue = string | number;
1311
+ interface AnalyticsRejection {
1312
+ readonly index: number;
1313
+ readonly code: string;
1314
+ }
1315
+ interface AnalyticsFlushResult {
1316
+ readonly accepted: number;
1317
+ readonly rejected: readonly AnalyticsRejection[];
1318
+ readonly dropped: number;
1319
+ readonly duplicate: boolean;
1320
+ }
1321
+ interface ServerAnalytics {
1322
+ track(playerId: string, name: string, props?: Readonly<Record<string, AnalyticsValue>>): void;
1323
+ flush(signal?: AbortSignal): Promise<AnalyticsFlushResult>;
1324
+ readonly pending: number;
1325
+ }
1326
+ interface GemServerOptions {
1327
+ readonly baseUrl?: string;
1328
+ readonly clock?: Clock;
1329
+ readonly fetch?: typeof globalThis.fetch;
1330
+ readonly onAuthStateChange?: (state: AuthState, reason?: AuthFailure) => void;
1331
+ }
1332
+ interface GemServerIdentity {
1333
+ readonly gameId: string;
1334
+ readonly channel: string;
1335
+ readonly matchId: string;
1336
+ readonly gameRoomId?: string;
1337
+ }
1338
+ type ServerApi = {
1339
+ [K in keyof typeof generated as (typeof generated)[K] extends (api: GameApi, ...rest: never[]) => unknown ? K : never]: (typeof generated)[K] extends (api: GameApi, ...rest: infer A) => infer R ? (...args: A) => R : never;
1340
+ };
1341
+ interface GemServer {
1342
+ readonly identity: GemServerIdentity;
1343
+ readonly client: GemClient;
1344
+ readonly api: ServerApi;
1345
+ readonly match: {
1346
+ end(signal?: AbortSignal): Promise<void>;
1347
+ };
1348
+ readonly analytics: ServerAnalytics;
1349
+ readonly room?: {
1350
+ get: (options?: Parameters<ServerApi["getGameRoomV2"]>[1]) => ReturnType<ServerApi["getGameRoomV2"]>;
1351
+ args: (options?: Parameters<ServerApi["getRoomArgs"]>[1]) => ReturnType<ServerApi["getRoomArgs"]>;
1352
+ };
1353
+ dispose(): void;
1354
+ }
1355
+ declare function createGemServer(host: ServerBundleHost, options?: GemServerOptions): GemServer;
1356
+ declare class PlayerText {
1357
+ #private;
1358
+ constructor(value: string);
1359
+ toString(): string;
1360
+ toJSON(): string;
1361
+ get [Symbol.toStringTag](): string;
1362
+ static unwrap(t: PlayerText): string;
1363
+ }
1364
+ declare function asPlayerText(value: string): PlayerText;
1365
+ declare const text: {
1366
+ toPlain(t: PlayerText): string;
1367
+ compare(a: PlayerText | string, b: PlayerText | string, locale?: string): number;
1368
+ equals(a: PlayerText | string, b: PlayerText | string): boolean;
1369
+ };
1370
+ interface GemServerProfile {
1371
+ readonly displayName: PlayerText;
1372
+ readonly displayTag: string;
1373
+ readonly discriminator?: string;
1374
+ }
1375
+ interface GemMatchServer extends GemServer {
1376
+ readonly sizeClass: string;
1377
+ readonly roomArgs: Readonly<Record<string, RoomArgValue>> | undefined;
1378
+ readonly roster: readonly string[];
1379
+ players(): string[];
1380
+ profile(playerId: string): GemServerProfile | null;
1381
+ playerNumber(playerId: string): number | undefined;
1382
+ send(playerId: string, data: string | Uint8Array, options?: SendOptions): void;
1383
+ broadcast(data: string | Uint8Array, options?: BroadcastOptions): void;
1384
+ kick(playerId: string, reason?: string): void;
1385
+ log(message: string): void;
1386
+ warn(message: string): void;
1387
+ }
1388
+ declare function createMatchServer(host: GemServerHost, options?: GemServerOptions): GemMatchServer;
1389
+ interface GemServerBundle {
1390
+ init?(): void | Promise<void>;
1391
+ join?(playerId: string, meta?: {
1392
+ playerNumber?: number;
1393
+ transport?: string;
1394
+ rejoin?: boolean;
1395
+ superseded?: boolean;
1396
+ }): void | Promise<void>;
1397
+ leave?(playerId: string, meta?: {
1398
+ cause?: string;
1399
+ }): void | Promise<void>;
1400
+ message?(playerId: string, data: string | Uint8Array, isText: boolean, meta?: {
1401
+ reliable?: boolean;
1402
+ ordered?: boolean;
1403
+ sessionId?: number;
1404
+ playerNumber?: number;
1405
+ }): void | Promise<void>;
1406
+ shutdown?(info?: ServerShutdownInfo): void | Promise<void>;
1407
+ }
1408
+ interface ServerShutdownInfo {
1409
+ readonly reason: "match_ended" | "idle_timeout" | "signal" | (string & {});
1410
+ readonly endedReason?: string;
1411
+ }
1412
+ interface GemServerLifecycle {
1413
+ init(host: GemServerHost): Promise<void>;
1414
+ join?(playerId: string, meta?: {
1415
+ playerNumber?: number;
1416
+ transport?: string;
1417
+ rejoin?: boolean;
1418
+ superseded?: boolean;
1419
+ }): void | Promise<void>;
1420
+ leave?(playerId: string, meta?: {
1421
+ cause?: string;
1422
+ }): void | Promise<void>;
1423
+ message?(playerId: string, data: string | Uint8Array, isText: boolean, meta?: {
1424
+ reliable?: boolean;
1425
+ ordered?: boolean;
1426
+ sessionId?: number;
1427
+ playerNumber?: number;
1428
+ }): void | Promise<void>;
1429
+ shutdown(info?: RuntimeShutdownPayload): Promise<void>;
1430
+ }
1431
+ interface RuntimeShutdownPayload {
1432
+ readonly reason?: string;
1433
+ readonly platform_reason?: string;
1434
+ readonly endedReason?: string;
1435
+ }
1436
+ type GemServerFactory = () => GemServerLifecycle;
1437
+ declare function defineServer(setup: (gem: GemMatchServer) => GemServerBundle, options?: GemServerOptions): GemServerFactory;
1438
+ export { type AnalyticsFlushResult, type AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BroadcastOptions, CONDITIONAL_HEADERS, type ClientOptions, type Clock, type ConditionalRequestHeaders, type GameApi, GemApiError, GemClient, type GemErrorReason, type GemMatchServer, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type HostTokenSource, type HostTokenSourceOptions, PlayerText, type RequestOptions, type RoomArgValue, type RuntimeShutdownPayload, type SendOptions, type ServerAnalytics, type ServerApi, type ServerBundleHost, type ServerShutdownInfo, type ServerTokenGrant, type TokenGrant, type Transport, TransportRefusal, type TransportRequest, type TransportResponse, type VersionedGetOptions, type VersionedResponse, asPlayerText, createGemServer, createHostTokenSource, createMatchServer, defineServer, systemClock, text, toBase64 };