@playcademy/sdk 0.0.5 → 0.0.7

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 (48) hide show
  1. package/dist/index.d.ts +4013 -7
  2. package/dist/index.js +1820 -1785
  3. package/dist/server.d.ts +53 -0
  4. package/dist/server.js +50 -0
  5. package/dist/types.d.ts +4243 -41
  6. package/dist/types.js +1 -748
  7. package/package.json +10 -3
  8. package/dist/core/auth/flows/popup.d.ts +0 -14
  9. package/dist/core/auth/flows/redirect.d.ts +0 -15
  10. package/dist/core/auth/flows/unified.d.ts +0 -11
  11. package/dist/core/auth/login.d.ts +0 -20
  12. package/dist/core/auth/oauth.d.ts +0 -115
  13. package/dist/core/auth/utils.d.ts +0 -23
  14. package/dist/core/cache/cooldown-cache.d.ts +0 -31
  15. package/dist/core/cache/index.d.ts +0 -14
  16. package/dist/core/cache/permanent-cache.d.ts +0 -39
  17. package/dist/core/cache/singleton-cache.d.ts +0 -29
  18. package/dist/core/cache/ttl-cache.d.ts +0 -54
  19. package/dist/core/cache/types.d.ts +0 -23
  20. package/dist/core/client.d.ts +0 -521
  21. package/dist/core/errors.d.ts +0 -11
  22. package/dist/core/namespaces/achievements.d.ts +0 -84
  23. package/dist/core/namespaces/admin.d.ts +0 -385
  24. package/dist/core/namespaces/auth.d.ts +0 -54
  25. package/dist/core/namespaces/character.d.ts +0 -205
  26. package/dist/core/namespaces/credits.d.ts +0 -51
  27. package/dist/core/namespaces/dev.d.ts +0 -323
  28. package/dist/core/namespaces/games.d.ts +0 -173
  29. package/dist/core/namespaces/identity.d.ts +0 -98
  30. package/dist/core/namespaces/index.d.ts +0 -19
  31. package/dist/core/namespaces/leaderboard.d.ts +0 -48
  32. package/dist/core/namespaces/levels.d.ts +0 -90
  33. package/dist/core/namespaces/maps.d.ts +0 -93
  34. package/dist/core/namespaces/realtime.client.d.ts +0 -129
  35. package/dist/core/namespaces/realtime.d.ts +0 -90
  36. package/dist/core/namespaces/runtime.d.ts +0 -222
  37. package/dist/core/namespaces/scores.d.ts +0 -55
  38. package/dist/core/namespaces/shop.d.ts +0 -25
  39. package/dist/core/namespaces/sprites.d.ts +0 -35
  40. package/dist/core/namespaces/telemetry.d.ts +0 -28
  41. package/dist/core/namespaces/timeback.d.ts +0 -111
  42. package/dist/core/namespaces/users.d.ts +0 -172
  43. package/dist/core/request.d.ts +0 -24
  44. package/dist/core/static/identity.d.ts +0 -37
  45. package/dist/core/static/index.d.ts +0 -3
  46. package/dist/core/static/init.d.ts +0 -21
  47. package/dist/core/static/login.d.ts +0 -34
  48. package/dist/messaging.d.ts +0 -544
package/dist/types.d.ts CHANGED
@@ -1,25 +1,4218 @@
1
- import type { AuthenticatedUser } from '@playcademy/data/types';
2
- export type * from '@playcademy/data/types';
3
- export { CURRENCIES, BADGES } from '@playcademy/data/constants';
4
- export type { AuthenticatedUser } from '@playcademy/data/types';
5
- export type { PlaycademyClient } from './core/client';
6
- export interface ClientConfig {
1
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
+ import * as drizzle_zod from 'drizzle-zod';
3
+ import { z } from 'zod';
4
+ import * as _playcademy_realtime_server_types from '@playcademy/realtime/server/types';
5
+
6
+ declare const userRoleEnum: drizzle_orm_pg_core.PgEnum<["admin", "player", "developer"]>;
7
+ declare const users: drizzle_orm_pg_core.PgTableWithColumns<{
8
+ name: "user";
9
+ schema: undefined;
10
+ columns: {
11
+ id: drizzle_orm_pg_core.PgColumn<{
12
+ name: "id";
13
+ tableName: "user";
14
+ dataType: "string";
15
+ columnType: "PgText";
16
+ data: string;
17
+ driverParam: string;
18
+ notNull: true;
19
+ hasDefault: true;
20
+ isPrimaryKey: true;
21
+ isAutoincrement: false;
22
+ hasRuntimeDefault: true;
23
+ enumValues: [string, ...string[]];
24
+ baseColumn: never;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }, {}, {}>;
28
+ name: drizzle_orm_pg_core.PgColumn<{
29
+ name: "name";
30
+ tableName: "user";
31
+ dataType: "string";
32
+ columnType: "PgText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {}>;
45
+ username: drizzle_orm_pg_core.PgColumn<{
46
+ name: "username";
47
+ tableName: "user";
48
+ dataType: "string";
49
+ columnType: "PgText";
50
+ data: string;
51
+ driverParam: string;
52
+ notNull: false;
53
+ hasDefault: false;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: false;
57
+ enumValues: [string, ...string[]];
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {}>;
62
+ email: drizzle_orm_pg_core.PgColumn<{
63
+ name: "email";
64
+ tableName: "user";
65
+ dataType: "string";
66
+ columnType: "PgText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {}>;
79
+ timebackId: drizzle_orm_pg_core.PgColumn<{
80
+ name: "timeback_id";
81
+ tableName: "user";
82
+ dataType: "string";
83
+ columnType: "PgText";
84
+ data: string;
85
+ driverParam: string;
86
+ notNull: false;
87
+ hasDefault: false;
88
+ isPrimaryKey: false;
89
+ isAutoincrement: false;
90
+ hasRuntimeDefault: false;
91
+ enumValues: [string, ...string[]];
92
+ baseColumn: never;
93
+ identity: undefined;
94
+ generated: undefined;
95
+ }, {}, {}>;
96
+ emailVerified: drizzle_orm_pg_core.PgColumn<{
97
+ name: "email_verified";
98
+ tableName: "user";
99
+ dataType: "boolean";
100
+ columnType: "PgBoolean";
101
+ data: boolean;
102
+ driverParam: boolean;
103
+ notNull: true;
104
+ hasDefault: true;
105
+ isPrimaryKey: false;
106
+ isAutoincrement: false;
107
+ hasRuntimeDefault: false;
108
+ enumValues: undefined;
109
+ baseColumn: never;
110
+ identity: undefined;
111
+ generated: undefined;
112
+ }, {}, {}>;
113
+ image: drizzle_orm_pg_core.PgColumn<{
114
+ name: "image";
115
+ tableName: "user";
116
+ dataType: "string";
117
+ columnType: "PgText";
118
+ data: string;
119
+ driverParam: string;
120
+ notNull: false;
121
+ hasDefault: false;
122
+ isPrimaryKey: false;
123
+ isAutoincrement: false;
124
+ hasRuntimeDefault: false;
125
+ enumValues: [string, ...string[]];
126
+ baseColumn: never;
127
+ identity: undefined;
128
+ generated: undefined;
129
+ }, {}, {}>;
130
+ role: drizzle_orm_pg_core.PgColumn<{
131
+ name: "role";
132
+ tableName: "user";
133
+ dataType: "string";
134
+ columnType: "PgEnumColumn";
135
+ data: "admin" | "player" | "developer";
136
+ driverParam: string;
137
+ notNull: true;
138
+ hasDefault: true;
139
+ isPrimaryKey: false;
140
+ isAutoincrement: false;
141
+ hasRuntimeDefault: false;
142
+ enumValues: ["admin", "player", "developer"];
143
+ baseColumn: never;
144
+ identity: undefined;
145
+ generated: undefined;
146
+ }, {}, {}>;
147
+ developerStatus: drizzle_orm_pg_core.PgColumn<{
148
+ name: "developer_status";
149
+ tableName: "user";
150
+ dataType: "string";
151
+ columnType: "PgEnumColumn";
152
+ data: "none" | "pending" | "approved";
153
+ driverParam: string;
154
+ notNull: true;
155
+ hasDefault: true;
156
+ isPrimaryKey: false;
157
+ isAutoincrement: false;
158
+ hasRuntimeDefault: false;
159
+ enumValues: ["none", "pending", "approved"];
160
+ baseColumn: never;
161
+ identity: undefined;
162
+ generated: undefined;
163
+ }, {}, {}>;
164
+ characterCreated: drizzle_orm_pg_core.PgColumn<{
165
+ name: "character_created";
166
+ tableName: "user";
167
+ dataType: "boolean";
168
+ columnType: "PgBoolean";
169
+ data: boolean;
170
+ driverParam: boolean;
171
+ notNull: true;
172
+ hasDefault: true;
173
+ isPrimaryKey: false;
174
+ isAutoincrement: false;
175
+ hasRuntimeDefault: false;
176
+ enumValues: undefined;
177
+ baseColumn: never;
178
+ identity: undefined;
179
+ generated: undefined;
180
+ }, {}, {}>;
181
+ createdAt: drizzle_orm_pg_core.PgColumn<{
182
+ name: "created_at";
183
+ tableName: "user";
184
+ dataType: "date";
185
+ columnType: "PgTimestamp";
186
+ data: Date;
187
+ driverParam: string;
188
+ notNull: true;
189
+ hasDefault: false;
190
+ isPrimaryKey: false;
191
+ isAutoincrement: false;
192
+ hasRuntimeDefault: false;
193
+ enumValues: undefined;
194
+ baseColumn: never;
195
+ identity: undefined;
196
+ generated: undefined;
197
+ }, {}, {}>;
198
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
199
+ name: "updated_at";
200
+ tableName: "user";
201
+ dataType: "date";
202
+ columnType: "PgTimestamp";
203
+ data: Date;
204
+ driverParam: string;
205
+ notNull: true;
206
+ hasDefault: false;
207
+ isPrimaryKey: false;
208
+ isAutoincrement: false;
209
+ hasRuntimeDefault: false;
210
+ enumValues: undefined;
211
+ baseColumn: never;
212
+ identity: undefined;
213
+ generated: undefined;
214
+ }, {}, {}>;
215
+ };
216
+ dialect: "pg";
217
+ }>;
218
+
219
+ declare const developerKeys: drizzle_orm_pg_core.PgTableWithColumns<{
220
+ name: "developer_keys";
221
+ schema: undefined;
222
+ columns: {
223
+ id: drizzle_orm_pg_core.PgColumn<{
224
+ name: "id";
225
+ tableName: "developer_keys";
226
+ dataType: "string";
227
+ columnType: "PgUUID";
228
+ data: string;
229
+ driverParam: string;
230
+ notNull: true;
231
+ hasDefault: true;
232
+ isPrimaryKey: true;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: undefined;
236
+ baseColumn: never;
237
+ identity: undefined;
238
+ generated: undefined;
239
+ }, {}, {}>;
240
+ userId: drizzle_orm_pg_core.PgColumn<{
241
+ name: "user_id";
242
+ tableName: "developer_keys";
243
+ dataType: "string";
244
+ columnType: "PgText";
245
+ data: string;
246
+ driverParam: string;
247
+ notNull: true;
248
+ hasDefault: false;
249
+ isPrimaryKey: false;
250
+ isAutoincrement: false;
251
+ hasRuntimeDefault: false;
252
+ enumValues: [string, ...string[]];
253
+ baseColumn: never;
254
+ identity: undefined;
255
+ generated: undefined;
256
+ }, {}, {}>;
257
+ label: drizzle_orm_pg_core.PgColumn<{
258
+ name: "label";
259
+ tableName: "developer_keys";
260
+ dataType: "string";
261
+ columnType: "PgVarchar";
262
+ data: string;
263
+ driverParam: string;
264
+ notNull: false;
265
+ hasDefault: false;
266
+ isPrimaryKey: false;
267
+ isAutoincrement: false;
268
+ hasRuntimeDefault: false;
269
+ enumValues: [string, ...string[]];
270
+ baseColumn: never;
271
+ identity: undefined;
272
+ generated: undefined;
273
+ }, {}, {
274
+ length: 255;
275
+ }>;
276
+ keyHash: drizzle_orm_pg_core.PgColumn<{
277
+ name: "key_hash";
278
+ tableName: "developer_keys";
279
+ dataType: "string";
280
+ columnType: "PgText";
281
+ data: string;
282
+ driverParam: string;
283
+ notNull: true;
284
+ hasDefault: false;
285
+ isPrimaryKey: false;
286
+ isAutoincrement: false;
287
+ hasRuntimeDefault: false;
288
+ enumValues: [string, ...string[]];
289
+ baseColumn: never;
290
+ identity: undefined;
291
+ generated: undefined;
292
+ }, {}, {}>;
293
+ createdAt: drizzle_orm_pg_core.PgColumn<{
294
+ name: "created_at";
295
+ tableName: "developer_keys";
296
+ dataType: "date";
297
+ columnType: "PgTimestamp";
298
+ data: Date;
299
+ driverParam: string;
300
+ notNull: true;
301
+ hasDefault: true;
302
+ isPrimaryKey: false;
303
+ isAutoincrement: false;
304
+ hasRuntimeDefault: false;
305
+ enumValues: undefined;
306
+ baseColumn: never;
307
+ identity: undefined;
308
+ generated: undefined;
309
+ }, {}, {}>;
310
+ };
311
+ dialect: "pg";
312
+ }>;
313
+
314
+ type GameMetadata = {
315
+ description?: string;
316
+ emoji?: string;
317
+ [key: string]: unknown;
318
+ };
319
+ declare const games: drizzle_orm_pg_core.PgTableWithColumns<{
320
+ name: "games";
321
+ schema: undefined;
322
+ columns: {
323
+ id: drizzle_orm_pg_core.PgColumn<{
324
+ name: "id";
325
+ tableName: "games";
326
+ dataType: "string";
327
+ columnType: "PgUUID";
328
+ data: string;
329
+ driverParam: string;
330
+ notNull: true;
331
+ hasDefault: true;
332
+ isPrimaryKey: true;
333
+ isAutoincrement: false;
334
+ hasRuntimeDefault: false;
335
+ enumValues: undefined;
336
+ baseColumn: never;
337
+ identity: undefined;
338
+ generated: undefined;
339
+ }, {}, {}>;
340
+ developerId: drizzle_orm_pg_core.PgColumn<{
341
+ name: "developer_id";
342
+ tableName: "games";
343
+ dataType: "string";
344
+ columnType: "PgText";
345
+ data: string;
346
+ driverParam: string;
347
+ notNull: false;
348
+ hasDefault: false;
349
+ isPrimaryKey: false;
350
+ isAutoincrement: false;
351
+ hasRuntimeDefault: false;
352
+ enumValues: [string, ...string[]];
353
+ baseColumn: never;
354
+ identity: undefined;
355
+ generated: undefined;
356
+ }, {}, {}>;
357
+ slug: drizzle_orm_pg_core.PgColumn<{
358
+ name: "slug";
359
+ tableName: "games";
360
+ dataType: "string";
361
+ columnType: "PgVarchar";
362
+ data: string;
363
+ driverParam: string;
364
+ notNull: true;
365
+ hasDefault: false;
366
+ isPrimaryKey: false;
367
+ isAutoincrement: false;
368
+ hasRuntimeDefault: false;
369
+ enumValues: [string, ...string[]];
370
+ baseColumn: never;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }, {}, {
374
+ length: 255;
375
+ }>;
376
+ displayName: drizzle_orm_pg_core.PgColumn<{
377
+ name: "display_name";
378
+ tableName: "games";
379
+ dataType: "string";
380
+ columnType: "PgVarchar";
381
+ data: string;
382
+ driverParam: string;
383
+ notNull: true;
384
+ hasDefault: false;
385
+ isPrimaryKey: false;
386
+ isAutoincrement: false;
387
+ hasRuntimeDefault: false;
388
+ enumValues: [string, ...string[]];
389
+ baseColumn: never;
390
+ identity: undefined;
391
+ generated: undefined;
392
+ }, {}, {
393
+ length: 255;
394
+ }>;
395
+ version: drizzle_orm_pg_core.PgColumn<{
396
+ name: "version";
397
+ tableName: "games";
398
+ dataType: "string";
399
+ columnType: "PgVarchar";
400
+ data: string;
401
+ driverParam: string;
402
+ notNull: true;
403
+ hasDefault: false;
404
+ isPrimaryKey: false;
405
+ isAutoincrement: false;
406
+ hasRuntimeDefault: false;
407
+ enumValues: [string, ...string[]];
408
+ baseColumn: never;
409
+ identity: undefined;
410
+ generated: undefined;
411
+ }, {}, {
412
+ length: 50;
413
+ }>;
414
+ gameType: drizzle_orm_pg_core.PgColumn<{
415
+ name: "game_type";
416
+ tableName: "games";
417
+ dataType: "string";
418
+ columnType: "PgEnumColumn";
419
+ data: "hosted" | "external";
420
+ driverParam: string;
421
+ notNull: true;
422
+ hasDefault: true;
423
+ isPrimaryKey: false;
424
+ isAutoincrement: false;
425
+ hasRuntimeDefault: false;
426
+ enumValues: ["hosted", "external"];
427
+ baseColumn: never;
428
+ identity: undefined;
429
+ generated: undefined;
430
+ }, {}, {}>;
431
+ assetBundleBase: drizzle_orm_pg_core.PgColumn<{
432
+ name: "asset_bundle_base";
433
+ tableName: "games";
434
+ dataType: "string";
435
+ columnType: "PgText";
436
+ data: string;
437
+ driverParam: string;
438
+ notNull: false;
439
+ hasDefault: false;
440
+ isPrimaryKey: false;
441
+ isAutoincrement: false;
442
+ hasRuntimeDefault: false;
443
+ enumValues: [string, ...string[]];
444
+ baseColumn: never;
445
+ identity: undefined;
446
+ generated: undefined;
447
+ }, {}, {}>;
448
+ externalUrl: drizzle_orm_pg_core.PgColumn<{
449
+ name: "external_url";
450
+ tableName: "games";
451
+ dataType: "string";
452
+ columnType: "PgText";
453
+ data: string;
454
+ driverParam: string;
455
+ notNull: false;
456
+ hasDefault: false;
457
+ isPrimaryKey: false;
458
+ isAutoincrement: false;
459
+ hasRuntimeDefault: false;
460
+ enumValues: [string, ...string[]];
461
+ baseColumn: never;
462
+ identity: undefined;
463
+ generated: undefined;
464
+ }, {}, {}>;
465
+ platform: drizzle_orm_pg_core.PgColumn<{
466
+ name: "platform";
467
+ tableName: "games";
468
+ dataType: "string";
469
+ columnType: "PgEnumColumn";
470
+ data: "web" | "godot" | "unity";
471
+ driverParam: string;
472
+ notNull: true;
473
+ hasDefault: true;
474
+ isPrimaryKey: false;
475
+ isAutoincrement: false;
476
+ hasRuntimeDefault: false;
477
+ enumValues: ["web", "godot", "unity"];
478
+ baseColumn: never;
479
+ identity: undefined;
480
+ generated: undefined;
481
+ }, {}, {}>;
482
+ mapElementId: drizzle_orm_pg_core.PgColumn<{
483
+ name: "map_element_id";
484
+ tableName: "games";
485
+ dataType: "string";
486
+ columnType: "PgUUID";
487
+ data: string;
488
+ driverParam: string;
489
+ notNull: false;
490
+ hasDefault: false;
491
+ isPrimaryKey: false;
492
+ isAutoincrement: false;
493
+ hasRuntimeDefault: false;
494
+ enumValues: undefined;
495
+ baseColumn: never;
496
+ identity: undefined;
497
+ generated: undefined;
498
+ }, {}, {}>;
499
+ metadata: drizzle_orm_pg_core.PgColumn<{
500
+ name: "metadata";
501
+ tableName: "games";
502
+ dataType: "json";
503
+ columnType: "PgJsonb";
504
+ data: GameMetadata;
505
+ driverParam: unknown;
506
+ notNull: true;
507
+ hasDefault: true;
508
+ isPrimaryKey: false;
509
+ isAutoincrement: false;
510
+ hasRuntimeDefault: false;
511
+ enumValues: undefined;
512
+ baseColumn: never;
513
+ identity: undefined;
514
+ generated: undefined;
515
+ }, {}, {
516
+ $type: GameMetadata;
517
+ }>;
518
+ createdAt: drizzle_orm_pg_core.PgColumn<{
519
+ name: "created_at";
520
+ tableName: "games";
521
+ dataType: "date";
522
+ columnType: "PgTimestamp";
523
+ data: Date;
524
+ driverParam: string;
525
+ notNull: false;
526
+ hasDefault: true;
527
+ isPrimaryKey: false;
528
+ isAutoincrement: false;
529
+ hasRuntimeDefault: false;
530
+ enumValues: undefined;
531
+ baseColumn: never;
532
+ identity: undefined;
533
+ generated: undefined;
534
+ }, {}, {}>;
535
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
536
+ name: "updated_at";
537
+ tableName: "games";
538
+ dataType: "date";
539
+ columnType: "PgTimestamp";
540
+ data: Date;
541
+ driverParam: string;
542
+ notNull: false;
543
+ hasDefault: true;
544
+ isPrimaryKey: false;
545
+ isAutoincrement: false;
546
+ hasRuntimeDefault: false;
547
+ enumValues: undefined;
548
+ baseColumn: never;
549
+ identity: undefined;
550
+ generated: undefined;
551
+ }, {}, {}>;
552
+ };
553
+ dialect: "pg";
554
+ }>;
555
+ declare const gameSessions: drizzle_orm_pg_core.PgTableWithColumns<{
556
+ name: "game_sessions";
557
+ schema: undefined;
558
+ columns: {
559
+ id: drizzle_orm_pg_core.PgColumn<{
560
+ name: "id";
561
+ tableName: "game_sessions";
562
+ dataType: "string";
563
+ columnType: "PgUUID";
564
+ data: string;
565
+ driverParam: string;
566
+ notNull: true;
567
+ hasDefault: true;
568
+ isPrimaryKey: true;
569
+ isAutoincrement: false;
570
+ hasRuntimeDefault: false;
571
+ enumValues: undefined;
572
+ baseColumn: never;
573
+ identity: undefined;
574
+ generated: undefined;
575
+ }, {}, {}>;
576
+ userId: drizzle_orm_pg_core.PgColumn<{
577
+ name: "user_id";
578
+ tableName: "game_sessions";
579
+ dataType: "string";
580
+ columnType: "PgText";
581
+ data: string;
582
+ driverParam: string;
583
+ notNull: true;
584
+ hasDefault: false;
585
+ isPrimaryKey: false;
586
+ isAutoincrement: false;
587
+ hasRuntimeDefault: false;
588
+ enumValues: [string, ...string[]];
589
+ baseColumn: never;
590
+ identity: undefined;
591
+ generated: undefined;
592
+ }, {}, {}>;
593
+ gameId: drizzle_orm_pg_core.PgColumn<{
594
+ name: "game_id";
595
+ tableName: "game_sessions";
596
+ dataType: "string";
597
+ columnType: "PgUUID";
598
+ data: string;
599
+ driverParam: string;
600
+ notNull: true;
601
+ hasDefault: false;
602
+ isPrimaryKey: false;
603
+ isAutoincrement: false;
604
+ hasRuntimeDefault: false;
605
+ enumValues: undefined;
606
+ baseColumn: never;
607
+ identity: undefined;
608
+ generated: undefined;
609
+ }, {}, {}>;
610
+ startedAt: drizzle_orm_pg_core.PgColumn<{
611
+ name: "started_at";
612
+ tableName: "game_sessions";
613
+ dataType: "date";
614
+ columnType: "PgTimestamp";
615
+ data: Date;
616
+ driverParam: string;
617
+ notNull: true;
618
+ hasDefault: true;
619
+ isPrimaryKey: false;
620
+ isAutoincrement: false;
621
+ hasRuntimeDefault: false;
622
+ enumValues: undefined;
623
+ baseColumn: never;
624
+ identity: undefined;
625
+ generated: undefined;
626
+ }, {}, {}>;
627
+ endedAt: drizzle_orm_pg_core.PgColumn<{
628
+ name: "ended_at";
629
+ tableName: "game_sessions";
630
+ dataType: "date";
631
+ columnType: "PgTimestamp";
632
+ data: Date;
633
+ driverParam: string;
634
+ notNull: false;
635
+ hasDefault: false;
636
+ isPrimaryKey: false;
637
+ isAutoincrement: false;
638
+ hasRuntimeDefault: false;
639
+ enumValues: undefined;
640
+ baseColumn: never;
641
+ identity: undefined;
642
+ generated: undefined;
643
+ }, {}, {}>;
644
+ };
645
+ dialect: "pg";
646
+ }>;
647
+ declare const items: drizzle_orm_pg_core.PgTableWithColumns<{
648
+ name: "items";
649
+ schema: undefined;
650
+ columns: {
651
+ id: drizzle_orm_pg_core.PgColumn<{
652
+ name: "id";
653
+ tableName: "items";
654
+ dataType: "string";
655
+ columnType: "PgUUID";
656
+ data: string;
657
+ driverParam: string;
658
+ notNull: true;
659
+ hasDefault: true;
660
+ isPrimaryKey: true;
661
+ isAutoincrement: false;
662
+ hasRuntimeDefault: false;
663
+ enumValues: undefined;
664
+ baseColumn: never;
665
+ identity: undefined;
666
+ generated: undefined;
667
+ }, {}, {}>;
668
+ slug: drizzle_orm_pg_core.PgColumn<{
669
+ name: "slug";
670
+ tableName: "items";
671
+ dataType: "string";
672
+ columnType: "PgText";
673
+ data: string;
674
+ driverParam: string;
675
+ notNull: true;
676
+ hasDefault: false;
677
+ isPrimaryKey: false;
678
+ isAutoincrement: false;
679
+ hasRuntimeDefault: false;
680
+ enumValues: [string, ...string[]];
681
+ baseColumn: never;
682
+ identity: undefined;
683
+ generated: undefined;
684
+ }, {}, {}>;
685
+ gameId: drizzle_orm_pg_core.PgColumn<{
686
+ name: "game_id";
687
+ tableName: "items";
688
+ dataType: "string";
689
+ columnType: "PgUUID";
690
+ data: string;
691
+ driverParam: string;
692
+ notNull: false;
693
+ hasDefault: false;
694
+ isPrimaryKey: false;
695
+ isAutoincrement: false;
696
+ hasRuntimeDefault: false;
697
+ enumValues: undefined;
698
+ baseColumn: never;
699
+ identity: undefined;
700
+ generated: undefined;
701
+ }, {}, {}>;
702
+ displayName: drizzle_orm_pg_core.PgColumn<{
703
+ name: "display_name";
704
+ tableName: "items";
705
+ dataType: "string";
706
+ columnType: "PgText";
707
+ data: string;
708
+ driverParam: string;
709
+ notNull: true;
710
+ hasDefault: false;
711
+ isPrimaryKey: false;
712
+ isAutoincrement: false;
713
+ hasRuntimeDefault: false;
714
+ enumValues: [string, ...string[]];
715
+ baseColumn: never;
716
+ identity: undefined;
717
+ generated: undefined;
718
+ }, {}, {}>;
719
+ description: drizzle_orm_pg_core.PgColumn<{
720
+ name: "description";
721
+ tableName: "items";
722
+ dataType: "string";
723
+ columnType: "PgText";
724
+ data: string;
725
+ driverParam: string;
726
+ notNull: false;
727
+ hasDefault: false;
728
+ isPrimaryKey: false;
729
+ isAutoincrement: false;
730
+ hasRuntimeDefault: false;
731
+ enumValues: [string, ...string[]];
732
+ baseColumn: never;
733
+ identity: undefined;
734
+ generated: undefined;
735
+ }, {}, {}>;
736
+ type: drizzle_orm_pg_core.PgColumn<{
737
+ name: "type";
738
+ tableName: "items";
739
+ dataType: "string";
740
+ columnType: "PgEnumColumn";
741
+ data: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
742
+ driverParam: string;
743
+ notNull: true;
744
+ hasDefault: true;
745
+ isPrimaryKey: false;
746
+ isAutoincrement: false;
747
+ hasRuntimeDefault: false;
748
+ enumValues: ["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"];
749
+ baseColumn: never;
750
+ identity: undefined;
751
+ generated: undefined;
752
+ }, {}, {}>;
753
+ isPlaceable: drizzle_orm_pg_core.PgColumn<{
754
+ name: "is_placeable";
755
+ tableName: "items";
756
+ dataType: "boolean";
757
+ columnType: "PgBoolean";
758
+ data: boolean;
759
+ driverParam: boolean;
760
+ notNull: true;
761
+ hasDefault: true;
762
+ isPrimaryKey: false;
763
+ isAutoincrement: false;
764
+ hasRuntimeDefault: false;
765
+ enumValues: undefined;
766
+ baseColumn: never;
767
+ identity: undefined;
768
+ generated: undefined;
769
+ }, {}, {}>;
770
+ imageUrl: drizzle_orm_pg_core.PgColumn<{
771
+ name: "image_url";
772
+ tableName: "items";
773
+ dataType: "string";
774
+ columnType: "PgText";
775
+ data: string;
776
+ driverParam: string;
777
+ notNull: false;
778
+ hasDefault: false;
779
+ isPrimaryKey: false;
780
+ isAutoincrement: false;
781
+ hasRuntimeDefault: false;
782
+ enumValues: [string, ...string[]];
783
+ baseColumn: never;
784
+ identity: undefined;
785
+ generated: undefined;
786
+ }, {}, {}>;
787
+ metadata: drizzle_orm_pg_core.PgColumn<{
788
+ name: "metadata";
789
+ tableName: "items";
790
+ dataType: "json";
791
+ columnType: "PgJsonb";
792
+ data: unknown;
793
+ driverParam: unknown;
794
+ notNull: false;
795
+ hasDefault: true;
796
+ isPrimaryKey: false;
797
+ isAutoincrement: false;
798
+ hasRuntimeDefault: false;
799
+ enumValues: undefined;
800
+ baseColumn: never;
801
+ identity: undefined;
802
+ generated: undefined;
803
+ }, {}, {}>;
804
+ createdAt: drizzle_orm_pg_core.PgColumn<{
805
+ name: "created_at";
806
+ tableName: "items";
807
+ dataType: "date";
808
+ columnType: "PgTimestamp";
809
+ data: Date;
810
+ driverParam: string;
811
+ notNull: true;
812
+ hasDefault: true;
813
+ isPrimaryKey: false;
814
+ isAutoincrement: false;
815
+ hasRuntimeDefault: false;
816
+ enumValues: undefined;
817
+ baseColumn: never;
818
+ identity: undefined;
819
+ generated: undefined;
820
+ }, {}, {}>;
821
+ };
822
+ dialect: "pg";
823
+ }>;
824
+ declare const inventoryItems: drizzle_orm_pg_core.PgTableWithColumns<{
825
+ name: "inventory_items";
826
+ schema: undefined;
827
+ columns: {
828
+ id: drizzle_orm_pg_core.PgColumn<{
829
+ name: "id";
830
+ tableName: "inventory_items";
831
+ dataType: "string";
832
+ columnType: "PgUUID";
833
+ data: string;
834
+ driverParam: string;
835
+ notNull: true;
836
+ hasDefault: true;
837
+ isPrimaryKey: true;
838
+ isAutoincrement: false;
839
+ hasRuntimeDefault: false;
840
+ enumValues: undefined;
841
+ baseColumn: never;
842
+ identity: undefined;
843
+ generated: undefined;
844
+ }, {}, {}>;
845
+ userId: drizzle_orm_pg_core.PgColumn<{
846
+ name: "user_id";
847
+ tableName: "inventory_items";
848
+ dataType: "string";
849
+ columnType: "PgText";
850
+ data: string;
851
+ driverParam: string;
852
+ notNull: true;
853
+ hasDefault: false;
854
+ isPrimaryKey: false;
855
+ isAutoincrement: false;
856
+ hasRuntimeDefault: false;
857
+ enumValues: [string, ...string[]];
858
+ baseColumn: never;
859
+ identity: undefined;
860
+ generated: undefined;
861
+ }, {}, {}>;
862
+ itemId: drizzle_orm_pg_core.PgColumn<{
863
+ name: "item_id";
864
+ tableName: "inventory_items";
865
+ dataType: "string";
866
+ columnType: "PgUUID";
867
+ data: string;
868
+ driverParam: string;
869
+ notNull: true;
870
+ hasDefault: false;
871
+ isPrimaryKey: false;
872
+ isAutoincrement: false;
873
+ hasRuntimeDefault: false;
874
+ enumValues: undefined;
875
+ baseColumn: never;
876
+ identity: undefined;
877
+ generated: undefined;
878
+ }, {}, {}>;
879
+ quantity: drizzle_orm_pg_core.PgColumn<{
880
+ name: "quantity";
881
+ tableName: "inventory_items";
882
+ dataType: "number";
883
+ columnType: "PgInteger";
884
+ data: number;
885
+ driverParam: string | number;
886
+ notNull: true;
887
+ hasDefault: true;
888
+ isPrimaryKey: false;
889
+ isAutoincrement: false;
890
+ hasRuntimeDefault: false;
891
+ enumValues: undefined;
892
+ baseColumn: never;
893
+ identity: undefined;
894
+ generated: undefined;
895
+ }, {}, {}>;
896
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
897
+ name: "updated_at";
898
+ tableName: "inventory_items";
899
+ dataType: "date";
900
+ columnType: "PgTimestamp";
901
+ data: Date;
902
+ driverParam: string;
903
+ notNull: false;
904
+ hasDefault: true;
905
+ isPrimaryKey: false;
906
+ isAutoincrement: false;
907
+ hasRuntimeDefault: false;
908
+ enumValues: undefined;
909
+ baseColumn: never;
910
+ identity: undefined;
911
+ generated: undefined;
912
+ }, {}, {}>;
913
+ };
914
+ dialect: "pg";
915
+ }>;
916
+ declare const currencies: drizzle_orm_pg_core.PgTableWithColumns<{
917
+ name: "currencies";
918
+ schema: undefined;
919
+ columns: {
920
+ id: drizzle_orm_pg_core.PgColumn<{
921
+ name: "id";
922
+ tableName: "currencies";
923
+ dataType: "string";
924
+ columnType: "PgUUID";
925
+ data: string;
926
+ driverParam: string;
927
+ notNull: true;
928
+ hasDefault: true;
929
+ isPrimaryKey: true;
930
+ isAutoincrement: false;
931
+ hasRuntimeDefault: false;
932
+ enumValues: undefined;
933
+ baseColumn: never;
934
+ identity: undefined;
935
+ generated: undefined;
936
+ }, {}, {}>;
937
+ itemId: drizzle_orm_pg_core.PgColumn<{
938
+ name: "item_id";
939
+ tableName: "currencies";
940
+ dataType: "string";
941
+ columnType: "PgUUID";
942
+ data: string;
943
+ driverParam: string;
944
+ notNull: true;
945
+ hasDefault: false;
946
+ isPrimaryKey: false;
947
+ isAutoincrement: false;
948
+ hasRuntimeDefault: false;
949
+ enumValues: undefined;
950
+ baseColumn: never;
951
+ identity: undefined;
952
+ generated: undefined;
953
+ }, {}, {}>;
954
+ symbol: drizzle_orm_pg_core.PgColumn<{
955
+ name: "symbol";
956
+ tableName: "currencies";
957
+ dataType: "string";
958
+ columnType: "PgText";
959
+ data: string;
960
+ driverParam: string;
961
+ notNull: false;
962
+ hasDefault: false;
963
+ isPrimaryKey: false;
964
+ isAutoincrement: false;
965
+ hasRuntimeDefault: false;
966
+ enumValues: [string, ...string[]];
967
+ baseColumn: never;
968
+ identity: undefined;
969
+ generated: undefined;
970
+ }, {}, {}>;
971
+ isPrimary: drizzle_orm_pg_core.PgColumn<{
972
+ name: "is_primary";
973
+ tableName: "currencies";
974
+ dataType: "boolean";
975
+ columnType: "PgBoolean";
976
+ data: boolean;
977
+ driverParam: boolean;
978
+ notNull: true;
979
+ hasDefault: true;
980
+ isPrimaryKey: false;
981
+ isAutoincrement: false;
982
+ hasRuntimeDefault: false;
983
+ enumValues: undefined;
984
+ baseColumn: never;
985
+ identity: undefined;
986
+ generated: undefined;
987
+ }, {}, {}>;
988
+ createdAt: drizzle_orm_pg_core.PgColumn<{
989
+ name: "created_at";
990
+ tableName: "currencies";
991
+ dataType: "date";
992
+ columnType: "PgTimestamp";
993
+ data: Date;
994
+ driverParam: string;
995
+ notNull: true;
996
+ hasDefault: true;
997
+ isPrimaryKey: false;
998
+ isAutoincrement: false;
999
+ hasRuntimeDefault: false;
1000
+ enumValues: undefined;
1001
+ baseColumn: never;
1002
+ identity: undefined;
1003
+ generated: undefined;
1004
+ }, {}, {}>;
1005
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1006
+ name: "updated_at";
1007
+ tableName: "currencies";
1008
+ dataType: "date";
1009
+ columnType: "PgTimestamp";
1010
+ data: Date;
1011
+ driverParam: string;
1012
+ notNull: false;
1013
+ hasDefault: true;
1014
+ isPrimaryKey: false;
1015
+ isAutoincrement: false;
1016
+ hasRuntimeDefault: false;
1017
+ enumValues: undefined;
1018
+ baseColumn: never;
1019
+ identity: undefined;
1020
+ generated: undefined;
1021
+ }, {}, {}>;
1022
+ };
1023
+ dialect: "pg";
1024
+ }>;
1025
+ declare const shopListings: drizzle_orm_pg_core.PgTableWithColumns<{
1026
+ name: "shop_listings";
1027
+ schema: undefined;
1028
+ columns: {
1029
+ id: drizzle_orm_pg_core.PgColumn<{
1030
+ name: "id";
1031
+ tableName: "shop_listings";
1032
+ dataType: "string";
1033
+ columnType: "PgUUID";
1034
+ data: string;
1035
+ driverParam: string;
1036
+ notNull: true;
1037
+ hasDefault: true;
1038
+ isPrimaryKey: true;
1039
+ isAutoincrement: false;
1040
+ hasRuntimeDefault: false;
1041
+ enumValues: undefined;
1042
+ baseColumn: never;
1043
+ identity: undefined;
1044
+ generated: undefined;
1045
+ }, {}, {}>;
1046
+ itemId: drizzle_orm_pg_core.PgColumn<{
1047
+ name: "item_id";
1048
+ tableName: "shop_listings";
1049
+ dataType: "string";
1050
+ columnType: "PgUUID";
1051
+ data: string;
1052
+ driverParam: string;
1053
+ notNull: true;
1054
+ hasDefault: false;
1055
+ isPrimaryKey: false;
1056
+ isAutoincrement: false;
1057
+ hasRuntimeDefault: false;
1058
+ enumValues: undefined;
1059
+ baseColumn: never;
1060
+ identity: undefined;
1061
+ generated: undefined;
1062
+ }, {}, {}>;
1063
+ currencyId: drizzle_orm_pg_core.PgColumn<{
1064
+ name: "currency_id";
1065
+ tableName: "shop_listings";
1066
+ dataType: "string";
1067
+ columnType: "PgUUID";
1068
+ data: string;
1069
+ driverParam: string;
1070
+ notNull: true;
1071
+ hasDefault: false;
1072
+ isPrimaryKey: false;
1073
+ isAutoincrement: false;
1074
+ hasRuntimeDefault: false;
1075
+ enumValues: undefined;
1076
+ baseColumn: never;
1077
+ identity: undefined;
1078
+ generated: undefined;
1079
+ }, {}, {}>;
1080
+ price: drizzle_orm_pg_core.PgColumn<{
1081
+ name: "price";
1082
+ tableName: "shop_listings";
1083
+ dataType: "number";
1084
+ columnType: "PgInteger";
1085
+ data: number;
1086
+ driverParam: string | number;
1087
+ notNull: true;
1088
+ hasDefault: false;
1089
+ isPrimaryKey: false;
1090
+ isAutoincrement: false;
1091
+ hasRuntimeDefault: false;
1092
+ enumValues: undefined;
1093
+ baseColumn: never;
1094
+ identity: undefined;
1095
+ generated: undefined;
1096
+ }, {}, {}>;
1097
+ sellBackPercentage: drizzle_orm_pg_core.PgColumn<{
1098
+ name: "sell_back_percentage";
1099
+ tableName: "shop_listings";
1100
+ dataType: "number";
1101
+ columnType: "PgInteger";
1102
+ data: number;
1103
+ driverParam: string | number;
1104
+ notNull: false;
1105
+ hasDefault: false;
1106
+ isPrimaryKey: false;
1107
+ isAutoincrement: false;
1108
+ hasRuntimeDefault: false;
1109
+ enumValues: undefined;
1110
+ baseColumn: never;
1111
+ identity: undefined;
1112
+ generated: undefined;
1113
+ }, {}, {}>;
1114
+ stock: drizzle_orm_pg_core.PgColumn<{
1115
+ name: "stock";
1116
+ tableName: "shop_listings";
1117
+ dataType: "number";
1118
+ columnType: "PgInteger";
1119
+ data: number;
1120
+ driverParam: string | number;
1121
+ notNull: false;
1122
+ hasDefault: false;
1123
+ isPrimaryKey: false;
1124
+ isAutoincrement: false;
1125
+ hasRuntimeDefault: false;
1126
+ enumValues: undefined;
1127
+ baseColumn: never;
1128
+ identity: undefined;
1129
+ generated: undefined;
1130
+ }, {}, {}>;
1131
+ isActive: drizzle_orm_pg_core.PgColumn<{
1132
+ name: "is_active";
1133
+ tableName: "shop_listings";
1134
+ dataType: "boolean";
1135
+ columnType: "PgBoolean";
1136
+ data: boolean;
1137
+ driverParam: boolean;
1138
+ notNull: true;
1139
+ hasDefault: true;
1140
+ isPrimaryKey: false;
1141
+ isAutoincrement: false;
1142
+ hasRuntimeDefault: false;
1143
+ enumValues: undefined;
1144
+ baseColumn: never;
1145
+ identity: undefined;
1146
+ generated: undefined;
1147
+ }, {}, {}>;
1148
+ availableFrom: drizzle_orm_pg_core.PgColumn<{
1149
+ name: "available_from";
1150
+ tableName: "shop_listings";
1151
+ dataType: "date";
1152
+ columnType: "PgTimestamp";
1153
+ data: Date;
1154
+ driverParam: string;
1155
+ notNull: false;
1156
+ hasDefault: false;
1157
+ isPrimaryKey: false;
1158
+ isAutoincrement: false;
1159
+ hasRuntimeDefault: false;
1160
+ enumValues: undefined;
1161
+ baseColumn: never;
1162
+ identity: undefined;
1163
+ generated: undefined;
1164
+ }, {}, {}>;
1165
+ availableUntil: drizzle_orm_pg_core.PgColumn<{
1166
+ name: "available_until";
1167
+ tableName: "shop_listings";
1168
+ dataType: "date";
1169
+ columnType: "PgTimestamp";
1170
+ data: Date;
1171
+ driverParam: string;
1172
+ notNull: false;
1173
+ hasDefault: false;
1174
+ isPrimaryKey: false;
1175
+ isAutoincrement: false;
1176
+ hasRuntimeDefault: false;
1177
+ enumValues: undefined;
1178
+ baseColumn: never;
1179
+ identity: undefined;
1180
+ generated: undefined;
1181
+ }, {}, {}>;
1182
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1183
+ name: "created_at";
1184
+ tableName: "shop_listings";
1185
+ dataType: "date";
1186
+ columnType: "PgTimestamp";
1187
+ data: Date;
1188
+ driverParam: string;
1189
+ notNull: true;
1190
+ hasDefault: true;
1191
+ isPrimaryKey: false;
1192
+ isAutoincrement: false;
1193
+ hasRuntimeDefault: false;
1194
+ enumValues: undefined;
1195
+ baseColumn: never;
1196
+ identity: undefined;
1197
+ generated: undefined;
1198
+ }, {}, {}>;
1199
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1200
+ name: "updated_at";
1201
+ tableName: "shop_listings";
1202
+ dataType: "date";
1203
+ columnType: "PgTimestamp";
1204
+ data: Date;
1205
+ driverParam: string;
1206
+ notNull: false;
1207
+ hasDefault: true;
1208
+ isPrimaryKey: false;
1209
+ isAutoincrement: false;
1210
+ hasRuntimeDefault: false;
1211
+ enumValues: undefined;
1212
+ baseColumn: never;
1213
+ identity: undefined;
1214
+ generated: undefined;
1215
+ }, {}, {}>;
1216
+ };
1217
+ dialect: "pg";
1218
+ }>;
1219
+ declare const maps: drizzle_orm_pg_core.PgTableWithColumns<{
1220
+ name: "maps";
1221
+ schema: undefined;
1222
+ columns: {
1223
+ id: drizzle_orm_pg_core.PgColumn<{
1224
+ name: "id";
1225
+ tableName: "maps";
1226
+ dataType: "string";
1227
+ columnType: "PgUUID";
1228
+ data: string;
1229
+ driverParam: string;
1230
+ notNull: true;
1231
+ hasDefault: true;
1232
+ isPrimaryKey: true;
1233
+ isAutoincrement: false;
1234
+ hasRuntimeDefault: false;
1235
+ enumValues: undefined;
1236
+ baseColumn: never;
1237
+ identity: undefined;
1238
+ generated: undefined;
1239
+ }, {}, {}>;
1240
+ identifier: drizzle_orm_pg_core.PgColumn<{
1241
+ name: "identifier";
1242
+ tableName: "maps";
1243
+ dataType: "string";
1244
+ columnType: "PgVarchar";
1245
+ data: string;
1246
+ driverParam: string;
1247
+ notNull: true;
1248
+ hasDefault: false;
1249
+ isPrimaryKey: false;
1250
+ isAutoincrement: false;
1251
+ hasRuntimeDefault: false;
1252
+ enumValues: [string, ...string[]];
1253
+ baseColumn: never;
1254
+ identity: undefined;
1255
+ generated: undefined;
1256
+ }, {}, {
1257
+ length: 255;
1258
+ }>;
1259
+ displayName: drizzle_orm_pg_core.PgColumn<{
1260
+ name: "display_name";
1261
+ tableName: "maps";
1262
+ dataType: "string";
1263
+ columnType: "PgVarchar";
1264
+ data: string;
1265
+ driverParam: string;
1266
+ notNull: true;
1267
+ hasDefault: false;
1268
+ isPrimaryKey: false;
1269
+ isAutoincrement: false;
1270
+ hasRuntimeDefault: false;
1271
+ enumValues: [string, ...string[]];
1272
+ baseColumn: never;
1273
+ identity: undefined;
1274
+ generated: undefined;
1275
+ }, {}, {
1276
+ length: 255;
1277
+ }>;
1278
+ filePath: drizzle_orm_pg_core.PgColumn<{
1279
+ name: "file_path";
1280
+ tableName: "maps";
1281
+ dataType: "string";
1282
+ columnType: "PgVarchar";
1283
+ data: string;
1284
+ driverParam: string;
1285
+ notNull: true;
1286
+ hasDefault: false;
1287
+ isPrimaryKey: false;
1288
+ isAutoincrement: false;
1289
+ hasRuntimeDefault: false;
1290
+ enumValues: [string, ...string[]];
1291
+ baseColumn: never;
1292
+ identity: undefined;
1293
+ generated: undefined;
1294
+ }, {}, {
1295
+ length: 255;
1296
+ }>;
1297
+ tilesetBasePath: drizzle_orm_pg_core.PgColumn<{
1298
+ name: "tileset_base_path";
1299
+ tableName: "maps";
1300
+ dataType: "string";
1301
+ columnType: "PgVarchar";
1302
+ data: string;
1303
+ driverParam: string;
1304
+ notNull: true;
1305
+ hasDefault: true;
1306
+ isPrimaryKey: false;
1307
+ isAutoincrement: false;
1308
+ hasRuntimeDefault: false;
1309
+ enumValues: [string, ...string[]];
1310
+ baseColumn: never;
1311
+ identity: undefined;
1312
+ generated: undefined;
1313
+ }, {}, {
1314
+ length: 255;
1315
+ }>;
1316
+ defaultSpawnTileX: drizzle_orm_pg_core.PgColumn<{
1317
+ name: "default_spawn_tile_x";
1318
+ tableName: "maps";
1319
+ dataType: "number";
1320
+ columnType: "PgDoublePrecision";
1321
+ data: number;
1322
+ driverParam: string | number;
1323
+ notNull: true;
1324
+ hasDefault: true;
1325
+ isPrimaryKey: false;
1326
+ isAutoincrement: false;
1327
+ hasRuntimeDefault: false;
1328
+ enumValues: undefined;
1329
+ baseColumn: never;
1330
+ identity: undefined;
1331
+ generated: undefined;
1332
+ }, {}, {}>;
1333
+ defaultSpawnTileY: drizzle_orm_pg_core.PgColumn<{
1334
+ name: "default_spawn_tile_y";
1335
+ tableName: "maps";
1336
+ dataType: "number";
1337
+ columnType: "PgDoublePrecision";
1338
+ data: number;
1339
+ driverParam: string | number;
1340
+ notNull: true;
1341
+ hasDefault: true;
1342
+ isPrimaryKey: false;
1343
+ isAutoincrement: false;
1344
+ hasRuntimeDefault: false;
1345
+ enumValues: undefined;
1346
+ baseColumn: never;
1347
+ identity: undefined;
1348
+ generated: undefined;
1349
+ }, {}, {}>;
1350
+ description: drizzle_orm_pg_core.PgColumn<{
1351
+ name: "description";
1352
+ tableName: "maps";
1353
+ dataType: "string";
1354
+ columnType: "PgText";
1355
+ data: string;
1356
+ driverParam: string;
1357
+ notNull: false;
1358
+ hasDefault: false;
1359
+ isPrimaryKey: false;
1360
+ isAutoincrement: false;
1361
+ hasRuntimeDefault: false;
1362
+ enumValues: [string, ...string[]];
1363
+ baseColumn: never;
1364
+ identity: undefined;
1365
+ generated: undefined;
1366
+ }, {}, {}>;
1367
+ };
1368
+ dialect: "pg";
1369
+ }>;
1370
+ declare const mapElements: drizzle_orm_pg_core.PgTableWithColumns<{
1371
+ name: "map_elements";
1372
+ schema: undefined;
1373
+ columns: {
1374
+ id: drizzle_orm_pg_core.PgColumn<{
1375
+ name: "id";
1376
+ tableName: "map_elements";
1377
+ dataType: "string";
1378
+ columnType: "PgUUID";
1379
+ data: string;
1380
+ driverParam: string;
1381
+ notNull: true;
1382
+ hasDefault: true;
1383
+ isPrimaryKey: true;
1384
+ isAutoincrement: false;
1385
+ hasRuntimeDefault: false;
1386
+ enumValues: undefined;
1387
+ baseColumn: never;
1388
+ identity: undefined;
1389
+ generated: undefined;
1390
+ }, {}, {}>;
1391
+ mapId: drizzle_orm_pg_core.PgColumn<{
1392
+ name: "map_id";
1393
+ tableName: "map_elements";
1394
+ dataType: "string";
1395
+ columnType: "PgUUID";
1396
+ data: string;
1397
+ driverParam: string;
1398
+ notNull: false;
1399
+ hasDefault: false;
1400
+ isPrimaryKey: false;
1401
+ isAutoincrement: false;
1402
+ hasRuntimeDefault: false;
1403
+ enumValues: undefined;
1404
+ baseColumn: never;
1405
+ identity: undefined;
1406
+ generated: undefined;
1407
+ }, {}, {}>;
1408
+ elementSlug: drizzle_orm_pg_core.PgColumn<{
1409
+ name: "element_slug";
1410
+ tableName: "map_elements";
1411
+ dataType: "string";
1412
+ columnType: "PgVarchar";
1413
+ data: string;
1414
+ driverParam: string;
1415
+ notNull: true;
1416
+ hasDefault: false;
1417
+ isPrimaryKey: false;
1418
+ isAutoincrement: false;
1419
+ hasRuntimeDefault: false;
1420
+ enumValues: [string, ...string[]];
1421
+ baseColumn: never;
1422
+ identity: undefined;
1423
+ generated: undefined;
1424
+ }, {}, {
1425
+ length: 255;
1426
+ }>;
1427
+ interactionType: drizzle_orm_pg_core.PgColumn<{
1428
+ name: "interaction_type";
1429
+ tableName: "map_elements";
1430
+ dataType: "string";
1431
+ columnType: "PgEnumColumn";
1432
+ data: "game_entry" | "game_registry" | "info" | "teleport" | "door_in" | "door_out" | "npc_interaction" | "quest_trigger";
1433
+ driverParam: string;
1434
+ notNull: true;
1435
+ hasDefault: false;
1436
+ isPrimaryKey: false;
1437
+ isAutoincrement: false;
1438
+ hasRuntimeDefault: false;
1439
+ enumValues: ["game_entry", "game_registry", "info", "teleport", "door_in", "door_out", "npc_interaction", "quest_trigger"];
1440
+ baseColumn: never;
1441
+ identity: undefined;
1442
+ generated: undefined;
1443
+ }, {}, {}>;
1444
+ gameId: drizzle_orm_pg_core.PgColumn<{
1445
+ name: "game_id";
1446
+ tableName: "map_elements";
1447
+ dataType: "string";
1448
+ columnType: "PgUUID";
1449
+ data: string;
1450
+ driverParam: string;
1451
+ notNull: false;
1452
+ hasDefault: false;
1453
+ isPrimaryKey: false;
1454
+ isAutoincrement: false;
1455
+ hasRuntimeDefault: false;
1456
+ enumValues: undefined;
1457
+ baseColumn: never;
1458
+ identity: undefined;
1459
+ generated: undefined;
1460
+ }, {}, {}>;
1461
+ metadata: drizzle_orm_pg_core.PgColumn<{
1462
+ name: "metadata";
1463
+ tableName: "map_elements";
1464
+ dataType: "json";
1465
+ columnType: "PgJsonb";
1466
+ data: Record<string, unknown>;
1467
+ driverParam: unknown;
1468
+ notNull: false;
1469
+ hasDefault: true;
1470
+ isPrimaryKey: false;
1471
+ isAutoincrement: false;
1472
+ hasRuntimeDefault: false;
1473
+ enumValues: undefined;
1474
+ baseColumn: never;
1475
+ identity: undefined;
1476
+ generated: undefined;
1477
+ }, {}, {
1478
+ $type: Record<string, unknown>;
1479
+ }>;
1480
+ };
1481
+ dialect: "pg";
1482
+ }>;
1483
+ declare const mapObjects: drizzle_orm_pg_core.PgTableWithColumns<{
1484
+ name: "map_objects";
1485
+ schema: undefined;
1486
+ columns: {
1487
+ id: drizzle_orm_pg_core.PgColumn<{
1488
+ name: "id";
1489
+ tableName: "map_objects";
1490
+ dataType: "string";
1491
+ columnType: "PgUUID";
1492
+ data: string;
1493
+ driverParam: string;
1494
+ notNull: true;
1495
+ hasDefault: true;
1496
+ isPrimaryKey: true;
1497
+ isAutoincrement: false;
1498
+ hasRuntimeDefault: false;
1499
+ enumValues: undefined;
1500
+ baseColumn: never;
1501
+ identity: undefined;
1502
+ generated: undefined;
1503
+ }, {}, {}>;
1504
+ userId: drizzle_orm_pg_core.PgColumn<{
1505
+ name: "user_id";
1506
+ tableName: "map_objects";
1507
+ dataType: "string";
1508
+ columnType: "PgText";
1509
+ data: string;
1510
+ driverParam: string;
1511
+ notNull: true;
1512
+ hasDefault: false;
1513
+ isPrimaryKey: false;
1514
+ isAutoincrement: false;
1515
+ hasRuntimeDefault: false;
1516
+ enumValues: [string, ...string[]];
1517
+ baseColumn: never;
1518
+ identity: undefined;
1519
+ generated: undefined;
1520
+ }, {}, {}>;
1521
+ mapId: drizzle_orm_pg_core.PgColumn<{
1522
+ name: "map_id";
1523
+ tableName: "map_objects";
1524
+ dataType: "string";
1525
+ columnType: "PgUUID";
1526
+ data: string;
1527
+ driverParam: string;
1528
+ notNull: true;
1529
+ hasDefault: false;
1530
+ isPrimaryKey: false;
1531
+ isAutoincrement: false;
1532
+ hasRuntimeDefault: false;
1533
+ enumValues: undefined;
1534
+ baseColumn: never;
1535
+ identity: undefined;
1536
+ generated: undefined;
1537
+ }, {}, {}>;
1538
+ itemId: drizzle_orm_pg_core.PgColumn<{
1539
+ name: "item_id";
1540
+ tableName: "map_objects";
1541
+ dataType: "string";
1542
+ columnType: "PgUUID";
1543
+ data: string;
1544
+ driverParam: string;
1545
+ notNull: true;
1546
+ hasDefault: false;
1547
+ isPrimaryKey: false;
1548
+ isAutoincrement: false;
1549
+ hasRuntimeDefault: false;
1550
+ enumValues: undefined;
1551
+ baseColumn: never;
1552
+ identity: undefined;
1553
+ generated: undefined;
1554
+ }, {}, {}>;
1555
+ worldX: drizzle_orm_pg_core.PgColumn<{
1556
+ name: "world_x";
1557
+ tableName: "map_objects";
1558
+ dataType: "number";
1559
+ columnType: "PgDoublePrecision";
1560
+ data: number;
1561
+ driverParam: string | number;
1562
+ notNull: true;
1563
+ hasDefault: false;
1564
+ isPrimaryKey: false;
1565
+ isAutoincrement: false;
1566
+ hasRuntimeDefault: false;
1567
+ enumValues: undefined;
1568
+ baseColumn: never;
1569
+ identity: undefined;
1570
+ generated: undefined;
1571
+ }, {}, {}>;
1572
+ worldY: drizzle_orm_pg_core.PgColumn<{
1573
+ name: "world_y";
1574
+ tableName: "map_objects";
1575
+ dataType: "number";
1576
+ columnType: "PgDoublePrecision";
1577
+ data: number;
1578
+ driverParam: string | number;
1579
+ notNull: true;
1580
+ hasDefault: false;
1581
+ isPrimaryKey: false;
1582
+ isAutoincrement: false;
1583
+ hasRuntimeDefault: false;
1584
+ enumValues: undefined;
1585
+ baseColumn: never;
1586
+ identity: undefined;
1587
+ generated: undefined;
1588
+ }, {}, {}>;
1589
+ rotation: drizzle_orm_pg_core.PgColumn<{
1590
+ name: "rotation";
1591
+ tableName: "map_objects";
1592
+ dataType: "number";
1593
+ columnType: "PgInteger";
1594
+ data: number;
1595
+ driverParam: string | number;
1596
+ notNull: true;
1597
+ hasDefault: true;
1598
+ isPrimaryKey: false;
1599
+ isAutoincrement: false;
1600
+ hasRuntimeDefault: false;
1601
+ enumValues: undefined;
1602
+ baseColumn: never;
1603
+ identity: undefined;
1604
+ generated: undefined;
1605
+ }, {}, {}>;
1606
+ scale: drizzle_orm_pg_core.PgColumn<{
1607
+ name: "scale";
1608
+ tableName: "map_objects";
1609
+ dataType: "number";
1610
+ columnType: "PgDoublePrecision";
1611
+ data: number;
1612
+ driverParam: string | number;
1613
+ notNull: true;
1614
+ hasDefault: true;
1615
+ isPrimaryKey: false;
1616
+ isAutoincrement: false;
1617
+ hasRuntimeDefault: false;
1618
+ enumValues: undefined;
1619
+ baseColumn: never;
1620
+ identity: undefined;
1621
+ generated: undefined;
1622
+ }, {}, {}>;
1623
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1624
+ name: "created_at";
1625
+ tableName: "map_objects";
1626
+ dataType: "date";
1627
+ columnType: "PgTimestamp";
1628
+ data: Date;
1629
+ driverParam: string;
1630
+ notNull: true;
1631
+ hasDefault: true;
1632
+ isPrimaryKey: false;
1633
+ isAutoincrement: false;
1634
+ hasRuntimeDefault: false;
1635
+ enumValues: undefined;
1636
+ baseColumn: never;
1637
+ identity: undefined;
1638
+ generated: undefined;
1639
+ }, {}, {}>;
1640
+ };
1641
+ dialect: "pg";
1642
+ }>;
1643
+
1644
+ declare const userLevels: drizzle_orm_pg_core.PgTableWithColumns<{
1645
+ name: "user_levels";
1646
+ schema: undefined;
1647
+ columns: {
1648
+ userId: drizzle_orm_pg_core.PgColumn<{
1649
+ name: "user_id";
1650
+ tableName: "user_levels";
1651
+ dataType: "string";
1652
+ columnType: "PgText";
1653
+ data: string;
1654
+ driverParam: string;
1655
+ notNull: true;
1656
+ hasDefault: false;
1657
+ isPrimaryKey: true;
1658
+ isAutoincrement: false;
1659
+ hasRuntimeDefault: false;
1660
+ enumValues: [string, ...string[]];
1661
+ baseColumn: never;
1662
+ identity: undefined;
1663
+ generated: undefined;
1664
+ }, {}, {}>;
1665
+ currentLevel: drizzle_orm_pg_core.PgColumn<{
1666
+ name: "current_level";
1667
+ tableName: "user_levels";
1668
+ dataType: "number";
1669
+ columnType: "PgInteger";
1670
+ data: number;
1671
+ driverParam: string | number;
1672
+ notNull: true;
1673
+ hasDefault: true;
1674
+ isPrimaryKey: false;
1675
+ isAutoincrement: false;
1676
+ hasRuntimeDefault: false;
1677
+ enumValues: undefined;
1678
+ baseColumn: never;
1679
+ identity: undefined;
1680
+ generated: undefined;
1681
+ }, {}, {}>;
1682
+ currentXp: drizzle_orm_pg_core.PgColumn<{
1683
+ name: "current_xp";
1684
+ tableName: "user_levels";
1685
+ dataType: "number";
1686
+ columnType: "PgDoublePrecision";
1687
+ data: number;
1688
+ driverParam: string | number;
1689
+ notNull: true;
1690
+ hasDefault: true;
1691
+ isPrimaryKey: false;
1692
+ isAutoincrement: false;
1693
+ hasRuntimeDefault: false;
1694
+ enumValues: undefined;
1695
+ baseColumn: never;
1696
+ identity: undefined;
1697
+ generated: undefined;
1698
+ }, {}, {}>;
1699
+ totalXP: drizzle_orm_pg_core.PgColumn<{
1700
+ name: "total_xp";
1701
+ tableName: "user_levels";
1702
+ dataType: "number";
1703
+ columnType: "PgDoublePrecision";
1704
+ data: number;
1705
+ driverParam: string | number;
1706
+ notNull: true;
1707
+ hasDefault: true;
1708
+ isPrimaryKey: false;
1709
+ isAutoincrement: false;
1710
+ hasRuntimeDefault: false;
1711
+ enumValues: undefined;
1712
+ baseColumn: never;
1713
+ identity: undefined;
1714
+ generated: undefined;
1715
+ }, {}, {}>;
1716
+ lastLevelUpAt: drizzle_orm_pg_core.PgColumn<{
1717
+ name: "last_level_up_at";
1718
+ tableName: "user_levels";
1719
+ dataType: "date";
1720
+ columnType: "PgTimestamp";
1721
+ data: Date;
1722
+ driverParam: string;
1723
+ notNull: false;
1724
+ hasDefault: false;
1725
+ isPrimaryKey: false;
1726
+ isAutoincrement: false;
1727
+ hasRuntimeDefault: false;
1728
+ enumValues: undefined;
1729
+ baseColumn: never;
1730
+ identity: undefined;
1731
+ generated: undefined;
1732
+ }, {}, {}>;
1733
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1734
+ name: "created_at";
1735
+ tableName: "user_levels";
1736
+ dataType: "date";
1737
+ columnType: "PgTimestamp";
1738
+ data: Date;
1739
+ driverParam: string;
1740
+ notNull: true;
1741
+ hasDefault: true;
1742
+ isPrimaryKey: false;
1743
+ isAutoincrement: false;
1744
+ hasRuntimeDefault: false;
1745
+ enumValues: undefined;
1746
+ baseColumn: never;
1747
+ identity: undefined;
1748
+ generated: undefined;
1749
+ }, {}, {}>;
1750
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1751
+ name: "updated_at";
1752
+ tableName: "user_levels";
1753
+ dataType: "date";
1754
+ columnType: "PgTimestamp";
1755
+ data: Date;
1756
+ driverParam: string;
1757
+ notNull: false;
1758
+ hasDefault: true;
1759
+ isPrimaryKey: false;
1760
+ isAutoincrement: false;
1761
+ hasRuntimeDefault: false;
1762
+ enumValues: undefined;
1763
+ baseColumn: never;
1764
+ identity: undefined;
1765
+ generated: undefined;
1766
+ }, {}, {}>;
1767
+ };
1768
+ dialect: "pg";
1769
+ }>;
1770
+ declare const levelConfigs: drizzle_orm_pg_core.PgTableWithColumns<{
1771
+ name: "level_configs";
1772
+ schema: undefined;
1773
+ columns: {
1774
+ id: drizzle_orm_pg_core.PgColumn<{
1775
+ name: "id";
1776
+ tableName: "level_configs";
1777
+ dataType: "string";
1778
+ columnType: "PgUUID";
1779
+ data: string;
1780
+ driverParam: string;
1781
+ notNull: true;
1782
+ hasDefault: true;
1783
+ isPrimaryKey: true;
1784
+ isAutoincrement: false;
1785
+ hasRuntimeDefault: false;
1786
+ enumValues: undefined;
1787
+ baseColumn: never;
1788
+ identity: undefined;
1789
+ generated: undefined;
1790
+ }, {}, {}>;
1791
+ level: drizzle_orm_pg_core.PgColumn<{
1792
+ name: "level";
1793
+ tableName: "level_configs";
1794
+ dataType: "number";
1795
+ columnType: "PgInteger";
1796
+ data: number;
1797
+ driverParam: string | number;
1798
+ notNull: true;
1799
+ hasDefault: false;
1800
+ isPrimaryKey: false;
1801
+ isAutoincrement: false;
1802
+ hasRuntimeDefault: false;
1803
+ enumValues: undefined;
1804
+ baseColumn: never;
1805
+ identity: undefined;
1806
+ generated: undefined;
1807
+ }, {}, {}>;
1808
+ xpRequired: drizzle_orm_pg_core.PgColumn<{
1809
+ name: "xp_required";
1810
+ tableName: "level_configs";
1811
+ dataType: "number";
1812
+ columnType: "PgInteger";
1813
+ data: number;
1814
+ driverParam: string | number;
1815
+ notNull: true;
1816
+ hasDefault: false;
1817
+ isPrimaryKey: false;
1818
+ isAutoincrement: false;
1819
+ hasRuntimeDefault: false;
1820
+ enumValues: undefined;
1821
+ baseColumn: never;
1822
+ identity: undefined;
1823
+ generated: undefined;
1824
+ }, {}, {}>;
1825
+ creditsReward: drizzle_orm_pg_core.PgColumn<{
1826
+ name: "credits_reward";
1827
+ tableName: "level_configs";
1828
+ dataType: "number";
1829
+ columnType: "PgInteger";
1830
+ data: number;
1831
+ driverParam: string | number;
1832
+ notNull: true;
1833
+ hasDefault: true;
1834
+ isPrimaryKey: false;
1835
+ isAutoincrement: false;
1836
+ hasRuntimeDefault: false;
1837
+ enumValues: undefined;
1838
+ baseColumn: never;
1839
+ identity: undefined;
1840
+ generated: undefined;
1841
+ }, {}, {}>;
1842
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1843
+ name: "created_at";
1844
+ tableName: "level_configs";
1845
+ dataType: "date";
1846
+ columnType: "PgTimestamp";
1847
+ data: Date;
1848
+ driverParam: string;
1849
+ notNull: true;
1850
+ hasDefault: true;
1851
+ isPrimaryKey: false;
1852
+ isAutoincrement: false;
1853
+ hasRuntimeDefault: false;
1854
+ enumValues: undefined;
1855
+ baseColumn: never;
1856
+ identity: undefined;
1857
+ generated: undefined;
1858
+ }, {}, {}>;
1859
+ };
1860
+ dialect: "pg";
1861
+ }>;
1862
+
1863
+ declare const spriteTemplates: drizzle_orm_pg_core.PgTableWithColumns<{
1864
+ name: "sprite_templates";
1865
+ schema: undefined;
1866
+ columns: {
1867
+ id: drizzle_orm_pg_core.PgColumn<{
1868
+ name: "id";
1869
+ tableName: "sprite_templates";
1870
+ dataType: "string";
1871
+ columnType: "PgUUID";
1872
+ data: string;
1873
+ driverParam: string;
1874
+ notNull: true;
1875
+ hasDefault: true;
1876
+ isPrimaryKey: true;
1877
+ isAutoincrement: false;
1878
+ hasRuntimeDefault: false;
1879
+ enumValues: undefined;
1880
+ baseColumn: never;
1881
+ identity: undefined;
1882
+ generated: undefined;
1883
+ }, {}, {}>;
1884
+ slug: drizzle_orm_pg_core.PgColumn<{
1885
+ name: "slug";
1886
+ tableName: "sprite_templates";
1887
+ dataType: "string";
1888
+ columnType: "PgVarchar";
1889
+ data: string;
1890
+ driverParam: string;
1891
+ notNull: true;
1892
+ hasDefault: false;
1893
+ isPrimaryKey: false;
1894
+ isAutoincrement: false;
1895
+ hasRuntimeDefault: false;
1896
+ enumValues: [string, ...string[]];
1897
+ baseColumn: never;
1898
+ identity: undefined;
1899
+ generated: undefined;
1900
+ }, {}, {
1901
+ length: 64;
1902
+ }>;
1903
+ url: drizzle_orm_pg_core.PgColumn<{
1904
+ name: "url";
1905
+ tableName: "sprite_templates";
1906
+ dataType: "string";
1907
+ columnType: "PgVarchar";
1908
+ data: string;
1909
+ driverParam: string;
1910
+ notNull: true;
1911
+ hasDefault: false;
1912
+ isPrimaryKey: false;
1913
+ isAutoincrement: false;
1914
+ hasRuntimeDefault: false;
1915
+ enumValues: [string, ...string[]];
1916
+ baseColumn: never;
1917
+ identity: undefined;
1918
+ generated: undefined;
1919
+ }, {}, {
1920
+ length: 255;
1921
+ }>;
1922
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1923
+ name: "created_at";
1924
+ tableName: "sprite_templates";
1925
+ dataType: "date";
1926
+ columnType: "PgTimestamp";
1927
+ data: Date;
1928
+ driverParam: string;
1929
+ notNull: true;
1930
+ hasDefault: true;
1931
+ isPrimaryKey: false;
1932
+ isAutoincrement: false;
1933
+ hasRuntimeDefault: false;
1934
+ enumValues: undefined;
1935
+ baseColumn: never;
1936
+ identity: undefined;
1937
+ generated: undefined;
1938
+ }, {}, {}>;
1939
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1940
+ name: "updated_at";
1941
+ tableName: "sprite_templates";
1942
+ dataType: "date";
1943
+ columnType: "PgTimestamp";
1944
+ data: Date;
1945
+ driverParam: string;
1946
+ notNull: true;
1947
+ hasDefault: true;
1948
+ isPrimaryKey: false;
1949
+ isAutoincrement: false;
1950
+ hasRuntimeDefault: false;
1951
+ enumValues: undefined;
1952
+ baseColumn: never;
1953
+ identity: undefined;
1954
+ generated: undefined;
1955
+ }, {}, {}>;
1956
+ };
1957
+ dialect: "pg";
1958
+ }>;
1959
+ declare const characterComponents: drizzle_orm_pg_core.PgTableWithColumns<{
1960
+ name: "character_components";
1961
+ schema: undefined;
1962
+ columns: {
1963
+ id: drizzle_orm_pg_core.PgColumn<{
1964
+ name: "id";
1965
+ tableName: "character_components";
1966
+ dataType: "string";
1967
+ columnType: "PgUUID";
1968
+ data: string;
1969
+ driverParam: string;
1970
+ notNull: true;
1971
+ hasDefault: true;
1972
+ isPrimaryKey: true;
1973
+ isAutoincrement: false;
1974
+ hasRuntimeDefault: false;
1975
+ enumValues: undefined;
1976
+ baseColumn: never;
1977
+ identity: undefined;
1978
+ generated: undefined;
1979
+ }, {}, {}>;
1980
+ componentType: drizzle_orm_pg_core.PgColumn<{
1981
+ name: "component_type";
1982
+ tableName: "character_components";
1983
+ dataType: "string";
1984
+ columnType: "PgEnumColumn";
1985
+ data: "accessory" | "body" | "outfit" | "hairstyle" | "eyes";
1986
+ driverParam: string;
1987
+ notNull: true;
1988
+ hasDefault: false;
1989
+ isPrimaryKey: false;
1990
+ isAutoincrement: false;
1991
+ hasRuntimeDefault: false;
1992
+ enumValues: ["body", "outfit", "hairstyle", "eyes", "accessory"];
1993
+ baseColumn: never;
1994
+ identity: undefined;
1995
+ generated: undefined;
1996
+ }, {}, {}>;
1997
+ slug: drizzle_orm_pg_core.PgColumn<{
1998
+ name: "slug";
1999
+ tableName: "character_components";
2000
+ dataType: "string";
2001
+ columnType: "PgVarchar";
2002
+ data: string;
2003
+ driverParam: string;
2004
+ notNull: true;
2005
+ hasDefault: false;
2006
+ isPrimaryKey: false;
2007
+ isAutoincrement: false;
2008
+ hasRuntimeDefault: false;
2009
+ enumValues: [string, ...string[]];
2010
+ baseColumn: never;
2011
+ identity: undefined;
2012
+ generated: undefined;
2013
+ }, {}, {
2014
+ length: 128;
2015
+ }>;
2016
+ displayName: drizzle_orm_pg_core.PgColumn<{
2017
+ name: "display_name";
2018
+ tableName: "character_components";
2019
+ dataType: "string";
2020
+ columnType: "PgVarchar";
2021
+ data: string;
2022
+ driverParam: string;
2023
+ notNull: true;
2024
+ hasDefault: false;
2025
+ isPrimaryKey: false;
2026
+ isAutoincrement: false;
2027
+ hasRuntimeDefault: false;
2028
+ enumValues: [string, ...string[]];
2029
+ baseColumn: never;
2030
+ identity: undefined;
2031
+ generated: undefined;
2032
+ }, {}, {
2033
+ length: 128;
2034
+ }>;
2035
+ slot: drizzle_orm_pg_core.PgColumn<{
2036
+ name: "slot";
2037
+ tableName: "character_components";
2038
+ dataType: "string";
2039
+ columnType: "PgVarchar";
2040
+ data: string;
2041
+ driverParam: string;
2042
+ notNull: true;
2043
+ hasDefault: false;
2044
+ isPrimaryKey: false;
2045
+ isAutoincrement: false;
2046
+ hasRuntimeDefault: false;
2047
+ enumValues: [string, ...string[]];
2048
+ baseColumn: never;
2049
+ identity: undefined;
2050
+ generated: undefined;
2051
+ }, {}, {
2052
+ length: 64;
2053
+ }>;
2054
+ spriteSheetId: drizzle_orm_pg_core.PgColumn<{
2055
+ name: "sprite_sheet_id";
2056
+ tableName: "character_components";
2057
+ dataType: "string";
2058
+ columnType: "PgUUID";
2059
+ data: string;
2060
+ driverParam: string;
2061
+ notNull: true;
2062
+ hasDefault: false;
2063
+ isPrimaryKey: false;
2064
+ isAutoincrement: false;
2065
+ hasRuntimeDefault: false;
2066
+ enumValues: undefined;
2067
+ baseColumn: never;
2068
+ identity: undefined;
2069
+ generated: undefined;
2070
+ }, {}, {}>;
2071
+ unlockLevel: drizzle_orm_pg_core.PgColumn<{
2072
+ name: "unlock_level";
2073
+ tableName: "character_components";
2074
+ dataType: "number";
2075
+ columnType: "PgInteger";
2076
+ data: number;
2077
+ driverParam: string | number;
2078
+ notNull: true;
2079
+ hasDefault: true;
2080
+ isPrimaryKey: false;
2081
+ isAutoincrement: false;
2082
+ hasRuntimeDefault: false;
2083
+ enumValues: undefined;
2084
+ baseColumn: never;
2085
+ identity: undefined;
2086
+ generated: undefined;
2087
+ }, {}, {}>;
2088
+ variant: drizzle_orm_pg_core.PgColumn<{
2089
+ name: "variant";
2090
+ tableName: "character_components";
2091
+ dataType: "number";
2092
+ columnType: "PgInteger";
2093
+ data: number;
2094
+ driverParam: string | number;
2095
+ notNull: true;
2096
+ hasDefault: true;
2097
+ isPrimaryKey: false;
2098
+ isAutoincrement: false;
2099
+ hasRuntimeDefault: false;
2100
+ enumValues: undefined;
2101
+ baseColumn: never;
2102
+ identity: undefined;
2103
+ generated: undefined;
2104
+ }, {}, {}>;
2105
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2106
+ name: "created_at";
2107
+ tableName: "character_components";
2108
+ dataType: "date";
2109
+ columnType: "PgTimestamp";
2110
+ data: Date;
2111
+ driverParam: string;
2112
+ notNull: true;
2113
+ hasDefault: true;
2114
+ isPrimaryKey: false;
2115
+ isAutoincrement: false;
2116
+ hasRuntimeDefault: false;
2117
+ enumValues: undefined;
2118
+ baseColumn: never;
2119
+ identity: undefined;
2120
+ generated: undefined;
2121
+ }, {}, {}>;
2122
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2123
+ name: "updated_at";
2124
+ tableName: "character_components";
2125
+ dataType: "date";
2126
+ columnType: "PgTimestamp";
2127
+ data: Date;
2128
+ driverParam: string;
2129
+ notNull: true;
2130
+ hasDefault: true;
2131
+ isPrimaryKey: false;
2132
+ isAutoincrement: false;
2133
+ hasRuntimeDefault: false;
2134
+ enumValues: undefined;
2135
+ baseColumn: never;
2136
+ identity: undefined;
2137
+ generated: undefined;
2138
+ }, {}, {}>;
2139
+ };
2140
+ dialect: "pg";
2141
+ }>;
2142
+ declare const playerCharacters: drizzle_orm_pg_core.PgTableWithColumns<{
2143
+ name: "player_characters";
2144
+ schema: undefined;
2145
+ columns: {
2146
+ id: drizzle_orm_pg_core.PgColumn<{
2147
+ name: "id";
2148
+ tableName: "player_characters";
2149
+ dataType: "string";
2150
+ columnType: "PgUUID";
2151
+ data: string;
2152
+ driverParam: string;
2153
+ notNull: true;
2154
+ hasDefault: true;
2155
+ isPrimaryKey: true;
2156
+ isAutoincrement: false;
2157
+ hasRuntimeDefault: false;
2158
+ enumValues: undefined;
2159
+ baseColumn: never;
2160
+ identity: undefined;
2161
+ generated: undefined;
2162
+ }, {}, {}>;
2163
+ userId: drizzle_orm_pg_core.PgColumn<{
2164
+ name: "user_id";
2165
+ tableName: "player_characters";
2166
+ dataType: "string";
2167
+ columnType: "PgText";
2168
+ data: string;
2169
+ driverParam: string;
2170
+ notNull: true;
2171
+ hasDefault: false;
2172
+ isPrimaryKey: false;
2173
+ isAutoincrement: false;
2174
+ hasRuntimeDefault: false;
2175
+ enumValues: [string, ...string[]];
2176
+ baseColumn: never;
2177
+ identity: undefined;
2178
+ generated: undefined;
2179
+ }, {}, {}>;
2180
+ bodyComponentId: drizzle_orm_pg_core.PgColumn<{
2181
+ name: "body_component_id";
2182
+ tableName: "player_characters";
2183
+ dataType: "string";
2184
+ columnType: "PgUUID";
2185
+ data: string;
2186
+ driverParam: string;
2187
+ notNull: true;
2188
+ hasDefault: false;
2189
+ isPrimaryKey: false;
2190
+ isAutoincrement: false;
2191
+ hasRuntimeDefault: false;
2192
+ enumValues: undefined;
2193
+ baseColumn: never;
2194
+ identity: undefined;
2195
+ generated: undefined;
2196
+ }, {}, {}>;
2197
+ eyesComponentId: drizzle_orm_pg_core.PgColumn<{
2198
+ name: "eyes_component_id";
2199
+ tableName: "player_characters";
2200
+ dataType: "string";
2201
+ columnType: "PgUUID";
2202
+ data: string;
2203
+ driverParam: string;
2204
+ notNull: true;
2205
+ hasDefault: false;
2206
+ isPrimaryKey: false;
2207
+ isAutoincrement: false;
2208
+ hasRuntimeDefault: false;
2209
+ enumValues: undefined;
2210
+ baseColumn: never;
2211
+ identity: undefined;
2212
+ generated: undefined;
2213
+ }, {}, {}>;
2214
+ hairstyleComponentId: drizzle_orm_pg_core.PgColumn<{
2215
+ name: "hairstyle_component_id";
2216
+ tableName: "player_characters";
2217
+ dataType: "string";
2218
+ columnType: "PgUUID";
2219
+ data: string;
2220
+ driverParam: string;
2221
+ notNull: true;
2222
+ hasDefault: false;
2223
+ isPrimaryKey: false;
2224
+ isAutoincrement: false;
2225
+ hasRuntimeDefault: false;
2226
+ enumValues: undefined;
2227
+ baseColumn: never;
2228
+ identity: undefined;
2229
+ generated: undefined;
2230
+ }, {}, {}>;
2231
+ outfitComponentId: drizzle_orm_pg_core.PgColumn<{
2232
+ name: "outfit_component_id";
2233
+ tableName: "player_characters";
2234
+ dataType: "string";
2235
+ columnType: "PgUUID";
2236
+ data: string;
2237
+ driverParam: string;
2238
+ notNull: true;
2239
+ hasDefault: false;
2240
+ isPrimaryKey: false;
2241
+ isAutoincrement: false;
2242
+ hasRuntimeDefault: false;
2243
+ enumValues: undefined;
2244
+ baseColumn: never;
2245
+ identity: undefined;
2246
+ generated: undefined;
2247
+ }, {}, {}>;
2248
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2249
+ name: "created_at";
2250
+ tableName: "player_characters";
2251
+ dataType: "date";
2252
+ columnType: "PgTimestamp";
2253
+ data: Date;
2254
+ driverParam: string;
2255
+ notNull: true;
2256
+ hasDefault: true;
2257
+ isPrimaryKey: false;
2258
+ isAutoincrement: false;
2259
+ hasRuntimeDefault: false;
2260
+ enumValues: undefined;
2261
+ baseColumn: never;
2262
+ identity: undefined;
2263
+ generated: undefined;
2264
+ }, {}, {}>;
2265
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2266
+ name: "updated_at";
2267
+ tableName: "player_characters";
2268
+ dataType: "date";
2269
+ columnType: "PgTimestamp";
2270
+ data: Date;
2271
+ driverParam: string;
2272
+ notNull: true;
2273
+ hasDefault: true;
2274
+ isPrimaryKey: false;
2275
+ isAutoincrement: false;
2276
+ hasRuntimeDefault: false;
2277
+ enumValues: undefined;
2278
+ baseColumn: never;
2279
+ identity: undefined;
2280
+ generated: undefined;
2281
+ }, {}, {}>;
2282
+ };
2283
+ dialect: "pg";
2284
+ }>;
2285
+ declare const playerCharacterAccessories: drizzle_orm_pg_core.PgTableWithColumns<{
2286
+ name: "player_character_accessories";
2287
+ schema: undefined;
2288
+ columns: {
2289
+ id: drizzle_orm_pg_core.PgColumn<{
2290
+ name: "id";
2291
+ tableName: "player_character_accessories";
2292
+ dataType: "string";
2293
+ columnType: "PgUUID";
2294
+ data: string;
2295
+ driverParam: string;
2296
+ notNull: true;
2297
+ hasDefault: true;
2298
+ isPrimaryKey: true;
2299
+ isAutoincrement: false;
2300
+ hasRuntimeDefault: false;
2301
+ enumValues: undefined;
2302
+ baseColumn: never;
2303
+ identity: undefined;
2304
+ generated: undefined;
2305
+ }, {}, {}>;
2306
+ playerCharacterId: drizzle_orm_pg_core.PgColumn<{
2307
+ name: "player_character_id";
2308
+ tableName: "player_character_accessories";
2309
+ dataType: "string";
2310
+ columnType: "PgUUID";
2311
+ data: string;
2312
+ driverParam: string;
2313
+ notNull: true;
2314
+ hasDefault: false;
2315
+ isPrimaryKey: false;
2316
+ isAutoincrement: false;
2317
+ hasRuntimeDefault: false;
2318
+ enumValues: undefined;
2319
+ baseColumn: never;
2320
+ identity: undefined;
2321
+ generated: undefined;
2322
+ }, {}, {}>;
2323
+ accessoryComponentId: drizzle_orm_pg_core.PgColumn<{
2324
+ name: "accessory_component_id";
2325
+ tableName: "player_character_accessories";
2326
+ dataType: "string";
2327
+ columnType: "PgUUID";
2328
+ data: string;
2329
+ driverParam: string;
2330
+ notNull: true;
2331
+ hasDefault: false;
2332
+ isPrimaryKey: false;
2333
+ isAutoincrement: false;
2334
+ hasRuntimeDefault: false;
2335
+ enumValues: undefined;
2336
+ baseColumn: never;
2337
+ identity: undefined;
2338
+ generated: undefined;
2339
+ }, {}, {}>;
2340
+ slot: drizzle_orm_pg_core.PgColumn<{
2341
+ name: "slot";
2342
+ tableName: "player_character_accessories";
2343
+ dataType: "string";
2344
+ columnType: "PgVarchar";
2345
+ data: string;
2346
+ driverParam: string;
2347
+ notNull: true;
2348
+ hasDefault: false;
2349
+ isPrimaryKey: false;
2350
+ isAutoincrement: false;
2351
+ hasRuntimeDefault: false;
2352
+ enumValues: [string, ...string[]];
2353
+ baseColumn: never;
2354
+ identity: undefined;
2355
+ generated: undefined;
2356
+ }, {}, {
2357
+ length: 64;
2358
+ }>;
2359
+ equippedAt: drizzle_orm_pg_core.PgColumn<{
2360
+ name: "equipped_at";
2361
+ tableName: "player_character_accessories";
2362
+ dataType: "date";
2363
+ columnType: "PgTimestamp";
2364
+ data: Date;
2365
+ driverParam: string;
2366
+ notNull: true;
2367
+ hasDefault: true;
2368
+ isPrimaryKey: false;
2369
+ isAutoincrement: false;
2370
+ hasRuntimeDefault: false;
2371
+ enumValues: undefined;
2372
+ baseColumn: never;
2373
+ identity: undefined;
2374
+ generated: undefined;
2375
+ }, {}, {}>;
2376
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2377
+ name: "updated_at";
2378
+ tableName: "player_character_accessories";
2379
+ dataType: "date";
2380
+ columnType: "PgTimestamp";
2381
+ data: Date;
2382
+ driverParam: string;
2383
+ notNull: true;
2384
+ hasDefault: true;
2385
+ isPrimaryKey: false;
2386
+ isAutoincrement: false;
2387
+ hasRuntimeDefault: false;
2388
+ enumValues: undefined;
2389
+ baseColumn: never;
2390
+ identity: undefined;
2391
+ generated: undefined;
2392
+ }, {}, {}>;
2393
+ };
2394
+ dialect: "pg";
2395
+ }>;
2396
+
2397
+ declare const achievementIntervalEnum: drizzle_orm_pg_core.PgEnum<["daily", "weekly"]>;
2398
+ declare const achievements: drizzle_orm_pg_core.PgTableWithColumns<{
2399
+ name: "achievements";
2400
+ schema: undefined;
2401
+ columns: {
2402
+ id: drizzle_orm_pg_core.PgColumn<{
2403
+ name: "id";
2404
+ tableName: "achievements";
2405
+ dataType: "string";
2406
+ columnType: "PgVarchar";
2407
+ data: string;
2408
+ driverParam: string;
2409
+ notNull: true;
2410
+ hasDefault: false;
2411
+ isPrimaryKey: true;
2412
+ isAutoincrement: false;
2413
+ hasRuntimeDefault: false;
2414
+ enumValues: [string, ...string[]];
2415
+ baseColumn: never;
2416
+ identity: undefined;
2417
+ generated: undefined;
2418
+ }, {}, {
2419
+ length: 255;
2420
+ }>;
2421
+ title: drizzle_orm_pg_core.PgColumn<{
2422
+ name: "title";
2423
+ tableName: "achievements";
2424
+ dataType: "string";
2425
+ columnType: "PgVarchar";
2426
+ data: string;
2427
+ driverParam: string;
2428
+ notNull: true;
2429
+ hasDefault: false;
2430
+ isPrimaryKey: false;
2431
+ isAutoincrement: false;
2432
+ hasRuntimeDefault: false;
2433
+ enumValues: [string, ...string[]];
2434
+ baseColumn: never;
2435
+ identity: undefined;
2436
+ generated: undefined;
2437
+ }, {}, {
2438
+ length: 255;
2439
+ }>;
2440
+ description: drizzle_orm_pg_core.PgColumn<{
2441
+ name: "description";
2442
+ tableName: "achievements";
2443
+ dataType: "string";
2444
+ columnType: "PgText";
2445
+ data: string;
2446
+ driverParam: string;
2447
+ notNull: false;
2448
+ hasDefault: false;
2449
+ isPrimaryKey: false;
2450
+ isAutoincrement: false;
2451
+ hasRuntimeDefault: false;
2452
+ enumValues: [string, ...string[]];
2453
+ baseColumn: never;
2454
+ identity: undefined;
2455
+ generated: undefined;
2456
+ }, {}, {}>;
2457
+ intervalType: drizzle_orm_pg_core.PgColumn<{
2458
+ name: "interval_type";
2459
+ tableName: "achievements";
2460
+ dataType: "string";
2461
+ columnType: "PgEnumColumn";
2462
+ data: "daily" | "weekly";
2463
+ driverParam: string;
2464
+ notNull: true;
2465
+ hasDefault: false;
2466
+ isPrimaryKey: false;
2467
+ isAutoincrement: false;
2468
+ hasRuntimeDefault: false;
2469
+ enumValues: ["daily", "weekly"];
2470
+ baseColumn: never;
2471
+ identity: undefined;
2472
+ generated: undefined;
2473
+ }, {}, {}>;
2474
+ rewardCredits: drizzle_orm_pg_core.PgColumn<{
2475
+ name: "reward_credits";
2476
+ tableName: "achievements";
2477
+ dataType: "number";
2478
+ columnType: "PgInteger";
2479
+ data: number;
2480
+ driverParam: string | number;
2481
+ notNull: true;
2482
+ hasDefault: true;
2483
+ isPrimaryKey: false;
2484
+ isAutoincrement: false;
2485
+ hasRuntimeDefault: false;
2486
+ enumValues: undefined;
2487
+ baseColumn: never;
2488
+ identity: undefined;
2489
+ generated: undefined;
2490
+ }, {}, {}>;
2491
+ limitPerInterval: drizzle_orm_pg_core.PgColumn<{
2492
+ name: "limit_per_interval";
2493
+ tableName: "achievements";
2494
+ dataType: "number";
2495
+ columnType: "PgInteger";
2496
+ data: number;
2497
+ driverParam: string | number;
2498
+ notNull: true;
2499
+ hasDefault: true;
2500
+ isPrimaryKey: false;
2501
+ isAutoincrement: false;
2502
+ hasRuntimeDefault: false;
2503
+ enumValues: undefined;
2504
+ baseColumn: never;
2505
+ identity: undefined;
2506
+ generated: undefined;
2507
+ }, {}, {}>;
2508
+ completionType: drizzle_orm_pg_core.PgColumn<{
2509
+ name: "completion_type";
2510
+ tableName: "achievements";
2511
+ dataType: "string";
2512
+ columnType: "PgVarchar";
2513
+ data: string;
2514
+ driverParam: string;
2515
+ notNull: true;
2516
+ hasDefault: false;
2517
+ isPrimaryKey: false;
2518
+ isAutoincrement: false;
2519
+ hasRuntimeDefault: false;
2520
+ enumValues: [string, ...string[]];
2521
+ baseColumn: never;
2522
+ identity: undefined;
2523
+ generated: undefined;
2524
+ }, {}, {
2525
+ length: 50;
2526
+ }>;
2527
+ completionConfig: drizzle_orm_pg_core.PgColumn<{
2528
+ name: "completion_config";
2529
+ tableName: "achievements";
2530
+ dataType: "json";
2531
+ columnType: "PgJsonb";
2532
+ data: unknown;
2533
+ driverParam: unknown;
2534
+ notNull: true;
2535
+ hasDefault: true;
2536
+ isPrimaryKey: false;
2537
+ isAutoincrement: false;
2538
+ hasRuntimeDefault: false;
2539
+ enumValues: undefined;
2540
+ baseColumn: never;
2541
+ identity: undefined;
2542
+ generated: undefined;
2543
+ }, {}, {}>;
2544
+ scope: drizzle_orm_pg_core.PgColumn<{
2545
+ name: "scope";
2546
+ tableName: "achievements";
2547
+ dataType: "json";
2548
+ columnType: "PgJsonb";
2549
+ data: unknown;
2550
+ driverParam: unknown;
2551
+ notNull: true;
2552
+ hasDefault: true;
2553
+ isPrimaryKey: false;
2554
+ isAutoincrement: false;
2555
+ hasRuntimeDefault: false;
2556
+ enumValues: undefined;
2557
+ baseColumn: never;
2558
+ identity: undefined;
2559
+ generated: undefined;
2560
+ }, {}, {}>;
2561
+ active: drizzle_orm_pg_core.PgColumn<{
2562
+ name: "active";
2563
+ tableName: "achievements";
2564
+ dataType: "boolean";
2565
+ columnType: "PgBoolean";
2566
+ data: boolean;
2567
+ driverParam: boolean;
2568
+ notNull: true;
2569
+ hasDefault: true;
2570
+ isPrimaryKey: false;
2571
+ isAutoincrement: false;
2572
+ hasRuntimeDefault: false;
2573
+ enumValues: undefined;
2574
+ baseColumn: never;
2575
+ identity: undefined;
2576
+ generated: undefined;
2577
+ }, {}, {}>;
2578
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2579
+ name: "created_at";
2580
+ tableName: "achievements";
2581
+ dataType: "date";
2582
+ columnType: "PgTimestamp";
2583
+ data: Date;
2584
+ driverParam: string;
2585
+ notNull: false;
2586
+ hasDefault: true;
2587
+ isPrimaryKey: false;
2588
+ isAutoincrement: false;
2589
+ hasRuntimeDefault: false;
2590
+ enumValues: undefined;
2591
+ baseColumn: never;
2592
+ identity: undefined;
2593
+ generated: undefined;
2594
+ }, {}, {}>;
2595
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2596
+ name: "updated_at";
2597
+ tableName: "achievements";
2598
+ dataType: "date";
2599
+ columnType: "PgTimestamp";
2600
+ data: Date;
2601
+ driverParam: string;
2602
+ notNull: false;
2603
+ hasDefault: true;
2604
+ isPrimaryKey: false;
2605
+ isAutoincrement: false;
2606
+ hasRuntimeDefault: false;
2607
+ enumValues: undefined;
2608
+ baseColumn: never;
2609
+ identity: undefined;
2610
+ generated: undefined;
2611
+ }, {}, {}>;
2612
+ };
2613
+ dialect: "pg";
2614
+ }>;
2615
+ declare const DeveloperStatusResponseSchema: z.ZodObject<{
2616
+ status: z.ZodEnum<["none", "pending", "approved"]>;
2617
+ }, "strip", z.ZodTypeAny, {
2618
+ status: "none" | "pending" | "approved";
2619
+ }, {
2620
+ status: "none" | "pending" | "approved";
2621
+ }>;
2622
+ declare const UpsertGameMetadataSchema: z.ZodEffects<z.ZodObject<{
2623
+ displayName: z.ZodString;
2624
+ mapElementId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2625
+ platform: z.ZodEnum<["web", "godot", "unity"]>;
2626
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2627
+ gameType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["hosted", "external"]>>>;
2628
+ externalUrl: z.ZodOptional<z.ZodString>;
2629
+ }, "strip", z.ZodTypeAny, {
2630
+ displayName: string;
2631
+ gameType: "hosted" | "external";
2632
+ platform: "web" | "godot" | "unity";
2633
+ metadata: Record<string, unknown>;
2634
+ externalUrl?: string | undefined;
2635
+ mapElementId?: string | null | undefined;
2636
+ }, {
2637
+ displayName: string;
2638
+ platform: "web" | "godot" | "unity";
2639
+ gameType?: "hosted" | "external" | undefined;
2640
+ externalUrl?: string | undefined;
2641
+ mapElementId?: string | null | undefined;
2642
+ metadata?: Record<string, unknown> | undefined;
2643
+ }>, {
2644
+ displayName: string;
2645
+ gameType: "hosted" | "external";
2646
+ platform: "web" | "godot" | "unity";
2647
+ metadata: Record<string, unknown>;
2648
+ externalUrl?: string | undefined;
2649
+ mapElementId?: string | null | undefined;
2650
+ }, {
2651
+ displayName: string;
2652
+ platform: "web" | "godot" | "unity";
2653
+ gameType?: "hosted" | "external" | undefined;
2654
+ externalUrl?: string | undefined;
2655
+ mapElementId?: string | null | undefined;
2656
+ metadata?: Record<string, unknown> | undefined;
2657
+ }>;
2658
+ declare const ManifestV1Schema: z.ZodObject<{
2659
+ version: z.ZodString;
2660
+ bootMode: z.ZodEnum<["iframe", "module"]>;
2661
+ entryPoint: z.ZodEffects<z.ZodString, string, string>;
2662
+ /**
2663
+ * An array of relative paths to CSS stylesheets.
2664
+ * Currently, this property is ONLY utilized by the 'module' boot mode
2665
+ * (`apps/cademy/src/lib/loader/boot-module.ts`) to load external
2666
+ * stylesheets into the game's shadow DOM.
2667
+ *
2668
+ * This property is under review for potential deprecation and removal.
2669
+ * The 'module' boot mode itself has not yet seen significant adoption
2670
+ * or clear use-cases, and if support for module loading is removed in
2671
+ * the future, this 'styles' property would become obsolete.
2672
+ *
2673
+ * If module-based games need styling, alternative approaches might involve
2674
+ * bundling CSS within their JavaScript or managing style injection internally.
2675
+ */
2676
+ styles: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodString, "many">>, string[] | undefined, string[] | undefined>;
2677
+ /**
2678
+ * Specifies the game or development platform.
2679
+ * Current values include 'web', 'godot', and 'unity'.
2680
+ * The default in the database is 'web'.
2681
+ *
2682
+ * IMPORTANT: This property is NOT CURRENTLY USED by the core loader
2683
+ * or runtime systems in any functional way. It is present in the manifest
2684
+ * but does not drive any specific behavior in `boot-iframe.ts` or
2685
+ * `boot-module.ts` beyond being a piece of metadata.
2686
+ *
2687
+ * Potential Future Uses (Speculative):
2688
+ * - Analytics: Could be used to gather stats on platform popularity/usage.
2689
+ * - Developer Portal: Might inform UI/UX in the dev portal, e.g., showing
2690
+ * platform-specific guides or settings.
2691
+ * - Loader Optimizations: In the future, the loader could potentially use this
2692
+ * to apply platform-specific loading strategies or workarounds, though this
2693
+ * is unlikely given the current generic boot process.
2694
+ * - Asset Pipeline: Could hint to future asset pipeline tools about expected
2695
+ * project structures or build artifacts for different platforms.
2696
+ *
2697
+ * The field is intentionally kept somewhat generic. If finer-grained
2698
+ * distinctions are ever needed (e.g., specific web frameworks like 'phaser',
2699
+ * 'three'), this schema might need to be revisited or a separate
2700
+ * 'platformVersion' or 'framework' field could be added.
2701
+ */
2702
+ platform: z.ZodEnum<["web", "godot", "unity"]>;
2703
+ createdAt: z.ZodString;
2704
+ }, "strip", z.ZodTypeAny, {
2705
+ createdAt: string;
2706
+ version: string;
2707
+ platform: "web" | "godot" | "unity";
2708
+ bootMode: "iframe" | "module";
2709
+ entryPoint: string;
2710
+ styles?: string[] | undefined;
2711
+ }, {
2712
+ createdAt: string;
2713
+ version: string;
2714
+ platform: "web" | "godot" | "unity";
2715
+ bootMode: "iframe" | "module";
2716
+ entryPoint: string;
2717
+ styles?: string[] | undefined;
2718
+ }>;
2719
+ declare const InsertItemSchema: drizzle_zod.BuildSchema<"insert", {
2720
+ id: drizzle_orm_pg_core.PgColumn<{
2721
+ name: "id";
2722
+ tableName: "items";
2723
+ dataType: "string";
2724
+ columnType: "PgUUID";
2725
+ data: string;
2726
+ driverParam: string;
2727
+ notNull: true;
2728
+ hasDefault: true;
2729
+ isPrimaryKey: true;
2730
+ isAutoincrement: false;
2731
+ hasRuntimeDefault: false;
2732
+ enumValues: undefined;
2733
+ baseColumn: never;
2734
+ identity: undefined;
2735
+ generated: undefined;
2736
+ }, {}, {}>;
2737
+ slug: drizzle_orm_pg_core.PgColumn<{
2738
+ name: "slug";
2739
+ tableName: "items";
2740
+ dataType: "string";
2741
+ columnType: "PgText";
2742
+ data: string;
2743
+ driverParam: string;
2744
+ notNull: true;
2745
+ hasDefault: false;
2746
+ isPrimaryKey: false;
2747
+ isAutoincrement: false;
2748
+ hasRuntimeDefault: false;
2749
+ enumValues: [string, ...string[]];
2750
+ baseColumn: never;
2751
+ identity: undefined;
2752
+ generated: undefined;
2753
+ }, {}, {}>;
2754
+ gameId: drizzle_orm_pg_core.PgColumn<{
2755
+ name: "game_id";
2756
+ tableName: "items";
2757
+ dataType: "string";
2758
+ columnType: "PgUUID";
2759
+ data: string;
2760
+ driverParam: string;
2761
+ notNull: false;
2762
+ hasDefault: false;
2763
+ isPrimaryKey: false;
2764
+ isAutoincrement: false;
2765
+ hasRuntimeDefault: false;
2766
+ enumValues: undefined;
2767
+ baseColumn: never;
2768
+ identity: undefined;
2769
+ generated: undefined;
2770
+ }, {}, {}>;
2771
+ displayName: drizzle_orm_pg_core.PgColumn<{
2772
+ name: "display_name";
2773
+ tableName: "items";
2774
+ dataType: "string";
2775
+ columnType: "PgText";
2776
+ data: string;
2777
+ driverParam: string;
2778
+ notNull: true;
2779
+ hasDefault: false;
2780
+ isPrimaryKey: false;
2781
+ isAutoincrement: false;
2782
+ hasRuntimeDefault: false;
2783
+ enumValues: [string, ...string[]];
2784
+ baseColumn: never;
2785
+ identity: undefined;
2786
+ generated: undefined;
2787
+ }, {}, {}>;
2788
+ description: drizzle_orm_pg_core.PgColumn<{
2789
+ name: "description";
2790
+ tableName: "items";
2791
+ dataType: "string";
2792
+ columnType: "PgText";
2793
+ data: string;
2794
+ driverParam: string;
2795
+ notNull: false;
2796
+ hasDefault: false;
2797
+ isPrimaryKey: false;
2798
+ isAutoincrement: false;
2799
+ hasRuntimeDefault: false;
2800
+ enumValues: [string, ...string[]];
2801
+ baseColumn: never;
2802
+ identity: undefined;
2803
+ generated: undefined;
2804
+ }, {}, {}>;
2805
+ type: drizzle_orm_pg_core.PgColumn<{
2806
+ name: "type";
2807
+ tableName: "items";
2808
+ dataType: "string";
2809
+ columnType: "PgEnumColumn";
2810
+ data: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
2811
+ driverParam: string;
2812
+ notNull: true;
2813
+ hasDefault: true;
2814
+ isPrimaryKey: false;
2815
+ isAutoincrement: false;
2816
+ hasRuntimeDefault: false;
2817
+ enumValues: ["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"];
2818
+ baseColumn: never;
2819
+ identity: undefined;
2820
+ generated: undefined;
2821
+ }, {}, {}>;
2822
+ isPlaceable: drizzle_orm_pg_core.PgColumn<{
2823
+ name: "is_placeable";
2824
+ tableName: "items";
2825
+ dataType: "boolean";
2826
+ columnType: "PgBoolean";
2827
+ data: boolean;
2828
+ driverParam: boolean;
2829
+ notNull: true;
2830
+ hasDefault: true;
2831
+ isPrimaryKey: false;
2832
+ isAutoincrement: false;
2833
+ hasRuntimeDefault: false;
2834
+ enumValues: undefined;
2835
+ baseColumn: never;
2836
+ identity: undefined;
2837
+ generated: undefined;
2838
+ }, {}, {}>;
2839
+ imageUrl: drizzle_orm_pg_core.PgColumn<{
2840
+ name: "image_url";
2841
+ tableName: "items";
2842
+ dataType: "string";
2843
+ columnType: "PgText";
2844
+ data: string;
2845
+ driverParam: string;
2846
+ notNull: false;
2847
+ hasDefault: false;
2848
+ isPrimaryKey: false;
2849
+ isAutoincrement: false;
2850
+ hasRuntimeDefault: false;
2851
+ enumValues: [string, ...string[]];
2852
+ baseColumn: never;
2853
+ identity: undefined;
2854
+ generated: undefined;
2855
+ }, {}, {}>;
2856
+ metadata: drizzle_orm_pg_core.PgColumn<{
2857
+ name: "metadata";
2858
+ tableName: "items";
2859
+ dataType: "json";
2860
+ columnType: "PgJsonb";
2861
+ data: unknown;
2862
+ driverParam: unknown;
2863
+ notNull: false;
2864
+ hasDefault: true;
2865
+ isPrimaryKey: false;
2866
+ isAutoincrement: false;
2867
+ hasRuntimeDefault: false;
2868
+ enumValues: undefined;
2869
+ baseColumn: never;
2870
+ identity: undefined;
2871
+ generated: undefined;
2872
+ }, {}, {}>;
2873
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2874
+ name: "created_at";
2875
+ tableName: "items";
2876
+ dataType: "date";
2877
+ columnType: "PgTimestamp";
2878
+ data: Date;
2879
+ driverParam: string;
2880
+ notNull: true;
2881
+ hasDefault: true;
2882
+ isPrimaryKey: false;
2883
+ isAutoincrement: false;
2884
+ hasRuntimeDefault: false;
2885
+ enumValues: undefined;
2886
+ baseColumn: never;
2887
+ identity: undefined;
2888
+ generated: undefined;
2889
+ }, {}, {}>;
2890
+ }, {
2891
+ imageUrl: z.ZodNullable<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>>;
2892
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2893
+ }>;
2894
+ declare const UpdateItemSchema: z.ZodObject<Omit<{
2895
+ id: z.ZodOptional<z.ZodString>;
2896
+ slug: z.ZodOptional<z.ZodString>;
2897
+ gameId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2898
+ displayName: z.ZodOptional<z.ZodString>;
2899
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2900
+ type: z.ZodOptional<z.ZodEnum<["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"]>>;
2901
+ isPlaceable: z.ZodOptional<z.ZodBoolean>;
2902
+ imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2903
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2904
+ createdAt: z.ZodOptional<z.ZodDate>;
2905
+ }, "id" | "createdAt">, "strip", z.ZodTypeAny, {
2906
+ description?: string | null | undefined;
2907
+ displayName?: string | undefined;
2908
+ slug?: string | undefined;
2909
+ metadata?: Record<string, unknown> | undefined;
2910
+ gameId?: string | null | undefined;
2911
+ type?: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other" | undefined;
2912
+ isPlaceable?: boolean | undefined;
2913
+ imageUrl?: string | null | undefined;
2914
+ }, {
2915
+ description?: string | null | undefined;
2916
+ displayName?: string | undefined;
2917
+ slug?: string | undefined;
2918
+ metadata?: Record<string, unknown> | undefined;
2919
+ gameId?: string | null | undefined;
2920
+ type?: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other" | undefined;
2921
+ isPlaceable?: boolean | undefined;
2922
+ imageUrl?: string | null | undefined;
2923
+ }>;
2924
+ declare const InsertCurrencySchema: z.ZodObject<Omit<{
2925
+ id: z.ZodOptional<z.ZodString>;
2926
+ itemId: z.ZodString;
2927
+ symbol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2928
+ isPrimary: z.ZodDefault<z.ZodBoolean>;
2929
+ createdAt: z.ZodOptional<z.ZodDate>;
2930
+ updatedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
2931
+ }, "id" | "createdAt" | "updatedAt">, "strip", z.ZodTypeAny, {
2932
+ itemId: string;
2933
+ isPrimary: boolean;
2934
+ symbol?: string | null | undefined;
2935
+ }, {
2936
+ itemId: string;
2937
+ symbol?: string | null | undefined;
2938
+ isPrimary?: boolean | undefined;
2939
+ }>;
2940
+ declare const UpdateCurrencySchema: z.ZodObject<{
2941
+ symbol: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2942
+ itemId: z.ZodOptional<z.ZodString>;
2943
+ isPrimary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2944
+ }, "strip", z.ZodTypeAny, {
2945
+ symbol?: string | null | undefined;
2946
+ itemId?: string | undefined;
2947
+ isPrimary?: boolean | undefined;
2948
+ }, {
2949
+ symbol?: string | null | undefined;
2950
+ itemId?: string | undefined;
2951
+ isPrimary?: boolean | undefined;
2952
+ }>;
2953
+ declare const InsertShopListingSchema: z.ZodObject<Omit<{
2954
+ id: z.ZodOptional<z.ZodString>;
2955
+ itemId: z.ZodString;
2956
+ currencyId: z.ZodString;
2957
+ price: z.ZodNumber;
2958
+ sellBackPercentage: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2959
+ stock: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
2960
+ isActive: z.ZodDefault<z.ZodBoolean>;
2961
+ availableFrom: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
2962
+ availableUntil: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
2963
+ createdAt: z.ZodOptional<z.ZodDate>;
2964
+ updatedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
2965
+ }, "id" | "createdAt" | "updatedAt">, "strip", z.ZodTypeAny, {
2966
+ itemId: string;
2967
+ currencyId: string;
2968
+ price: number;
2969
+ isActive: boolean;
2970
+ sellBackPercentage?: number | null | undefined;
2971
+ stock?: number | null | undefined;
2972
+ availableFrom?: Date | null | undefined;
2973
+ availableUntil?: Date | null | undefined;
2974
+ }, {
2975
+ itemId: string;
2976
+ currencyId: string;
2977
+ price: number;
2978
+ sellBackPercentage?: number | null | undefined;
2979
+ stock?: number | null | undefined;
2980
+ isActive?: boolean | undefined;
2981
+ availableFrom?: Date | null | undefined;
2982
+ availableUntil?: Date | null | undefined;
2983
+ }>;
2984
+ declare const UpdateShopListingSchema: z.ZodObject<{
2985
+ itemId: z.ZodOptional<z.ZodString>;
2986
+ currencyId: z.ZodOptional<z.ZodString>;
2987
+ price: z.ZodOptional<z.ZodNumber>;
2988
+ sellBackPercentage: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
2989
+ stock: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
2990
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2991
+ availableFrom: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodDate>>>;
2992
+ availableUntil: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodDate>>>;
2993
+ }, "strip", z.ZodTypeAny, {
2994
+ itemId?: string | undefined;
2995
+ currencyId?: string | undefined;
2996
+ price?: number | undefined;
2997
+ sellBackPercentage?: number | null | undefined;
2998
+ stock?: number | null | undefined;
2999
+ isActive?: boolean | undefined;
3000
+ availableFrom?: Date | null | undefined;
3001
+ availableUntil?: Date | null | undefined;
3002
+ }, {
3003
+ itemId?: string | undefined;
3004
+ currencyId?: string | undefined;
3005
+ price?: number | undefined;
3006
+ sellBackPercentage?: number | null | undefined;
3007
+ stock?: number | null | undefined;
3008
+ isActive?: boolean | undefined;
3009
+ availableFrom?: Date | null | undefined;
3010
+ availableUntil?: Date | null | undefined;
3011
+ }>;
3012
+ /**
3013
+ * Achievement Completion Types
3014
+ */
3015
+ declare const ACHIEVEMENT_COMPLETION_TYPES: readonly ["time_played_session", "interaction", "leaderboard_rank"];
3016
+ type AchievementCompletionType = (typeof ACHIEVEMENT_COMPLETION_TYPES)[number];
3017
+
3018
+ type CharacterComponent = typeof characterComponents.$inferSelect;
3019
+ type PlayerCharacter = typeof playerCharacters.$inferSelect & {
3020
+ accessories?: PlayerCharacterAccessory[];
3021
+ };
3022
+ type PlayerCharacterAccessory = typeof playerCharacterAccessories.$inferSelect;
3023
+ type GameRow = typeof games.$inferSelect;
3024
+ type BaseGame = Omit<GameRow, 'gameType' | 'assetBundleBase' | 'externalUrl'>;
3025
+ type HostedGame = BaseGame & {
3026
+ gameType: 'hosted';
3027
+ assetBundleBase: string;
3028
+ externalUrl: null;
3029
+ };
3030
+ type ExternalGame = BaseGame & {
3031
+ gameType: 'external';
3032
+ assetBundleBase: null;
3033
+ externalUrl: string;
3034
+ };
3035
+ type Game = HostedGame | ExternalGame;
3036
+ type GameSession = typeof gameSessions.$inferSelect;
3037
+ type GameStateData = Record<string, unknown>;
3038
+ type UpsertGameMetadataInput = z.infer<typeof UpsertGameMetadataSchema>;
3039
+ type Item = typeof items.$inferSelect;
3040
+ type InventoryItem = typeof inventoryItems.$inferSelect;
3041
+ type Currency = typeof currencies.$inferSelect;
3042
+ type ShopListing = typeof shopListings.$inferSelect;
3043
+ type InsertItemInput = z.infer<typeof InsertItemSchema>;
3044
+ type UpdateItemInput = z.infer<typeof UpdateItemSchema>;
3045
+ type InsertCurrencyInput = z.infer<typeof InsertCurrencySchema>;
3046
+ type UpdateCurrencyInput = z.infer<typeof UpdateCurrencySchema>;
3047
+ type InsertShopListingInput = z.infer<typeof InsertShopListingSchema>;
3048
+ type UpdateShopListingInput = z.infer<typeof UpdateShopListingSchema>;
3049
+ interface PlaceableItemMetadata {
3050
+ tilesWide?: number;
3051
+ tilesHigh?: number;
3052
+ flippable?: boolean;
3053
+ [key: string]: unknown;
3054
+ }
3055
+ type Map = typeof maps.$inferSelect;
3056
+ type MapElement = typeof mapElements.$inferSelect;
3057
+ type MapObject = typeof mapObjects.$inferSelect;
3058
+ interface MapData {
3059
+ id: string;
3060
+ identifier: string;
3061
+ displayName: string;
3062
+ description?: string;
3063
+ metadata?: Record<string, unknown>;
3064
+ }
3065
+ interface CreateMapObjectData {
3066
+ itemId: string;
3067
+ worldX: number;
3068
+ worldY: number;
3069
+ width?: number;
3070
+ height?: number;
3071
+ rotation?: number;
3072
+ scale?: number;
3073
+ metadata?: Record<string, unknown>;
3074
+ }
3075
+
3076
+ type User = typeof users.$inferSelect;
3077
+ type UserRoleEnumType = (typeof userRoleEnum.enumValues)[number];
3078
+ type DeveloperStatusResponse = z.infer<typeof DeveloperStatusResponseSchema>;
3079
+ type DeveloperStatusValue = DeveloperStatusResponse['status'];
3080
+ /**
3081
+ * User data with authentication provider information.
3082
+ * Returned by the /users/me endpoint with additional auth context.
3083
+ */
3084
+ type AuthenticatedUser = User & {
3085
+ /** Whether the user authenticated via Timeback SSO */
3086
+ hasTimebackAccount: boolean;
3087
+ };
3088
+
3089
+ /**
3090
+ * Cross-Domain Composite Types
3091
+ * Types that combine data from multiple domains
3092
+ */
3093
+ type ManifestV1 = z.infer<typeof ManifestV1Schema>;
3094
+ /**
3095
+ * Basic user information in the shape of the claims from identity providers
3096
+ */
3097
+ interface UserInfo {
3098
+ /** Unique user identifier (sub claim from JWT) */
3099
+ sub: string;
3100
+ /** User's email address */
3101
+ email: string;
3102
+ /** User's display name */
3103
+ name: string;
3104
+ /** Whether the email has been verified */
3105
+ email_verified: boolean;
3106
+ /** Optional given name (first name) */
3107
+ given_name?: string;
3108
+ /** Optional family name (last name) */
3109
+ family_name?: string;
3110
+ /** Additional user attributes from the identity provider */
3111
+ [key: string]: unknown;
3112
+ }
3113
+ /**
3114
+ * Character-related Composite Types
3115
+ * Types that combine character component data with sprite sheet information
3116
+ */
3117
+ type CharacterComponentWithSpriteUrl = CharacterComponent & {
3118
+ spriteSheetUrl: string;
3119
+ };
3120
+ type InventoryItemWithItem = Omit<InventoryItem, 'itemId'> & {
3121
+ item: Item;
3122
+ };
3123
+ type HostedGameWithManifest = HostedGame & {
3124
+ manifest: ManifestV1;
3125
+ };
3126
+ type FetchedGame = HostedGameWithManifest | GameRow;
3127
+ /**
3128
+ * Map-related Composite Types
3129
+ * Types that combine map, game, and item data for rendering and interaction
3130
+ */
3131
+ interface MapElementWithGame extends MapElement {
3132
+ game: Pick<Game, 'id' | 'displayName'> | null;
3133
+ }
3134
+ interface MapObjectWithItem extends MapObject {
3135
+ item: Pick<Item, 'id' | 'slug' | 'displayName' | 'description' | 'imageUrl' | 'isPlaceable'> & {
3136
+ metadata: PlaceableItemMetadata;
3137
+ };
3138
+ }
3139
+ /**
3140
+ * Shop-related Composite Types
3141
+ * Types that combine inventory, currency, and shop listing data for commerce operations
3142
+ */
3143
+ interface ShopDisplayItem extends Omit<Item, 'createdAt'> {
3144
+ listingId: string;
3145
+ shopPrice: number;
3146
+ currencyId: string;
3147
+ currencySymbol?: string | null;
3148
+ currencyDisplayName?: string | null;
3149
+ currencyImageUrl?: string | null;
3150
+ stock?: number | null;
3151
+ sellBackPercentage?: number | null;
3152
+ }
3153
+ interface ShopCurrency {
3154
+ id: string;
3155
+ symbol: string | null;
3156
+ isPrimary: boolean;
3157
+ displayName?: string | null;
3158
+ imageUrl?: string | null;
3159
+ }
3160
+ interface ShopViewResponse {
3161
+ shopItems: ShopDisplayItem[];
3162
+ currencies: ShopCurrency[];
3163
+ }
3164
+ /**
3165
+ * Leaderboard Composite Types
3166
+ * Types that combine leaderboard, user, and game data
3167
+ */
3168
+ interface GameLeaderboardEntry {
3169
+ rank: number;
3170
+ userId: string;
3171
+ username: string;
3172
+ userImage?: string | null;
3173
+ score: number;
3174
+ achievedAt: Date;
3175
+ metadata?: Record<string, unknown>;
3176
+ gameId: string;
3177
+ gameTitle: string;
3178
+ gameSlug: string;
3179
+ }
3180
+
3181
+ type DeveloperKey = typeof developerKeys.$inferSelect;
3182
+
3183
+ type UserLevel = typeof userLevels.$inferSelect;
3184
+ type LevelConfig = typeof levelConfigs.$inferSelect;
3185
+ type UserLevelWithConfig = UserLevel & {
3186
+ xpToNextLevel: number;
3187
+ nextLevelConfig?: LevelConfig;
3188
+ };
3189
+ interface LeaderboardOptions {
3190
+ timeframe?: 'all_time' | 'monthly' | 'weekly' | 'daily';
3191
+ limit?: number;
3192
+ offset?: number;
3193
+ gameId?: string;
3194
+ }
3195
+ interface LeaderboardEntry {
3196
+ rank: number;
3197
+ userId: string;
3198
+ username: string;
3199
+ userImage?: string | null;
3200
+ score: number;
3201
+ achievedAt: Date;
3202
+ metadata?: Record<string, unknown>;
3203
+ gameId?: string;
3204
+ gameTitle?: string;
3205
+ gameSlug?: string;
3206
+ }
3207
+ interface UserRank {
3208
+ rank: number;
3209
+ totalPlayers: number;
3210
+ score: number;
3211
+ percentile: number;
3212
+ }
3213
+ interface UserRankResponse {
3214
+ rank: number;
3215
+ score: number;
3216
+ userId: string;
3217
+ }
3218
+ interface UserScore$1 {
3219
+ id: string;
3220
+ score: number;
3221
+ achievedAt: Date;
3222
+ metadata?: Record<string, unknown>;
3223
+ gameId: string;
3224
+ gameTitle: string;
3225
+ gameSlug: string;
3226
+ }
3227
+
3228
+ type SpriteTemplate = typeof spriteTemplates.$inferSelect;
3229
+ interface SpriteTemplateData {
3230
+ tileSize: number;
3231
+ tileHeight: number;
3232
+ columns: number;
3233
+ rows: number;
3234
+ spacing: number;
3235
+ animations: {
3236
+ base_right: {
3237
+ row: number;
3238
+ frameStart: number;
3239
+ numFrames: number;
3240
+ fps: number;
3241
+ };
3242
+ base_up: {
3243
+ row: number;
3244
+ frameStart: number;
3245
+ numFrames: number;
3246
+ fps: number;
3247
+ };
3248
+ base_left: {
3249
+ row: number;
3250
+ frameStart: number;
3251
+ numFrames: number;
3252
+ fps: number;
3253
+ };
3254
+ base_down: {
3255
+ row: number;
3256
+ frameStart: number;
3257
+ numFrames: number;
3258
+ fps: number;
3259
+ };
3260
+ idle_right: {
3261
+ row: number;
3262
+ frameStart: number;
3263
+ numFrames: number;
3264
+ fps: number;
3265
+ };
3266
+ walk_right: {
3267
+ row: number;
3268
+ frameStart: number;
3269
+ numFrames: number;
3270
+ fps: number;
3271
+ };
3272
+ idle_up: {
3273
+ row: number;
3274
+ frameStart: number;
3275
+ numFrames: number;
3276
+ fps: number;
3277
+ };
3278
+ walk_up: {
3279
+ row: number;
3280
+ frameStart: number;
3281
+ numFrames: number;
3282
+ fps: number;
3283
+ };
3284
+ idle_left: {
3285
+ row: number;
3286
+ frameStart: number;
3287
+ numFrames: number;
3288
+ fps: number;
3289
+ };
3290
+ walk_left: {
3291
+ row: number;
3292
+ frameStart: number;
3293
+ numFrames: number;
3294
+ fps: number;
3295
+ };
3296
+ idle_down: {
3297
+ row: number;
3298
+ frameStart: number;
3299
+ numFrames: number;
3300
+ fps: number;
3301
+ };
3302
+ walk_down: {
3303
+ row: number;
3304
+ frameStart: number;
3305
+ numFrames: number;
3306
+ fps: number;
3307
+ };
3308
+ };
3309
+ }
3310
+ type TodayXpResponse = {
3311
+ xp: number;
3312
+ date: string;
3313
+ };
3314
+ type TotalXpResponse = {
3315
+ totalXp: number;
3316
+ };
3317
+ type XpHistoryResponse = {
3318
+ history: Array<{
3319
+ date: string;
3320
+ xp: number;
3321
+ }>;
3322
+ };
3323
+
3324
+ type AchievementIntervalType = (typeof achievementIntervalEnum.enumValues)[number];
3325
+ type Achievement = typeof achievements.$inferSelect;
3326
+ /**
3327
+ * Current-interval achievement with computed status and window metadata
3328
+ */
3329
+ interface AchievementCurrent {
3330
+ id: string;
3331
+ title: string;
3332
+ description?: string | null;
3333
+ intervalType: AchievementIntervalType;
3334
+ rewardCredits: number;
3335
+ limitPerInterval: number;
3336
+ completionType: AchievementCompletionType;
3337
+ completionConfig: Record<string, unknown>;
3338
+ scope: Record<string, unknown>;
3339
+ active: boolean;
3340
+ createdAt?: Date;
3341
+ updatedAt?: Date;
3342
+ status: 'available' | 'completed';
3343
+ intervalKey: string;
3344
+ windowStart: string;
3345
+ windowEnd: string;
3346
+ }
3347
+ /**
3348
+ * Historical entry representing a prior claim within an interval
3349
+ */
3350
+ interface AchievementHistoryEntry {
3351
+ achievementId: string;
3352
+ title: string;
3353
+ rewardCredits: number;
3354
+ createdAt: string;
3355
+ intervalKey: string;
3356
+ }
3357
+ /**
3358
+ * Response returned when submitting achievement progress
3359
+ */
3360
+ interface AchievementProgressResponse {
3361
+ achievementId: string;
3362
+ status: 'completed' | 'already_completed';
3363
+ rewardCredits: number;
3364
+ intervalKey: string;
3365
+ createdAt: string;
3366
+ }
3367
+
3368
+ declare const AuthProvider: {
3369
+ readonly TIMEBACK: "TIMEBACK";
3370
+ };
3371
+
3372
+ /**
3373
+ * OAuth 2.0 implementation for the Playcademy SDK
3374
+ */
3375
+
3376
+ /**
3377
+ * Parses an OAuth state parameter to extract CSRF token and any encoded data.
3378
+ *
3379
+ * @param state - The OAuth state parameter to parse
3380
+ * @returns Object containing CSRF token and optional decoded data
3381
+ */
3382
+ declare function parseOAuthState(state: string): {
3383
+ csrfToken: string;
3384
+ data?: Record<string, string>;
3385
+ };
3386
+
3387
+ /**
3388
+ * Response type for the realtime token API
3389
+ */
3390
+ interface RealtimeTokenResponse {
3391
+ token: string;
3392
+ }
3393
+
3394
+ /**
3395
+ * Cache configuration types for runtime customization
3396
+ */
3397
+ /**
3398
+ * Runtime configuration for TTL cache behavior
3399
+ */
3400
+ interface TTLCacheConfig {
3401
+ /** Time-to-live in milliseconds. Set to 0 to disable caching for this call. */
3402
+ ttl?: number;
3403
+ /** Force refresh, bypassing cache */
3404
+ force?: boolean;
3405
+ /** Skip cache and fetch fresh data (alias for force) */
3406
+ skipCache?: boolean;
3407
+ }
3408
+ /**
3409
+ * Runtime configuration for cooldown cache behavior
3410
+ */
3411
+ interface CooldownCacheConfig {
3412
+ /** Cooldown period in milliseconds. Set to 0 to disable cooldown for this call. */
3413
+ cooldown?: number;
3414
+ /** Force refresh, bypassing cooldown */
3415
+ force?: boolean;
3416
+ }
3417
+
3418
+ interface CharacterComponentsOptions {
3419
+ /**
3420
+ * Optional level filter for components
3421
+ * When provided, only components available at this level or below are returned
3422
+ */
3423
+ level?: number;
3424
+ /**
3425
+ * Whether to bypass the cache and force a fresh API request
3426
+ * Default: false (use cache when available)
3427
+ */
3428
+ skipCache?: boolean;
3429
+ }
3430
+ interface CreateCharacterData {
3431
+ bodyComponentId: string;
3432
+ eyesComponentId: string;
3433
+ hairstyleComponentId: string;
3434
+ outfitComponentId: string;
3435
+ }
3436
+ interface UpdateCharacterData {
3437
+ bodyComponentId?: string;
3438
+ eyesComponentId?: string;
3439
+ hairstyleComponentId?: string;
3440
+ outfitComponentId?: string;
3441
+ }
3442
+
3443
+ interface ScoreSubmission {
3444
+ id: string;
3445
+ score: number;
3446
+ achievedAt: Date;
3447
+ }
3448
+
3449
+ /**
3450
+ * Combined response type for summary method
3451
+ */
3452
+ type XpSummaryResponse = {
3453
+ today: TodayXpResponse;
3454
+ total: TotalXpResponse;
3455
+ };
3456
+
3457
+ interface UserScore {
3458
+ id: string;
3459
+ score: number;
3460
+ achievedAt: Date;
3461
+ metadata?: Record<string, unknown>;
3462
+ gameId: string;
3463
+ gameTitle: string;
3464
+ gameSlug: string;
3465
+ }
3466
+
3467
+ /**
3468
+ * @fileoverview Playcademy Messaging System
3469
+ *
3470
+ * This file implements a unified messaging system for the Playcademy platform that handles
3471
+ * communication between different contexts:
3472
+ *
3473
+ * 1. **Iframe-to-Parent Communication**: When games run inside iframes (production/development),
3474
+ * they need to communicate with the parent window using postMessage API
3475
+ *
3476
+ * 2. **Local Communication**: When games run in the same context (local development),
3477
+ * they use CustomEvents for internal messaging
3478
+ *
3479
+ * The system automatically detects the runtime environment and chooses the appropriate
3480
+ * transport method, abstracting this complexity from the developer.
3481
+ *
3482
+ * **Architecture Overview**:
3483
+ * - Games run in iframes for security and isolation
3484
+ * - Parent window (Playcademy shell) manages game lifecycle
3485
+ * - Messages flow bidirectionally between parent and iframe
3486
+ * - Local development mode simulates this architecture without iframes
3487
+ */
3488
+
3489
+ /**
3490
+ * Enumeration of all message types used in the Playcademy messaging system.
3491
+ *
3492
+ * **Message Flow Patterns**:
3493
+ *
3494
+ * **Parent → Game (Overworld → Game)**:
3495
+ * - INIT: Provides game with authentication token and configuration
3496
+ * - TOKEN_REFRESH: Updates game's authentication token before expiry
3497
+ * - PAUSE/RESUME: Controls game execution state
3498
+ * - FORCE_EXIT: Immediately terminates the game
3499
+ * - OVERLAY: Shows/hides UI overlays over the game
3500
+ *
3501
+ * **Game → Parent (Game → Overworld)**:
3502
+ * - READY: Game has loaded and is ready to receive messages
3503
+ * - EXIT: Game requests to be closed (user clicked exit, game ended, etc.)
3504
+ * - TELEMETRY: Game reports performance metrics (FPS, memory usage, etc.)
3505
+ */
3506
+ declare enum MessageEvents {
3507
+ /**
3508
+ * Initializes the game with authentication context and configuration.
3509
+ * Sent immediately after game iframe loads.
3510
+ * Payload:
3511
+ * - `baseUrl`: string
3512
+ * - `token`: string
3513
+ * - `gameId`: string
3514
+ */
3515
+ INIT = "PLAYCADEMY_INIT",
3516
+ /**
3517
+ * Updates the game's authentication token before it expires.
3518
+ * Sent periodically to maintain valid authentication.
3519
+ * Payload:
3520
+ * - `token`: string
3521
+ * - `exp`: number
3522
+ */
3523
+ TOKEN_REFRESH = "PLAYCADEMY_TOKEN_REFRESH",
3524
+ /**
3525
+ * Pauses game execution (e.g., when user switches tabs).
3526
+ * Game should pause timers, animations, and user input.
3527
+ * Payload: void
3528
+ */
3529
+ PAUSE = "PLAYCADEMY_PAUSE",
3530
+ /**
3531
+ * Resumes game execution after being paused.
3532
+ * Game should restore timers, animations, and user input.
3533
+ * Payload: void
3534
+ */
3535
+ RESUME = "PLAYCADEMY_RESUME",
3536
+ /**
3537
+ * Forces immediate game termination (emergency exit).
3538
+ * Game should clean up resources and exit immediately.
3539
+ * Payload: void
3540
+ */
3541
+ FORCE_EXIT = "PLAYCADEMY_FORCE_EXIT",
3542
+ /**
3543
+ * Shows or hides UI overlays over the game.
3544
+ * Game may need to pause or adjust rendering accordingly.
3545
+ * Payload: boolean (true = show overlay, false = hide overlay)
3546
+ */
3547
+ OVERLAY = "PLAYCADEMY_OVERLAY",
3548
+ /**
3549
+ * Game has finished loading and is ready to receive messages.
3550
+ * Sent once after game initialization is complete.
3551
+ * Payload: void
3552
+ */
3553
+ READY = "PLAYCADEMY_READY",
3554
+ /**
3555
+ * Game requests to be closed/exited.
3556
+ * Sent when user clicks exit button or game naturally ends.
3557
+ * Payload: void
3558
+ */
3559
+ EXIT = "PLAYCADEMY_EXIT",
3560
+ /**
3561
+ * Game reports performance telemetry data.
3562
+ * Sent periodically for monitoring and analytics.
3563
+ * Payload:
3564
+ * - `fps`: number
3565
+ * - `mem`: number
3566
+ */
3567
+ TELEMETRY = "PLAYCADEMY_TELEMETRY",
3568
+ /**
3569
+ * Game reports key events to parent.
3570
+ * Sent when certain keys are pressed within the game iframe.
3571
+ * Payload:
3572
+ * - `key`: string
3573
+ * - `code?`: string
3574
+ * - `type`: 'keydown' | 'keyup'
3575
+ */
3576
+ KEY_EVENT = "PLAYCADEMY_KEY_EVENT",
3577
+ /**
3578
+ * Notifies about authentication state changes.
3579
+ * Can be sent in both directions depending on auth flow.
3580
+ * Payload:
3581
+ * - `authenticated`: boolean
3582
+ * - `user`: UserInfo | null
3583
+ * - `error`: Error | null
3584
+ */
3585
+ AUTH_STATE_CHANGE = "PLAYCADEMY_AUTH_STATE_CHANGE",
3586
+ /**
3587
+ * OAuth callback data from popup/new-tab windows.
3588
+ * Sent from popup window back to parent after OAuth completes.
3589
+ * Payload:
3590
+ * - `code`: string (OAuth authorization code)
3591
+ * - `state`: string (OAuth state for CSRF protection)
3592
+ * - `error`: string | null (OAuth error if any)
3593
+ */
3594
+ AUTH_CALLBACK = "PLAYCADEMY_AUTH_CALLBACK"
3595
+ }
3596
+
3597
+ /**
3598
+ * Auto-initializes a PlaycademyClient with context from the environment.
3599
+ * Works in both iframe mode (production/development) and standalone mode (local dev).
3600
+ *
3601
+ * This is the recommended way to initialize the SDK as it automatically:
3602
+ * - Detects the runtime environment (iframe vs standalone)
3603
+ * - Configures the client with the appropriate context
3604
+ * - Sets up event listeners for token refresh
3605
+ * - Exposes the client for debugging in development mode
3606
+ *
3607
+ * @param options - Optional configuration overrides
3608
+ * @param options.baseUrl - Override the base URL for API requests
3609
+ * @returns Promise resolving to a fully initialized PlaycademyClient
3610
+ * @throws Error if not running in a browser context
3611
+ *
3612
+ * @example
3613
+ * ```typescript
3614
+ * // Default initialization
3615
+ * const client = await PlaycademyClient.init()
3616
+ *
3617
+ * // With custom base URL
3618
+ * const client = await PlaycademyClient.init({ baseUrl: 'https://custom.api.com' })
3619
+ * ```
3620
+ */
3621
+ declare function init(options?: {
3622
+ baseUrl?: string;
3623
+ allowedParentOrigins?: string[];
3624
+ }): Promise<PlaycademyClient>;
3625
+
3626
+ /**
3627
+ * Authenticates a user with email and password.
3628
+ *
3629
+ * This is a standalone authentication method that doesn't require an initialized client.
3630
+ * Use this for login flows before creating a client instance.
3631
+ *
3632
+ * @deprecated Use client.auth.login() instead for better error handling and automatic token management
3633
+ *
3634
+ * @param baseUrl - The base URL of the Playcademy API
3635
+ * @param email - User's email address
3636
+ * @param password - User's password
3637
+ * @returns Promise resolving to authentication response with token
3638
+ * @throws PlaycademyError if authentication fails or network error occurs
3639
+ *
3640
+ * @example
3641
+ * ```typescript
3642
+ * // Preferred approach:
3643
+ * const client = new PlaycademyClient({ baseUrl: '/api' })
3644
+ * const result = await client.auth.login({
3645
+ * email: 'user@example.com',
3646
+ * password: 'password'
3647
+ * })
3648
+ *
3649
+ * // Legacy approach (still works):
3650
+ * try {
3651
+ * const response = await PlaycademyClient.login('/api', 'user@example.com', 'password')
3652
+ * const client = new PlaycademyClient({ token: response.token })
3653
+ * } catch (error) {
3654
+ * console.error('Login failed:', error.message)
3655
+ * }
3656
+ * ```
3657
+ */
3658
+ declare function login(baseUrl: string, email: string, password: string): Promise<LoginResponse>;
3659
+
3660
+ /** Permitted HTTP verbs */
3661
+ type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
3662
+
3663
+ /**
3664
+ * Main Playcademy SDK client for interacting with the platform API.
3665
+ * Provides namespaced access to all platform features including games, users, inventory, and more.
3666
+ */
3667
+ declare class PlaycademyClient {
3668
+ private baseUrl;
3669
+ private token?;
3670
+ private gameId?;
3671
+ private config;
3672
+ private listeners;
3673
+ private internalClientSessionId?;
3674
+ private authContext?;
3675
+ private initPayload?;
3676
+ /**
3677
+ * Creates a new PlaycademyClient instance.
3678
+ *
3679
+ * @param config - Optional configuration object
3680
+ * @param config.baseUrl - Base URL for API requests (defaults to '/api')
3681
+ * @param config.token - Authentication token
3682
+ * @param config.gameId - Game ID for automatic session management
3683
+ * @param config.autoStartSession - Automatically start a game session?
3684
+ */
3685
+ constructor(config?: Partial<ClientConfig>);
3686
+ /**
3687
+ * Gets the effective base URL for API requests.
3688
+ * Converts relative URLs to absolute URLs in browser environments.
3689
+ *
3690
+ * @returns The complete base URL for API requests
3691
+ */
3692
+ getBaseUrl(): string;
3693
+ /**
3694
+ * Simple ping method for testing connectivity.
3695
+ *
3696
+ * @returns 'pong' string response
3697
+ */
3698
+ ping(): string;
3699
+ /**
3700
+ * Sets the authentication token for API requests.
3701
+ * Emits an 'authChange' event when the token changes.
3702
+ *
3703
+ * @param token - The authentication token, or null to clear
3704
+ */
3705
+ setToken(token: string | null): void;
3706
+ /**
3707
+ * Gets the current authentication token.
3708
+ *
3709
+ * @returns The current token or null if not authenticated
3710
+ *
3711
+ * @example
3712
+ * ```typescript
3713
+ * // Send token to your backend for verification
3714
+ * const token = client.getToken()
3715
+ * const response = await fetch('/api/auth/playcademy', {
3716
+ * method: 'POST',
3717
+ * body: JSON.stringify({ gameToken: token })
3718
+ * })
3719
+ * ```
3720
+ */
3721
+ getToken(): string | null;
3722
+ /**
3723
+ * Checks if the client has a valid API token for making Playcademy API requests.
3724
+ *
3725
+ * For games (iframe context): Checks if we have a valid token from the parent.
3726
+ * For Cademy (standalone): Checks if we have a token from better-auth.
3727
+ *
3728
+ * Note: This checks for API authentication, not whether a user has linked
3729
+ * their identity via OAuth.
3730
+ *
3731
+ * @returns true if API token exists, false otherwise
3732
+ *
3733
+ * @example
3734
+ * ```typescript
3735
+ * if (client.isAuthenticated()) {
3736
+ * // Can make API calls
3737
+ * const games = await client.games.list()
3738
+ * } else {
3739
+ * console.error('No API token available')
3740
+ * }
3741
+ * ```
3742
+ */
3743
+ isAuthenticated(): boolean;
3744
+ /**
3745
+ * Registers a callback to be called when authentication state changes.
3746
+ *
3747
+ * @param callback - Function to call when auth state changes
3748
+ */
3749
+ onAuthChange(callback: (token: string | null) => void): void;
3750
+ /**
3751
+ * Sets the authentication context for the client.
3752
+ * This is called during initialization to store environment info.
3753
+ * @internal
3754
+ */
3755
+ _setAuthContext(context: {
3756
+ isInIframe: boolean;
3757
+ }): void;
3758
+ /**
3759
+ * Registers an event listener for client events.
3760
+ *
3761
+ * @param event - The event type to listen for
3762
+ * @param callback - Function to call when the event is emitted
3763
+ */
3764
+ on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
3765
+ /**
3766
+ * Emits an event to all registered listeners.
3767
+ *
3768
+ * @param event - The event type to emit
3769
+ * @param payload - The event payload
3770
+ */
3771
+ private emit;
3772
+ /**
3773
+ * Makes an authenticated HTTP request to the API.
3774
+ *
3775
+ * @param path - API endpoint path
3776
+ * @param method - HTTP method
3777
+ * @param body - Request body (optional)
3778
+ * @param headers - Additional headers (optional)
3779
+ * @returns Promise resolving to the response data
3780
+ */
3781
+ protected request<T>(path: string, method: Method, body?: unknown, headers?: Record<string, string>): Promise<T>;
3782
+ /**
3783
+ * Ensures a gameId is available, throwing an error if not.
3784
+ *
3785
+ * @returns The gameId
3786
+ * @throws PlaycademyError if no gameId is configured
3787
+ */
3788
+ private _ensureGameId;
3789
+ /**
3790
+ * Detects and sets the authentication context (iframe vs standalone).
3791
+ * Safe to call in any environment - isInIframe handles browser detection.
3792
+ */
3793
+ private _detectAuthContext;
3794
+ /**
3795
+ * Initializes an internal game session for automatic session management.
3796
+ * Only starts a session if:
3797
+ * 1. A gameId is configured
3798
+ * 2. No session already exists
3799
+ * 3. autoStartSession is enabled (defaults to false)
3800
+ */
3801
+ private _initializeInternalSession;
3802
+ /** Platform API authentication methods (login, logout) */
3803
+ auth: {
3804
+ login: (credentials: {
3805
+ email: string;
3806
+ password: string;
3807
+ }) => Promise<{
3808
+ success: boolean;
3809
+ token?: string;
3810
+ error?: string;
3811
+ }>;
3812
+ logout: () => Promise<void>;
3813
+ };
3814
+ /** Identity provider connection methods (connect external accounts) */
3815
+ identity: {
3816
+ connect: (options: AuthOptions) => Promise<AuthResult>;
3817
+ _getContext: () => {
3818
+ isInIframe: boolean;
3819
+ };
3820
+ };
3821
+ /** Runtime methods (getGameToken, exit) */
3822
+ runtime: {
3823
+ getGameToken: (gameId: string, options?: {
3824
+ apply?: boolean;
3825
+ }) => Promise<GameTokenResponse>;
3826
+ exit: () => Promise<void>;
3827
+ onInit: (handler: (context: GameContextPayload) => void) => void;
3828
+ onTokenRefresh: (handler: (data: {
3829
+ token: string;
3830
+ exp: number;
3831
+ }) => void) => void;
3832
+ onPause: (handler: () => void) => void;
3833
+ onResume: (handler: () => void) => void;
3834
+ onForceExit: (handler: () => void) => void;
3835
+ onOverlay: (handler: (isVisible: boolean) => void) => void;
3836
+ ready: () => void;
3837
+ sendTelemetry: (data: {
3838
+ fps: number;
3839
+ mem: number;
3840
+ }) => void;
3841
+ removeListener: (eventType: MessageEvents, handler: ((context: GameContextPayload) => void) | ((data: {
3842
+ token: string;
3843
+ exp: number;
3844
+ }) => void) | (() => void) | ((isVisible: boolean) => void)) => void;
3845
+ removeAllListeners: () => void;
3846
+ getListenerCounts: () => Record<string, number>;
3847
+ };
3848
+ /** Game management methods (fetch, list, saveState, loadState, sessions) */
3849
+ games: {
3850
+ fetch: (gameIdOrSlug: string, options?: TTLCacheConfig) => Promise<FetchedGame>;
3851
+ list: (options?: TTLCacheConfig) => Promise<Array<Game>>;
3852
+ saveState: (state: Record<string, unknown>) => Promise<void>;
3853
+ loadState: () => Promise<GameStateData>;
3854
+ startSession: (gameId?: string) => Promise<StartSessionResponse>;
3855
+ endSession: (sessionId: string, gameId?: string) => Promise<void>;
3856
+ token: {
3857
+ create: (gameId: string, options?: {
3858
+ apply?: boolean;
3859
+ }) => Promise<GameTokenResponse>;
3860
+ };
3861
+ leaderboard: {
3862
+ get: (gameId: string, options?: {
3863
+ limit? /** Runtime methods (getGameToken, exit) */: number;
3864
+ offset?: number;
3865
+ }) => Promise<LeaderboardEntry[]>;
3866
+ };
3867
+ };
3868
+ /** User methods (me, inventory management) */
3869
+ users: {
3870
+ me: () => Promise<AuthenticatedUser>;
3871
+ inventory: {
3872
+ get: () => Promise<InventoryItemWithItem[]>;
3873
+ add: (identifier: string, qty: number) => Promise<InventoryMutationResponse>;
3874
+ remove: (identifier: string, qty: number) => Promise<InventoryMutationResponse>;
3875
+ quantity: (identifier: string) => Promise<number>;
3876
+ has: (identifier: string, minQuantity?: number) => Promise<boolean>;
3877
+ };
3878
+ scores: {
3879
+ get: (userIdOrOptions?: string | {
3880
+ limit?: number;
3881
+ gameId?: string;
3882
+ }, options?: {
3883
+ limit?: number;
3884
+ gameId?: string;
3885
+ }) => Promise<UserScore[]>;
3886
+ };
3887
+ };
3888
+ /** Developer tools (auth, games, keys management) */
3889
+ dev: {
3890
+ status: {
3891
+ apply: () => Promise<void>;
3892
+ get: () => Promise<DeveloperStatusValue>;
3893
+ };
3894
+ games: {
3895
+ upsert: (slug: string, metadata: UpsertGameMetadataInput, file: File | Blob | null, hooks?: DevUploadHooks) => Promise<Game>;
3896
+ update: (gameId: string, props: Partial<Game>) => Promise<void>;
3897
+ delete: (gameId: string) => Promise<void>;
3898
+ };
3899
+ keys: {
3900
+ create: (label?: string) => Promise<{
3901
+ id: string;
3902
+ createdAt: Date;
3903
+ userId: string;
3904
+ label: string | null;
3905
+ keyHash: string;
3906
+ }>;
3907
+ list: () => Promise<{
3908
+ id: string;
3909
+ createdAt: Date;
3910
+ userId: string;
3911
+ label: string | null;
3912
+ keyHash: string;
3913
+ }[]>;
3914
+ revoke: (keyId: string) => Promise<void>;
3915
+ };
3916
+ items: {
3917
+ create: (gameId: string, slug: string, itemData: Omit<InsertItemInput, "slug" | "gameId">) => Promise<Item>;
3918
+ update: (gameId: string, itemId: string, updates: UpdateItemInput) => Promise<Item>;
3919
+ list: (gameId: string) => Promise<Array<Item>>;
3920
+ get: (gameId: string, slug: string) => Promise<Item>;
3921
+ delete: (gameId: string, itemId: string) => Promise<void>;
3922
+ shop: {
3923
+ create: (gameId: string, itemId: string, listingData: Omit<InsertShopListingInput, "itemId">) => Promise<ShopListing>;
3924
+ get: (gameId: string, itemId: string) => Promise<ShopListing | null>;
3925
+ update: (gameId: string, itemId: string, updates: UpdateShopListingInput) => Promise<ShopListing>;
3926
+ delete: (gameId: string, itemId: string) => Promise<void>;
3927
+ list: (gameId: string) => Promise<Array<ShopListing & {
3928
+ item: Item;
3929
+ }>>;
3930
+ };
3931
+ };
3932
+ };
3933
+ /** Map methods (elements) */
3934
+ maps: {
3935
+ get: (identifier: string) => Promise<MapData>;
3936
+ elements: (mapId: string) => Promise<MapElementWithGame[]>;
3937
+ objects: {
3938
+ list: (mapId: string) => Promise<MapObjectWithItem[]>;
3939
+ create: (mapId: string, objectData: CreateMapObjectData) => Promise<MapObjectWithItem>;
3940
+ delete: (mapId: string, objectId: string) => Promise<void>;
3941
+ };
3942
+ };
3943
+ /** Admin methods (games, items, currencies, shop listings) */
3944
+ admin: {
3945
+ games: {
3946
+ pauseGame: (gameId: string) => Promise<void>;
3947
+ resumeGame: (gameId: string) => Promise<void>;
3948
+ };
3949
+ items: {
3950
+ create: (props: InsertItemInput) => Promise<{
3951
+ id: string;
3952
+ createdAt: Date;
3953
+ type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
3954
+ gameId: string | null;
3955
+ slug: string;
3956
+ displayName: string;
3957
+ metadata: unknown;
3958
+ description: string | null;
3959
+ isPlaceable: boolean;
3960
+ imageUrl: string | null;
3961
+ }>;
3962
+ get: (itemId: string) => Promise<{
3963
+ id: string;
3964
+ createdAt: Date;
3965
+ type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
3966
+ gameId: string | null;
3967
+ slug: string;
3968
+ displayName: string;
3969
+ metadata: unknown;
3970
+ description: string | null;
3971
+ isPlaceable: boolean;
3972
+ imageUrl: string | null;
3973
+ }>;
3974
+ list: () => Promise<{
3975
+ id: string;
3976
+ createdAt: Date;
3977
+ type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
3978
+ gameId: string | null;
3979
+ slug: string;
3980
+ displayName: string;
3981
+ metadata: unknown;
3982
+ description: string | null;
3983
+ isPlaceable: boolean;
3984
+ imageUrl: string | null;
3985
+ }[]>;
3986
+ update: (itemId: string, props: UpdateItemInput) => Promise<{
3987
+ id: string;
3988
+ createdAt: Date;
3989
+ type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
3990
+ gameId: string | null;
3991
+ slug: string;
3992
+ displayName: string;
3993
+ metadata: unknown;
3994
+ description: string | null;
3995
+ isPlaceable: boolean;
3996
+ imageUrl: string | null;
3997
+ }>;
3998
+ delete: (itemId: string) => Promise<void>;
3999
+ };
4000
+ currencies: {
4001
+ create: (props: InsertCurrencyInput) => Promise<{
4002
+ symbol: string | null;
4003
+ id: string;
4004
+ createdAt: Date;
4005
+ updatedAt: Date | null;
4006
+ itemId: string;
4007
+ isPrimary: boolean;
4008
+ }>;
4009
+ get: (currencyId: string) => Promise<{
4010
+ symbol: string | null;
4011
+ id: string;
4012
+ createdAt: Date;
4013
+ updatedAt: Date | null;
4014
+ itemId: string;
4015
+ isPrimary: boolean;
4016
+ }>;
4017
+ list: () => Promise<{
4018
+ symbol: string | null;
4019
+ id: string;
4020
+ createdAt: Date;
4021
+ updatedAt: Date | null;
4022
+ itemId: string;
4023
+ isPrimary: boolean;
4024
+ }[]>;
4025
+ update: (currencyId: string, props: UpdateCurrencyInput) => Promise<{
4026
+ symbol: string | null;
4027
+ id: string;
4028
+ createdAt: Date;
4029
+ updatedAt: Date | null;
4030
+ itemId: string;
4031
+ isPrimary: boolean;
4032
+ }>;
4033
+ delete: (currencyId: string) => Promise<void>;
4034
+ };
4035
+ shopListings: {
4036
+ create: (props: InsertShopListingInput) => Promise<{
4037
+ id: string;
4038
+ createdAt: Date;
4039
+ updatedAt: Date | null;
4040
+ itemId: string;
4041
+ currencyId: string;
4042
+ price: number;
4043
+ sellBackPercentage: number | null;
4044
+ stock: number | null;
4045
+ isActive: boolean;
4046
+ availableFrom: Date | null;
4047
+ availableUntil: Date | null;
4048
+ }>;
4049
+ get: (listingId: string) => Promise<{
4050
+ id: string;
4051
+ createdAt: Date;
4052
+ updatedAt: Date | null;
4053
+ itemId: string;
4054
+ currencyId: string;
4055
+ price: number;
4056
+ sellBackPercentage: number | null;
4057
+ stock: number | null;
4058
+ isActive: boolean;
4059
+ availableFrom: Date | null;
4060
+ availableUntil: Date | null;
4061
+ }>;
4062
+ list: () => Promise<{
4063
+ id: string;
4064
+ createdAt: Date;
4065
+ updatedAt: Date | null;
4066
+ itemId: string;
4067
+ currencyId: string;
4068
+ price: number;
4069
+ sellBackPercentage: number | null;
4070
+ stock: number | null;
4071
+ isActive: boolean;
4072
+ availableFrom: Date | null;
4073
+ availableUntil: Date | null;
4074
+ }[]>;
4075
+ update: (listingId: string, props: UpdateShopListingInput) => Promise<{
4076
+ id: string;
4077
+ createdAt: Date;
4078
+ updatedAt: Date | null;
4079
+ itemId: string;
4080
+ currencyId: string;
4081
+ price: number;
4082
+ sellBackPercentage: number | null;
4083
+ stock: number | null;
4084
+ isActive: boolean;
4085
+ availableFrom: Date | null;
4086
+ availableUntil: Date | null;
4087
+ }>;
4088
+ delete: (listingId: string) => Promise<void>;
4089
+ };
4090
+ };
4091
+ /** Shop methods (view) */
4092
+ shop: {
4093
+ view: () => Promise<ShopViewResponse>;
4094
+ };
4095
+ /** Level methods (levels) */
4096
+ levels: {
4097
+ get: () => Promise<UserLevel>;
4098
+ progress: (options?: CooldownCacheConfig) => Promise<{
4099
+ level: number;
4100
+ currentXp: number;
4101
+ xpToNextLevel: number;
4102
+ totalXP: number;
4103
+ }>;
4104
+ config: {
4105
+ list: () => Promise<LevelConfig[]>;
4106
+ get: (level: number) => Promise<LevelConfig | null>;
4107
+ };
4108
+ };
4109
+ /** TimeBack XP methods (today, total, history) */
4110
+ timeback: {
4111
+ xp: {
4112
+ today: (options?: {
4113
+ date?: string;
4114
+ timezone?: string;
4115
+ }) => Promise<TodayXpResponse>;
4116
+ total: () => Promise<TotalXpResponse>;
4117
+ history: (options?: {
4118
+ startDate?: string;
4119
+ endDate?: string;
4120
+ }) => Promise<XpHistoryResponse>;
4121
+ summary: (options?: {
4122
+ date?: string;
4123
+ timezone?: string;
4124
+ }) => Promise<XpSummaryResponse>;
4125
+ };
4126
+ };
4127
+ /** Telemetry methods (pushMetrics) */
4128
+ telemetry: {
4129
+ pushMetrics: (metrics: Record<string, number>) => Promise<void>;
4130
+ };
4131
+ /** Credits methods (credits management) */
4132
+ credits: {
4133
+ balance: () => Promise<number>;
4134
+ add: (amount: number) => Promise<number>;
4135
+ spend: (amount: number) => Promise<number>;
4136
+ };
4137
+ /** Platform-wide leaderboard methods (fetch, getUserRank) */
4138
+ leaderboard: {
4139
+ fetch: (options?: LeaderboardOptions) => Promise<GameLeaderboardEntry[]>;
4140
+ getUserRank: (gameId: string, userId: string) => Promise<UserRankResponse>;
4141
+ };
4142
+ /** Platform-wide scores methods (submit, getUserScores) */
4143
+ scores: {
4144
+ submit: (gameId: string, score: number, metadata?: Record<string, unknown>) => Promise<ScoreSubmission>;
4145
+ getByUser: (gameId: string, userId: string, options?: {
4146
+ limit?: number;
4147
+ }) => Promise<UserScore$1[]>;
4148
+ };
4149
+ /** Character methods (get, create, update, components) */
4150
+ character: {
4151
+ get: (userId?: string) => Promise<PlayerCharacter | null>;
4152
+ create: (characterData: CreateCharacterData) => Promise<PlayerCharacter>;
4153
+ update: (updates: UpdateCharacterData) => Promise<PlayerCharacter>;
4154
+ components: {
4155
+ list: (options?: CharacterComponentsOptions & TTLCacheConfig) => Promise<CharacterComponentWithSpriteUrl[]>;
4156
+ clearCache: (key?: string) => void;
4157
+ getCacheKeys: () => string[];
4158
+ };
4159
+ accessories: {
4160
+ equip: (slot: string, componentId: string) => Promise<PlayerCharacterAccessory>;
4161
+ remove: (slot: string) => Promise<{
4162
+ success: boolean;
4163
+ }>;
4164
+ list: () => Promise<PlayerCharacterAccessory[]>;
4165
+ };
4166
+ };
4167
+ /** Sprites methods (templates) */
4168
+ sprites: {
4169
+ templates: {
4170
+ get: (slug: string) => Promise<SpriteTemplateData>;
4171
+ };
4172
+ };
4173
+ /** Realtime methods (token) */
4174
+ realtime: {
4175
+ token: {
4176
+ get: () => Promise<RealtimeTokenResponse>;
4177
+ };
4178
+ open(channel?: string, url?: string): Promise<_playcademy_realtime_server_types.RealtimeChannel>;
4179
+ };
4180
+ /** Achievements methods (list, history, progress) */
4181
+ achievements: {
4182
+ list: (options?: TTLCacheConfig) => Promise<AchievementCurrent[]>;
4183
+ history: {
4184
+ list: (queryOptions?: {
4185
+ limit?: number;
4186
+ }, cacheOptions?: TTLCacheConfig) => Promise<AchievementHistoryEntry[]>;
4187
+ };
4188
+ progress: {
4189
+ submit: (achievementId: string) => Promise<AchievementProgressResponse>;
4190
+ };
4191
+ };
4192
+ /** Auto-initializes a PlaycademyClient with context from the environment */
4193
+ static init: typeof init;
4194
+ /** Authenticates a user with email and password */
4195
+ static login: typeof login;
4196
+ /** Static identity utilities for OAuth operations */
4197
+ static identity: {
4198
+ parseOAuthState: typeof parseOAuthState;
4199
+ };
4200
+ }
4201
+
4202
+ interface ClientConfig {
7
4203
  baseUrl: string;
8
4204
  token?: string;
9
4205
  gameId?: string;
4206
+ autoStartSession?: boolean;
10
4207
  }
11
- export interface InitPayload {
4208
+ interface InitPayload {
12
4209
  baseUrl: string;
13
4210
  token: string;
14
4211
  gameId: string;
15
4212
  realtimeUrl?: string;
16
- user?: AuthenticatedUser;
17
4213
  }
18
- export declare const AuthProvider: {
19
- readonly TIMEBACK: "TIMEBACK";
20
- };
21
- export type AuthProviderType = (typeof AuthProvider)[keyof typeof AuthProvider];
22
- export interface AuthOptions {
4214
+ type AuthProviderType = (typeof AuthProvider)[keyof typeof AuthProvider];
4215
+ interface AuthOptions {
23
4216
  /** The identity provider to use for authentication */
24
4217
  provider: AuthProviderType;
25
4218
  /** The OAuth callback URL where your server handles the callback */
@@ -42,7 +4235,7 @@ export interface AuthOptions {
42
4235
  */
43
4236
  stateData?: Record<string, string>;
44
4237
  }
45
- export interface AuthStateUpdate {
4238
+ interface AuthStateUpdate {
46
4239
  /** Current status of the authentication flow */
47
4240
  status: 'opening_popup' | 'exchanging_token' | 'complete' | 'error';
48
4241
  /** Human-readable message about the current state */
@@ -50,7 +4243,7 @@ export interface AuthStateUpdate {
50
4243
  /** Error details if status is 'error' */
51
4244
  error?: Error;
52
4245
  }
53
- export interface AuthResult {
4246
+ interface AuthResult {
54
4247
  /** Whether authentication was successful */
55
4248
  success: boolean;
56
4249
  /** User information if authentication was successful */
@@ -58,23 +4251,29 @@ export interface AuthResult {
58
4251
  /** Error if authentication failed */
59
4252
  error?: Error;
60
4253
  }
61
- export interface UserInfo {
62
- /** Unique user identifier (sub claim from JWT) */
63
- sub: string;
64
- /** User's email address */
65
- email: string;
66
- /** User's display name */
67
- name: string;
68
- /** Whether the email has been verified */
69
- email_verified: boolean;
70
- /** Additional user attributes from the identity provider */
71
- [key: string]: unknown;
4254
+ /**
4255
+ * Simplified user data passed to games via InitPayload
4256
+ * This is a subset of AuthenticatedUser suitable for external game consumption
4257
+ */
4258
+ interface GameUser {
4259
+ /** Playcademy user ID */
4260
+ id: string;
4261
+ /** Unique username */
4262
+ username: string | null;
4263
+ /** Display name */
4264
+ name: string | null;
4265
+ /** Email address */
4266
+ email: string | null;
4267
+ /** Profile image URL */
4268
+ image: string | null;
4269
+ /** Whether the user has a Timeback account */
4270
+ hasTimebackAccount: boolean;
72
4271
  }
73
4272
  /**
74
4273
  * Authentication state change event payload.
75
4274
  * Used when authentication state changes in the application.
76
4275
  */
77
- export interface AuthStateChangePayload {
4276
+ interface AuthStateChangePayload {
78
4277
  /** Whether the user is currently authenticated */
79
4278
  authenticated: boolean;
80
4279
  /** User information if authenticated, null otherwise */
@@ -86,7 +4285,7 @@ export interface AuthStateChangePayload {
86
4285
  * OAuth callback event payload.
87
4286
  * Used when OAuth flow completes in popup/new-tab windows.
88
4287
  */
89
- export interface AuthCallbackPayload {
4288
+ interface AuthCallbackPayload {
90
4289
  /** OAuth authorization code */
91
4290
  code: string;
92
4291
  /** OAuth state parameter for CSRF protection */
@@ -98,7 +4297,7 @@ export interface AuthCallbackPayload {
98
4297
  * Message sent from server callback to opener window.
99
4298
  * This is the standardized format from our server-first architecture.
100
4299
  */
101
- export interface AuthServerMessage {
4300
+ interface AuthServerMessage {
102
4301
  /** Type of the message */
103
4302
  type: 'PLAYCADEMY_AUTH_STATE_CHANGE';
104
4303
  /** Whether the user is currently authenticated */
@@ -116,7 +4315,7 @@ export interface AuthServerMessage {
116
4315
  * Token refresh event payload.
117
4316
  * Sent when authentication token is updated.
118
4317
  */
119
- export interface TokenRefreshPayload {
4318
+ interface TokenRefreshPayload {
120
4319
  /** New authentication token */
121
4320
  token: string;
122
4321
  /** Token expiration timestamp */
@@ -126,7 +4325,7 @@ export interface TokenRefreshPayload {
126
4325
  * Telemetry event payload.
127
4326
  * Performance metrics sent from the game.
128
4327
  */
129
- export interface TelemetryPayload {
4328
+ interface TelemetryPayload {
130
4329
  /** Frames per second */
131
4330
  fps: number;
132
4331
  /** Memory usage in MB */
@@ -136,7 +4335,7 @@ export interface TelemetryPayload {
136
4335
  * Keyboard event payload.
137
4336
  * Key events forwarded from the game.
138
4337
  */
139
- export interface KeyEventPayload {
4338
+ interface KeyEventPayload {
140
4339
  /** Key value (e.g., 'Escape', 'F1') */
141
4340
  key: string;
142
4341
  /** Key code (optional) */
@@ -144,7 +4343,7 @@ export interface KeyEventPayload {
144
4343
  /** Event type */
145
4344
  type: 'keydown' | 'keyup';
146
4345
  }
147
- export interface ClientEvents {
4346
+ interface ClientEvents {
148
4347
  authChange: {
149
4348
  token: string | null;
150
4349
  };
@@ -164,30 +4363,30 @@ export interface ClientEvents {
164
4363
  leveledUp: boolean;
165
4364
  };
166
4365
  }
167
- export type GameContextPayload = {
4366
+ type GameContextPayload = {
168
4367
  token: string;
169
4368
  baseUrl: string;
170
4369
  realtimeUrl: string;
171
4370
  gameId: string;
172
4371
  forwardKeys?: string[];
173
4372
  };
174
- export type EventListeners = {
4373
+ type EventListeners = {
175
4374
  [E in keyof ClientEvents]?: Array<(payload: ClientEvents[E]) => void>;
176
4375
  };
177
- export type LoginResponse = {
4376
+ type LoginResponse = {
178
4377
  token: string;
179
4378
  };
180
- export type GameTokenResponse = {
4379
+ type GameTokenResponse = {
181
4380
  token: string;
182
4381
  exp: number;
183
4382
  };
184
- export type StartSessionResponse = {
4383
+ type StartSessionResponse = {
185
4384
  sessionId: string;
186
4385
  };
187
- export type InventoryMutationResponse = {
4386
+ type InventoryMutationResponse = {
188
4387
  newTotal: number;
189
4388
  };
190
- export type DevUploadEvent = {
4389
+ type DevUploadEvent = {
191
4390
  type: 'init';
192
4391
  } | {
193
4392
  type: 's3Progress';
@@ -206,7 +4405,10 @@ export type DevUploadEvent = {
206
4405
  } | {
207
4406
  type: 'close';
208
4407
  };
209
- export type DevUploadHooks = {
4408
+ type DevUploadHooks = {
210
4409
  onEvent?: (e: DevUploadEvent) => void;
211
4410
  onClose?: () => void;
212
4411
  };
4412
+
4413
+ export { PlaycademyClient };
4414
+ export type { Achievement, AchievementCurrent, AchievementProgressResponse, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, CharacterComponent, CharacterComponentWithSpriteUrl, ClientConfig, ClientEvents, Currency, DevUploadEvent, DevUploadHooks, DeveloperKey, DeveloperStatusResponse, EventListeners, ExternalGame, Game, GameContextPayload, GameLeaderboardEntry, GameSession, GameStateData, GameTokenResponse, GameUser, HostedGame, HostedGameWithManifest, InitPayload, InventoryItem, InventoryItemWithItem, InventoryMutationResponse, Item, KeyEventPayload, LeaderboardEntry, LevelConfig, LoginResponse, ManifestV1, Map, MapElement, MapElementWithGame, MapObject, MapObjectWithItem, PlayerCharacter, ShopCurrency, ShopDisplayItem, ShopViewResponse, SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TodayXpResponse, TokenRefreshPayload, TotalXpResponse, User, UserInfo, UserLevel, UserLevelWithConfig, UserRank, UserRankResponse, UserRoleEnumType, UserScore$1 as UserScore, XpHistoryResponse };