@series-inc/rundot-game-sdk 5.17.0-beta.8 → 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{AdsApi-CEWQVyKz.d.ts → AdsApi-WlnMwXKa.d.ts} +446 -690
  2. package/dist/LeaderboardApi--NKuV2tJ.d.ts +644 -0
  3. package/dist/callRemoteFunction-D-Ah7AxA.d.ts +23 -0
  4. package/dist/{chunk-3BBACCEY.js → chunk-2YN6ATNL.js} +542 -112
  5. package/dist/chunk-2YN6ATNL.js.map +1 -0
  6. package/dist/{chunk-D6MEEPZ2.js → chunk-B7N5C22M.js} +198 -344
  7. package/dist/chunk-B7N5C22M.js.map +1 -0
  8. package/dist/chunk-CU3M4HTH.js +402 -0
  9. package/dist/chunk-CU3M4HTH.js.map +1 -0
  10. package/dist/chunk-V5C5VQM4.js +27 -0
  11. package/dist/chunk-V5C5VQM4.js.map +1 -0
  12. package/dist/host-http.d.ts +96 -0
  13. package/dist/host-http.js +4 -0
  14. package/dist/host-http.js.map +1 -0
  15. package/dist/index.d.ts +288 -219
  16. package/dist/index.js +3 -2
  17. package/dist/rundot-game-api/index.d.ts +3 -2
  18. package/dist/rundot-game-api/index.js +3 -2
  19. package/dist/rundot-game-api/index.js.map +1 -1
  20. package/dist/sandbox/index.js +711 -450
  21. package/dist/sandbox/index.js.map +1 -1
  22. package/dist/vite/chunk-RDFEWAG5.js +14 -0
  23. package/dist/vite/chunk-RDFEWAG5.js.map +1 -0
  24. package/dist/vite/{dev-server-SV76ANVO.js → dev-server-3NX2VVPT.js} +11 -9
  25. package/dist/vite/dev-server-3NX2VVPT.js.map +1 -0
  26. package/dist/vite/{esbuild-validate-CELBC5DE.js → esbuild-validate-DO5ES37N.js} +5 -5
  27. package/dist/vite/esbuild-validate-DO5ES37N.js.map +1 -0
  28. package/dist/vite/index.d.ts +7 -0
  29. package/dist/vite/index.js +469 -118
  30. package/dist/vite/index.js.map +1 -1
  31. package/package.json +6 -1
  32. package/dist/chunk-3BBACCEY.js.map +0 -1
  33. package/dist/chunk-D6MEEPZ2.js.map +0 -1
  34. package/dist/vite/dev-server-SV76ANVO.js.map +0 -1
  35. package/dist/vite/esbuild-validate-CELBC5DE.js.map +0 -1
@@ -1,3 +1,5 @@
1
+ import { H as LeaderboardApi, I as ImageGenApi, A as AudioGenApi, V as VideoGenApi, q as SpriteGenApi, T as ThreeDGenApi } from './LeaderboardApi--NKuV2tJ.js';
2
+
1
3
  interface StorageApi {
2
4
  key(index: number): Promise<string | null>;
3
5
  clear(): Promise<void>;
@@ -425,6 +427,21 @@ interface TimeApi {
425
427
  type AiTextContent = {
426
428
  type: 'text';
427
429
  text: string;
430
+ /**
431
+ * Anthropic prompt-caching marker. When set, the proxy emits a
432
+ * `cache_control: { type: 'ephemeral' }` annotation on the corresponding
433
+ * Anthropic block. Ignored by non-Anthropic providers.
434
+ *
435
+ * You usually don't need to set this. By default, the proxy auto-caches
436
+ * the system prefix for Anthropic calls — see `AiChatCompletionRequest`.
437
+ * Set this explicitly when you want to control which segments are cached
438
+ * (e.g. caching mid-conversation history alongside the system, or
439
+ * disabling the proxy's default by claiming the breakpoint yourself on
440
+ * a different block).
441
+ */
442
+ cacheControl?: {
443
+ type: 'ephemeral';
444
+ };
428
445
  };
429
446
  /** Image referenced by URL. OpenAI/DeepSeek accept directly; the proxy fetches and base64-encodes for Anthropic. */
430
447
  type AiImageUrlContent = {
@@ -445,7 +462,88 @@ type AiImageContent = {
445
462
  data: string;
446
463
  };
447
464
  };
448
- type AiContentBlock = AiTextContent | AiImageUrlContent | AiImageContent;
465
+ /**
466
+ * Assistant-emitted tool invocation, used in multi-turn tool conversations
467
+ * when echoing prior assistant turns back to the model. The same data is
468
+ * surfaced on a fresh response via the `toolCalls` field on the assistant
469
+ * message; this block type exists so callers can replay prior turns.
470
+ */
471
+ type AiToolUseContent = {
472
+ type: 'tool_use';
473
+ id: string;
474
+ name: string;
475
+ input: Record<string, unknown>;
476
+ };
477
+ /**
478
+ * User-supplied result for a previously emitted tool call. Used when feeding
479
+ * tool execution output back to the model on the next turn.
480
+ */
481
+ type AiToolResultContent = {
482
+ type: 'tool_result';
483
+ toolUseId: string;
484
+ content: string | AiContentBlock[];
485
+ isError?: boolean;
486
+ };
487
+ type AiContentBlock = AiTextContent | AiImageUrlContent | AiImageContent | AiToolUseContent | AiToolResultContent;
488
+ interface Tool {
489
+ name: string;
490
+ description: string;
491
+ /** JSON Schema describing the tool's input arguments. */
492
+ inputSchema: object;
493
+ }
494
+ type ToolChoice = 'auto' | 'any' | 'none' | {
495
+ type: 'tool';
496
+ name: string;
497
+ };
498
+ interface ToolUse {
499
+ id: string;
500
+ name: string;
501
+ input: Record<string, unknown>;
502
+ }
503
+ /**
504
+ * Constrains the model's output format.
505
+ *
506
+ * - `text`: free-form text (default).
507
+ * - `json_object`: model is asked to emit valid JSON. No schema enforcement.
508
+ * - `json_schema`: model is asked to emit JSON matching the given schema.
509
+ * The proxy enforces the schema on every provider:
510
+ * - OpenAI / DeepSeek: native Structured-Outputs `response_format`.
511
+ * - Anthropic: schema is appended to the system prompt; the response is
512
+ * parsed and validated server-side. On validation failure the proxy
513
+ * retries once with the validator errors fed back to the model. If
514
+ * the retry also fails, the request fails with HTTP 422.
515
+ * - Gemini: native `responseSchema`.
516
+ *
517
+ * `strict` (default `false`) maps to OpenAI's `strict` Structured-Outputs
518
+ * flag and is otherwise informational.
519
+ *
520
+ * For back-compat, the OpenAI native nested shape
521
+ * (`json_schema: { name, schema, strict? }`) is also accepted and passed
522
+ * through unchanged on the OpenAI path.
523
+ *
524
+ * ### Interaction with `tools`
525
+ *
526
+ * When `tools` is also set on the request, the schema applies ONLY to the
527
+ * model's text content. If the model invokes a tool, the tool call IS the
528
+ * response and the schema is not enforced (matches OpenAI's native
529
+ * behavior). To force schema-conforming text even when tools are
530
+ * available, omit `tools` from the request.
531
+ */
532
+ type AiResponseFormat = {
533
+ type: 'text';
534
+ } | {
535
+ type: 'json_object';
536
+ } | {
537
+ type: 'json_schema';
538
+ schema?: object;
539
+ strict?: boolean;
540
+ json_schema?: {
541
+ name?: string;
542
+ description?: string;
543
+ schema?: object;
544
+ strict?: boolean | null;
545
+ };
546
+ };
449
547
  interface AiMessage {
450
548
  /**
451
549
  * Depends on the model you are using. Most common is user, system, and assistant.
@@ -460,6 +558,36 @@ type AiChatCompletionRequest = {
460
558
  model: string;
461
559
  /** Array of message objects in OpenAI chat format */
462
560
  messages: Array<AiMessage>;
561
+ /**
562
+ * Structured system prompt. Mirrors Anthropic's `system` field shape so the
563
+ * caller can mark specific segments of a large static prefix as cacheable
564
+ * via `cacheControl`.
565
+ *
566
+ * - `string`: passed verbatim as the system instruction.
567
+ * - `Array<AiTextContent>`: each block becomes a system text block.
568
+ *
569
+ * ### Anthropic prompt caching (default behavior)
570
+ *
571
+ * For Anthropic models, the proxy automatically caches the system prefix:
572
+ * if neither `system` nor any block in `messages` carries an explicit
573
+ * `cacheControl` marker, the proxy attaches `cache_control: 'ephemeral'`
574
+ * to the LAST text block of the system. This is the cheap default —
575
+ * Anthropic's pricing makes it a net win within ~2 cache hits on the
576
+ * same prefix within the 5-minute TTL, and sub-threshold systems
577
+ * (<1024 tokens Sonnet/Opus, <2048 Haiku) are ignored by Anthropic so
578
+ * the marker is a no-op for small prompts.
579
+ *
580
+ * To **override** the default — for example, to cache a specific segment
581
+ * of the system or to additionally cache a slice of the user-message
582
+ * history — set `cacheControl: { type: 'ephemeral' }` on the block(s) you
583
+ * want as cache breakpoints. The presence of any explicit marker disables
584
+ * the proxy's auto-cache so your strategy isn't interfered with.
585
+ *
586
+ * For non-Anthropic providers, the array is flattened to a single string
587
+ * and `cacheControl` is silently dropped. Coexists with `role: 'system'`
588
+ * entries in `messages`; both are concatenated.
589
+ */
590
+ system?: string | Array<AiTextContent>;
463
591
  /** Maximum number of tokens to generate */
464
592
  maxTokens?: number;
465
593
  /** Upper bound for tokens generated, including visible output and reasoning tokens */
@@ -480,8 +608,8 @@ type AiChatCompletionRequest = {
480
608
  frequencyPenalty?: number;
481
609
  /** Token logit biases */
482
610
  logitBias?: Record<string, number>;
483
- /** Object specifying the format that the model must output */
484
- responseFormat?: Record<string, any>;
611
+ /** Object specifying the format that the model must output. See {@link AiResponseFormat}. */
612
+ responseFormat?: AiResponseFormat;
485
613
  /** Random seed for reproducible outputs (Beta feature) */
486
614
  seed?: number;
487
615
  /** Unique identifier representing your end-user */
@@ -500,6 +628,8 @@ type AiChatCompletionRequest = {
500
628
  extraHeaders?: Record<string, any>;
501
629
  /** Custom tags for organizing completions */
502
630
  tags?: string[];
631
+ tools?: Tool[];
632
+ toolChoice?: ToolChoice;
503
633
  /**
504
634
  * @deprecated No longer used. Local dev uses HttpAiApi with Firebase auth. Will be removed in a future major version.
505
635
  */
@@ -520,6 +650,8 @@ type AiChatCompletionData = {
520
650
  message: {
521
651
  role: string;
522
652
  content: string;
653
+ /** Present only when the model invoked one or more tools on this turn. */
654
+ toolCalls?: ToolUse[];
523
655
  };
524
656
  finish_reason: string;
525
657
  }>;
@@ -532,9 +664,115 @@ type AiChatCompletionData = {
532
664
  cache_write_tokens?: number;
533
665
  };
534
666
  };
667
+ /**
668
+ * A single event from a streaming chat completion. Mirrors the wire shape
669
+ * the proxy emits on `/v1/llm/completion-stream`.
670
+ *
671
+ * - `delta`: incremental assistant text. Concatenate `text` across all
672
+ * `delta` events to reconstruct the final message.
673
+ * - `tool_call_chunk`: partial tool-call metadata. Providers stream tool
674
+ * arguments as multiple chunks; buffer by `index` until `done`.
675
+ * - `done`: terminal event for a successful stream. Carries `finishReason`
676
+ * and aggregate token totals (same shape as the non-streaming response's
677
+ * `usage`). Always the last event yielded.
678
+ *
679
+ * Errors are out-of-band — consumers see them as the iterable throwing.
680
+ */
681
+ type AiChatCompletionStreamChunk = {
682
+ type: 'delta';
683
+ text: string;
684
+ } | {
685
+ type: 'tool_call_chunk';
686
+ index: number;
687
+ id?: string;
688
+ name?: string;
689
+ argumentsDelta?: string;
690
+ } | {
691
+ type: 'done';
692
+ finishReason: string;
693
+ usage: AiChatCompletionData['usage'];
694
+ };
695
+ interface AiChatCompletionStreamOptions {
696
+ /**
697
+ * Caller-supplied AbortSignal. Aborting causes the iterable to stop
698
+ * yielding and the host to close the upstream SSE socket. Equivalent to
699
+ * `break`ing out of `for await`; provided as a separate handle for callers
700
+ * that already manage an AbortController for the surrounding operation.
701
+ */
702
+ signal?: AbortSignal;
703
+ }
535
704
  interface AiApi {
536
705
  requestChatCompletionAsync(request: AiChatCompletionRequest): Promise<AiChatCompletionData>;
537
706
  getAvailableCompletionModels(): Promise<Array<string>>;
707
+ /**
708
+ * Streaming sibling of `requestChatCompletionAsync`. Returns an async
709
+ * iterable of chunks. Cancel by `break`ing out of `for await`, calling
710
+ * `return()` on the iterator, or aborting the optional `signal`.
711
+ *
712
+ * @example
713
+ * Text-only consumption — concatenate `delta.text` and read usage on `done`:
714
+ * ```ts
715
+ * const stream = textGen.requestChatCompletionStreamAsync({ ... })
716
+ * let text = ''
717
+ * for await (const chunk of stream) {
718
+ * if (chunk.type === 'delta') text += chunk.text
719
+ * if (chunk.type === 'done') console.log('usage', chunk.usage)
720
+ * }
721
+ * ```
722
+ *
723
+ * @example
724
+ * Buffering `tool_call_chunk` events into `ToolUse[]`. Providers stream
725
+ * tool arguments as a sequence of `argumentsDelta` fragments keyed by
726
+ * `index`; concatenate them and JSON-parse once `done` arrives. A
727
+ * `tool_call_chunk` chunk carries the tool's `id` and `name` once they
728
+ * become known (typically on the first chunk for that index), with
729
+ * argument-only chunks following:
730
+ * ```ts
731
+ * import type {
732
+ * AiChatCompletionStreamChunk,
733
+ * ToolUse,
734
+ * } from '@series-inc/rundot-game-sdk'
735
+ *
736
+ * interface PartialToolCall { id?: string; name?: string; args: string }
737
+ *
738
+ * const buffer = new Map<number, PartialToolCall>()
739
+ * const toolCalls: ToolUse[] = []
740
+ * let text = ''
741
+ *
742
+ * for await (const chunk of stream) {
743
+ * switch (chunk.type) {
744
+ * case 'delta':
745
+ * text += chunk.text
746
+ * break
747
+ * case 'tool_call_chunk': {
748
+ * const entry = buffer.get(chunk.index) ?? { args: '' }
749
+ * if (chunk.id !== undefined) entry.id = chunk.id
750
+ * if (chunk.name !== undefined) entry.name = chunk.name
751
+ * if (chunk.argumentsDelta !== undefined) {
752
+ * entry.args += chunk.argumentsDelta
753
+ * }
754
+ * buffer.set(chunk.index, entry)
755
+ * break
756
+ * }
757
+ * case 'done':
758
+ * for (const entry of buffer.values()) {
759
+ * if (entry.id === undefined || entry.name === undefined) continue
760
+ * toolCalls.push({
761
+ * id: entry.id,
762
+ * name: entry.name,
763
+ * input: entry.args === '' ? {} : JSON.parse(entry.args),
764
+ * })
765
+ * }
766
+ * break
767
+ * }
768
+ * }
769
+ * ```
770
+ *
771
+ * Gemini note: text streaming is supported; tool-use on Gemini streaming
772
+ * is deferred — the iterable throws `AppError(400)` when `request.tools`
773
+ * is non-empty.
774
+ */
775
+ requestChatCompletionStreamAsync(request: AiChatCompletionRequest, options?: AiChatCompletionStreamOptions): AsyncIterable<AiChatCompletionStreamChunk>;
538
776
  }
539
777
 
540
778
  type TextGenApi = AiApi;
@@ -789,6 +1027,7 @@ interface ExecuteRecipeResponse {
789
1027
  outputs?: Record<string, number | string>;
790
1028
  data?: Record<string, unknown>;
791
1029
  message?: string;
1030
+ randomSeed?: string;
792
1031
  amountRequested?: number;
793
1032
  amountFulfilled?: number;
794
1033
  partialSuccess?: boolean;
@@ -1291,10 +1530,31 @@ interface PurchaseSubscriptionResponse {
1291
1530
  success: boolean;
1292
1531
  }
1293
1532
  interface SpendCurrencyOptions {
1533
+ /** Screen/route name where the purchase occurred. Used for analytics only. */
1294
1534
  screenName?: string;
1535
+ /**
1536
+ * Short human-readable description of what is being purchased
1537
+ * (e.g. "Unlock level 5", "Continue run"). The host renders this in the
1538
+ * spend-confirmation dialog so the player sees what they are paying for.
1539
+ * Sanitized and truncated by the host before display.
1540
+ */
1541
+ description?: string;
1542
+ /**
1543
+ * Optional profile id of a UGC creator the spend should be attributed to
1544
+ * for revenue share. Forwarded to the server for future revshare bookkeeping.
1545
+ */
1546
+ beneficiaryId?: string;
1295
1547
  }
1296
1548
  interface SpendCurrencyResult {
1297
1549
  success: boolean;
1550
+ /**
1551
+ * Optional failure reason. Defined sentinel values:
1552
+ *
1553
+ * - `'USER_CANCELLED'` — the player declined the host confirmation dialog
1554
+ * before the spend was sent to the server. No currency was deducted.
1555
+ *
1556
+ * Other values are server-side error messages and are not stable.
1557
+ */
1298
1558
  error?: string;
1299
1559
  }
1300
1560
  interface OpenStoreResult {
@@ -1314,140 +1574,6 @@ interface IapApi {
1314
1574
  hasUserMadePurchase(): Promise<boolean>;
1315
1575
  }
1316
1576
 
1317
- interface LeaderboardModeConfig {
1318
- displayName: string;
1319
- minDurationSec?: number;
1320
- maxDurationSec?: number;
1321
- minScore?: number;
1322
- maxScore?: number;
1323
- }
1324
- type LeaderboardPeriodType = 'daily' | 'weekly' | 'monthly' | 'alltime';
1325
- interface LeaderboardPeriodConfig {
1326
- displayName: string;
1327
- type: LeaderboardPeriodType;
1328
- }
1329
- interface LeaderboardAntiCheatConfig {
1330
- enableZScoreDetection: boolean;
1331
- zScoreThreshold: number;
1332
- enableRateLimit: boolean;
1333
- minTimeBetweenSubmissionsSec: number;
1334
- trustScoreDecayPerFlag: number;
1335
- shadowBanThreshold: number;
1336
- }
1337
- interface LeaderboardDisplaySettings {
1338
- maxEntriesPerPage: number;
1339
- }
1340
- interface LeaderboardConfig {
1341
- minDurationSec: number;
1342
- maxDurationSec: number;
1343
- minScore: number;
1344
- maxScore: number;
1345
- requiresToken: boolean;
1346
- enableScoreSealing: boolean;
1347
- scoreSealingSecret?: string;
1348
- modes: Record<string, LeaderboardModeConfig>;
1349
- periods: Record<string, LeaderboardPeriodConfig>;
1350
- antiCheat: LeaderboardAntiCheatConfig;
1351
- displaySettings: LeaderboardDisplaySettings;
1352
- }
1353
- interface ScoreToken {
1354
- token: string;
1355
- startTime: number;
1356
- expiresAt: number;
1357
- sealingNonce?: string | null;
1358
- sealingSecret?: string | null;
1359
- mode: string;
1360
- }
1361
- interface SubmitScoreParams {
1362
- token?: string;
1363
- score: number;
1364
- duration: number;
1365
- mode?: string;
1366
- period?: string;
1367
- telemetry?: Record<string, any>;
1368
- metadata?: Record<string, any>;
1369
- }
1370
- interface SubmitScoreResult {
1371
- accepted: boolean;
1372
- rank?: number | null;
1373
- zScore?: number | null;
1374
- isAnomaly?: boolean;
1375
- /** Human-readable explanation when `accepted` is false (e.g., keep-best rejection). */
1376
- reason?: string | null;
1377
- }
1378
- interface GetPagedScoresOptions {
1379
- mode?: string;
1380
- period?: string;
1381
- periodDate?: number | string;
1382
- cursor?: string | null;
1383
- limit?: number;
1384
- variant?: 'standard' | 'highlight';
1385
- topCount?: number;
1386
- contextAhead?: number;
1387
- contextBehind?: number;
1388
- }
1389
- interface LeaderboardEntry {
1390
- profileId: string;
1391
- username: string;
1392
- avatarUrl: string | null;
1393
- score: number;
1394
- duration: number;
1395
- submittedAt: number;
1396
- token?: string;
1397
- rank: number | null;
1398
- zScore?: number | null;
1399
- isAnomaly?: boolean;
1400
- trustScore?: number | null;
1401
- isShadowBanned?: boolean;
1402
- expiresAt?: number | null;
1403
- metadata?: Record<string, any> | null;
1404
- isSeed?: boolean;
1405
- }
1406
- interface PagedScoresResponse {
1407
- variant: 'standard' | 'highlight';
1408
- entries: LeaderboardEntry[];
1409
- totalEntries: number;
1410
- nextCursor?: string | null;
1411
- playerRank: number | null;
1412
- periodInstance: string;
1413
- }
1414
- interface PlayerRankOptions {
1415
- mode?: string;
1416
- period?: string;
1417
- periodDate?: number | string;
1418
- }
1419
- interface PlayerRankResult {
1420
- rank: number | null;
1421
- score?: number;
1422
- totalPlayers: number;
1423
- percentile?: number;
1424
- trustScore: number;
1425
- periodInstance: string;
1426
- }
1427
- interface PodiumScoresContext {
1428
- topEntries: LeaderboardEntry[];
1429
- beforePlayer: LeaderboardEntry[];
1430
- playerEntry?: LeaderboardEntry | null;
1431
- afterPlayer: LeaderboardEntry[];
1432
- totalBefore: number;
1433
- totalAfter: number;
1434
- omittedBefore: number;
1435
- omittedAfter: number;
1436
- }
1437
- interface PodiumScoresResponse extends PagedScoresResponse {
1438
- variant: 'highlight';
1439
- context: PodiumScoresContext;
1440
- }
1441
- interface GetPodiumScoresOptions extends Omit<GetPagedScoresOptions, 'variant'> {
1442
- }
1443
- interface LeaderboardApi {
1444
- createScoreToken(mode?: string): Promise<ScoreToken>;
1445
- submitScore(params: SubmitScoreParams): Promise<SubmitScoreResult>;
1446
- getPagedScores(options?: GetPagedScoresOptions): Promise<PagedScoresResponse>;
1447
- getMyRank(options?: PlayerRankOptions): Promise<PlayerRankResult>;
1448
- getPodiumScores(options?: GetPodiumScoresOptions): Promise<PodiumScoresResponse>;
1449
- }
1450
-
1451
1577
  /**
1452
1578
  * UGC (User-Generated Content) API
1453
1579
  *
@@ -1501,6 +1627,11 @@ interface UgcListParams {
1501
1627
  type UgcBuiltinSortBy = 'recent' | 'mostLiked' | 'mostUsed';
1502
1628
  type UgcCustomSortBy = `idx_${string}`;
1503
1629
  type UgcSortBy = UgcBuiltinSortBy | UgcCustomSortBy;
1630
+ interface UgcRangeFilter {
1631
+ gte?: number;
1632
+ lte?: number;
1633
+ }
1634
+ type UgcFilterValue = string | number | UgcRangeFilter;
1504
1635
  interface UgcBrowseParams {
1505
1636
  contentType?: string;
1506
1637
  authorId?: string;
@@ -1508,7 +1639,7 @@ interface UgcBrowseParams {
1508
1639
  limit?: number;
1509
1640
  sortBy?: UgcSortBy;
1510
1641
  sortOrder?: 'asc' | 'desc';
1511
- filters?: Record<string, unknown>;
1642
+ filters?: Record<string, UgcFilterValue>;
1512
1643
  }
1513
1644
  interface UgcGetManyParams {
1514
1645
  entryIds: string[];
@@ -1520,7 +1651,7 @@ interface UgcGetManyResponse {
1520
1651
  }
1521
1652
  interface UgcCountParams {
1522
1653
  contentType?: string;
1523
- filters?: Record<string, unknown>;
1654
+ filters?: Record<string, UgcFilterValue>;
1524
1655
  }
1525
1656
  interface UgcCrossAppBrowseParams extends UgcBrowseParams {
1526
1657
  targetAppId: string;
@@ -1988,267 +2119,6 @@ interface SocialApi {
1988
2119
  canShareFileAsync(): Promise<CanShareFileResult>;
1989
2120
  }
1990
2121
 
1991
- type ImageGenModel = 'gemini-3.1-flash-image-preview' | 'gemini-3-pro-image-preview';
1992
- type BgRemovalModel = 'bria' | 'birefnet';
1993
- type BiRefNetVariant = 'light' | 'heavy' | 'portrait';
1994
- interface RemoveBackgroundOptions {
1995
- /** Model to use. Default: 'bria'. */
1996
- model?: BgRemovalModel;
1997
- /** BiRefNet variant (ignored when model is 'bria'). Default: 'light'. */
1998
- variant?: BiRefNetVariant;
1999
- /** Operating resolution for BiRefNet (ignored for bria). Default: '1024x1024'. */
2000
- resolution?: '1024x1024' | '2048x2048';
2001
- }
2002
- interface ImageGenParams {
2003
- prompt: string;
2004
- negativePrompt?: string;
2005
- aspectRatio?: '1:1' | '2:3' | '3:2' | '3:4' | '4:3' | '4:5' | '5:4' | '9:16' | '16:9' | '21:9';
2006
- /**
2007
- * Reference images for style/content guidance.
2008
- * Each entry can be:
2009
- * - A file key (e.g. `"sprites/hero.png"`) — resolved server-side from your app's storage
2010
- * - An HTTPS URL — fetched server-side
2011
- * - A data URI (`data:image/png;base64,...`)
2012
- */
2013
- referenceImages?: string[];
2014
- seed?: number;
2015
- /**
2016
- * When true, removes the background using Bria (default).
2017
- * When an object, uses the specified model/variant.
2018
- */
2019
- removeBackground?: boolean | RemoveBackgroundOptions;
2020
- /** Model to use. Defaults to 'gemini-3.1-flash-image-preview' (Nano Banana 2). */
2021
- model?: ImageGenModel;
2022
- }
2023
- interface ImageGenResult {
2024
- imageUrl: string;
2025
- prompt: string;
2026
- }
2027
- interface ImageGenJobEvent {
2028
- jobId: string;
2029
- status: 'completed' | 'failed';
2030
- params: ImageGenParams;
2031
- result?: ImageGenResult;
2032
- error?: string;
2033
- }
2034
- interface DepthEstimationParams {
2035
- /** Source image: file key, HTTPS URL, or data URI (HTTP path only). */
2036
- imageUrl: string;
2037
- /** Number of inference steps (1–50). Default: 10. */
2038
- numInferenceSteps?: number;
2039
- /** Ensemble predictions to average (1–20). Default: 10. */
2040
- ensembleSize?: number;
2041
- /** Max processing resolution; 0 = use input size (0–4096). Default: 0. */
2042
- processingRes?: number;
2043
- }
2044
- interface DepthEstimationResult {
2045
- depthMapUrl: string;
2046
- width: number;
2047
- height: number;
2048
- }
2049
- type RemoveBackgroundParams = RemoveBackgroundOptions & {
2050
- /** Source image: file key, HTTPS URL, or data URI (HTTP path only). */
2051
- imageUrl: string;
2052
- };
2053
- interface RemoveBackgroundResult {
2054
- imageUrl: string;
2055
- width: number;
2056
- height: number;
2057
- }
2058
- interface ImageGenApi {
2059
- generate(params: ImageGenParams): Promise<ImageGenResult>;
2060
- estimateDepth(params: DepthEstimationParams): Promise<DepthEstimationResult>;
2061
- removeBackground(params: RemoveBackgroundParams): Promise<RemoveBackgroundResult>;
2062
- getCompletedJobs(): Promise<ImageGenJobEvent[]>;
2063
- }
2064
-
2065
- type AudioGenType = 'sfx' | 'music' | 'tts';
2066
- type AudioGenProvider = 'elevenlabs';
2067
- interface AudioGenSFXParams {
2068
- type: 'sfx';
2069
- provider?: AudioGenProvider;
2070
- /** Describe materials, intensity, context — "sword clashing against metal shield, heavy impact" */
2071
- description: string;
2072
- /** Duration in seconds (0.5–30). Omit for model-decided. */
2073
- durationSec?: number;
2074
- /** Opaque correlation ID echoed back in job events for client-side recovery. */
2075
- clientRef?: string;
2076
- }
2077
- interface AudioGenMusicParams {
2078
- type: 'music';
2079
- provider?: AudioGenProvider;
2080
- /** Genre, tempo, instruments, mood — "orchestral victory fanfare, triumphant brass" */
2081
- prompt: string;
2082
- /** Duration in seconds (REQUIRED, 1–300). */
2083
- durationSec: number;
2084
- /** Opaque correlation ID echoed back in job events for client-side recovery. */
2085
- clientRef?: string;
2086
- }
2087
- type TTSModel = 'eleven_v3' | 'eleven_multilingual_v2';
2088
- interface AudioGenTTSParams {
2089
- type: 'tts';
2090
- provider?: AudioGenProvider;
2091
- /** Text to speak. Supports ElevenLabs v3 audio tags: [whispers], [shouts], [pause]. */
2092
- text: string;
2093
- /** ElevenLabs voice ID. Use a known voice ID from the ElevenLabs library. */
2094
- voiceId: string;
2095
- /** TTS model. Default: 'eleven_v3'. */
2096
- model?: TTSModel;
2097
- /** 0–1. Lower = more expressive. Default: 0.5. */
2098
- stability?: number;
2099
- /** 0–1. Voice similarity boost. Default: 0.8. */
2100
- similarityBoost?: number;
2101
- /** Speech speed 0.5–2.0. Default: 1.0. */
2102
- speed?: number;
2103
- /** Opaque correlation ID echoed back in job events for client-side recovery. */
2104
- clientRef?: string;
2105
- }
2106
- type AudioGenParams = AudioGenSFXParams | AudioGenMusicParams | AudioGenTTSParams;
2107
- interface AudioGenResult {
2108
- generationId: string;
2109
- audioUrl: string;
2110
- type: AudioGenType;
2111
- durationSec: number;
2112
- prompt: string;
2113
- }
2114
- interface AudioGenJobEvent {
2115
- jobId: string;
2116
- status: 'completed' | 'failed';
2117
- params: AudioGenParams;
2118
- result?: AudioGenResult;
2119
- error?: string;
2120
- }
2121
- interface VoiceLibraryEntry {
2122
- voiceId: string;
2123
- name: string;
2124
- category?: string;
2125
- description?: string;
2126
- previewUrl?: string;
2127
- labels?: Record<string, string>;
2128
- }
2129
- interface ListVoicesResult {
2130
- voices: VoiceLibraryEntry[];
2131
- }
2132
- interface DesignVoicesParams {
2133
- /** Natural-language voice description — "Young female, breathy, excited" */
2134
- description: string;
2135
- /** Optional sample text (100–1000 chars). ElevenLabs uses a default if omitted. */
2136
- sampleText?: string;
2137
- }
2138
- interface DesignVoicePreview {
2139
- /**
2140
- * Temporary voice ID returned by ElevenLabs createPreviews.
2141
- * Can be used as a voiceId for TTS generation.
2142
- *
2143
- * NOTE: If direct use fails, the host may need an intermediate
2144
- * textToVoice.create() step — see PRD open question #2.
2145
- */
2146
- generatedVoiceId: string;
2147
- /** Data URI or URL of the audio preview. */
2148
- audioUrl: string;
2149
- durationSec: number;
2150
- }
2151
- interface DesignVoicesResult {
2152
- previews: DesignVoicePreview[];
2153
- /** The text that was spoken in the previews. */
2154
- previewText: string;
2155
- }
2156
- interface AudioGenApi {
2157
- generate(params: AudioGenParams): Promise<AudioGenResult>;
2158
- getCompletedJobs(): Promise<AudioGenJobEvent[]>;
2159
- listVoices(): Promise<ListVoicesResult>;
2160
- designVoices(params: DesignVoicesParams): Promise<DesignVoicesResult>;
2161
- }
2162
-
2163
- type VideoGenProvider = 'seedance-2.0' | 'seedance-2.0-fast' | 'kling-3.0-standard';
2164
- type VideoGenMode = 'text-to-video' | 'image-to-video' | 'reference-to-video';
2165
- type VideoGenAspectRatio = '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16';
2166
- type VideoGenResolution = '480p' | '720p' | '1080p';
2167
- interface VideoGenBase {
2168
- prompt?: string;
2169
- seed?: number;
2170
- requestOrigin?: string;
2171
- clientRef?: string;
2172
- }
2173
- interface SeedanceBase extends VideoGenBase {
2174
- provider: 'seedance-2.0' | 'seedance-2.0-fast';
2175
- aspectRatio?: VideoGenAspectRatio;
2176
- resolution?: VideoGenResolution;
2177
- durationSeconds?: 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
2178
- generateAudio?: boolean;
2179
- cameraFixed?: boolean;
2180
- }
2181
- interface SeedanceTextToVideoParams extends SeedanceBase {
2182
- mode: 'text-to-video';
2183
- }
2184
- interface SeedanceImageToVideoParams extends SeedanceBase {
2185
- mode: 'image-to-video';
2186
- startImageUrl: string;
2187
- endImageUrl?: string;
2188
- }
2189
- interface SeedanceReferenceToVideoParams extends SeedanceBase {
2190
- mode: 'reference-to-video';
2191
- /** Style/content reference images. Max 9 for Seedance. */
2192
- imageReferences?: string[];
2193
- /** Motion reference videos. Max 3 for Seedance. */
2194
- videoReferences?: string[];
2195
- /** Audio samples for voice cloning. Max 3 refs, each 3–5s, total <= 15s. Must be re-encoded (not stream-copied) to exact-second boundaries. */
2196
- audioReferences?: string[];
2197
- }
2198
- interface KlingMultiPromptElement {
2199
- prompt: string;
2200
- durationSeconds?: number;
2201
- }
2202
- interface KlingBase extends VideoGenBase {
2203
- provider: 'kling-3.0-standard';
2204
- aspectRatio?: '16:9' | '9:16' | '1:1';
2205
- durationSeconds?: 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
2206
- generateAudio?: boolean;
2207
- negativePrompt?: string;
2208
- cfgScale?: number;
2209
- shotType?: 'customize' | 'intelligent';
2210
- multiPrompt?: KlingMultiPromptElement[];
2211
- }
2212
- interface KlingTextToVideoParams extends KlingBase {
2213
- mode: 'text-to-video';
2214
- }
2215
- interface KlingImageToVideoParams extends KlingBase {
2216
- mode: 'image-to-video';
2217
- startImageUrl: string;
2218
- endImageUrl?: string;
2219
- }
2220
- type VideoGenParams = SeedanceTextToVideoParams | SeedanceImageToVideoParams | SeedanceReferenceToVideoParams | KlingTextToVideoParams | KlingImageToVideoParams;
2221
- interface VideoGenResult {
2222
- generationId: string;
2223
- videoUrl: string;
2224
- posterUrl?: string;
2225
- durationSeconds: number;
2226
- width: number;
2227
- height: number;
2228
- provider: VideoGenProvider;
2229
- mode: VideoGenMode;
2230
- prompt: string;
2231
- seed: number;
2232
- }
2233
- interface VideoGenJobEvent {
2234
- jobId: string;
2235
- status: 'completed' | 'failed';
2236
- params: VideoGenParams;
2237
- result?: VideoGenResult;
2238
- error?: string;
2239
- }
2240
- interface VideoGenJobStartedEvent {
2241
- jobId: string;
2242
- }
2243
- interface VideoGenApi {
2244
- generate(params: VideoGenParams): Promise<VideoGenResult>;
2245
- getCompletedJobs(): Promise<VideoGenJobEvent[]>;
2246
- cancel(jobId: string): Promise<void>;
2247
- onJobStarted(callback: (event: VideoGenJobStartedEvent) => void): {
2248
- unsubscribe: () => void;
2249
- };
2250
- }
2251
-
2252
2122
  interface FileEntry {
2253
2123
  key: string;
2254
2124
  sizeBytes: number;
@@ -2312,6 +2182,23 @@ interface ExistsParams {
2312
2182
  targetAppId?: string;
2313
2183
  targetProfileId?: string;
2314
2184
  }
2185
+ interface BatchMetadataParams {
2186
+ keys: string[];
2187
+ targetAppId?: string;
2188
+ targetProfileId?: string;
2189
+ }
2190
+ interface BatchMetadataResult {
2191
+ entries: Record<string, FileEntry>;
2192
+ ttlMs: number;
2193
+ }
2194
+ interface BatchExistsParams {
2195
+ keys: string[];
2196
+ targetAppId?: string;
2197
+ targetProfileId?: string;
2198
+ }
2199
+ interface BatchExistsResult {
2200
+ results: Record<string, boolean>;
2201
+ }
2315
2202
  interface StorageQuota {
2316
2203
  usedBytes: number;
2317
2204
  capBytes: number;
@@ -2353,6 +2240,11 @@ type TransformParams = {
2353
2240
  input: string;
2354
2241
  outputKey: string;
2355
2242
  targetResolution?: '720p' | '1080p';
2243
+ model?: 'standard-v2' | 'low-resolution-v2' | 'cgi' | 'high-fidelity-v2' | 'recovery-v2';
2244
+ sharpen?: number;
2245
+ denoise?: number;
2246
+ faceEnhancement?: boolean;
2247
+ outputFormat?: 'png' | 'jpeg';
2356
2248
  clientRef?: string;
2357
2249
  } | {
2358
2250
  op: 'copy';
@@ -2399,229 +2291,67 @@ interface TransformResult {
2399
2291
  interface ConfirmUploadOptions {
2400
2292
  clientRef?: string;
2401
2293
  }
2294
+ interface BatchUploadParams {
2295
+ files: Array<{
2296
+ key: string;
2297
+ contentType: string;
2298
+ sizeBytes: number;
2299
+ visibility?: 'private' | 'public';
2300
+ }>;
2301
+ }
2302
+ interface BatchUploadResult {
2303
+ files: UploadResult[];
2304
+ }
2305
+ interface BatchConfirmResult {
2306
+ jobs: Array<{
2307
+ key: string;
2308
+ jobId?: string;
2309
+ status: string;
2310
+ error?: string;
2311
+ }>;
2312
+ }
2313
+ interface ExportToCloudinaryParams {
2314
+ key: string;
2315
+ publicId?: string;
2316
+ folder?: string;
2317
+ }
2318
+ interface CloudinaryExportResult {
2319
+ secureUrl: string;
2320
+ publicId: string;
2321
+ }
2402
2322
  interface FilesJobEvent {
2403
2323
  jobId: string;
2404
- type: 'fileConfirm' | 'upscale' | 'transform';
2324
+ type: 'fileConfirm' | 'upscale' | 'transform' | 'fileExportCloudinary';
2405
2325
  status: 'completed' | 'failed';
2406
2326
  clientRef?: string;
2407
2327
  params: Record<string, unknown>;
2408
- result?: FileEntry | TransformResult;
2409
- error?: string;
2328
+ result?: FileEntry | TransformResult | CloudinaryExportResult;
2329
+ error?: string | {
2330
+ code: string;
2331
+ message: string;
2332
+ };
2410
2333
  }
2411
2334
  interface FilesApi {
2412
2335
  upload(params: UploadParams): Promise<UploadResult>;
2413
2336
  confirmUpload(key: string, options?: ConfirmUploadOptions): Promise<FileEntry>;
2337
+ batchUpload(params: BatchUploadParams): Promise<BatchUploadResult>;
2338
+ batchConfirm(keys: string[], options?: ConfirmUploadOptions): Promise<BatchConfirmResult>;
2414
2339
  getUrl(params: GetUrlParams): Promise<string>;
2415
2340
  getUrls(params: GetUrlsParams): Promise<GetUrlsResult>;
2416
2341
  getMetadata(params: GetMetadataParams): Promise<FileEntry>;
2417
2342
  exists(params: ExistsParams): Promise<boolean>;
2343
+ batchGetMetadata(params: BatchMetadataParams): Promise<BatchMetadataResult>;
2344
+ batchExists(params: BatchExistsParams): Promise<BatchExistsResult>;
2418
2345
  delete(key: string): Promise<void>;
2419
2346
  list(params?: ListParams): Promise<ListResult>;
2420
2347
  getQuota(): Promise<StorageQuota>;
2421
2348
  hasStorageAvailable(sizeBytes: number): Promise<boolean>;
2422
2349
  setVisibility(key: string, visibility: 'private' | 'public'): Promise<FileEntry>;
2423
2350
  transform(params: TransformParams): Promise<TransformResult>;
2351
+ exportToCloudinary(params: ExportToCloudinaryParams): Promise<CloudinaryExportResult>;
2424
2352
  getCompletedJobs(): Promise<FilesJobEvent[]>;
2425
2353
  }
2426
2354
 
2427
- type SpriteGenModel = string;
2428
- interface SpriteGenParams {
2429
- prompt: string;
2430
- /** Pixel art (true) or detailed HD art (false). Default true. */
2431
- pixel?: boolean;
2432
- width?: number;
2433
- height?: number;
2434
- bgMode?: 'transparent' | 'white' | 'include';
2435
- theme?: string;
2436
- style?: string;
2437
- colors?: string[];
2438
- /** SpriteCook asset ID from a prior generation, for style consistency. */
2439
- referenceAssetId?: string;
2440
- /** Creator-storage file key to use as style reference (resolved server-side). */
2441
- referenceFileKey?: string;
2442
- model?: SpriteGenModel;
2443
- }
2444
- interface SpriteGenResult {
2445
- generationId: string;
2446
- imageUrl: string;
2447
- spriteCookAssetId: string;
2448
- prompt: string;
2449
- model: string;
2450
- width: number;
2451
- height: number;
2452
- }
2453
- interface AnimateSpriteParams {
2454
- /** generationId from a prior spriteGen.generate() call. */
2455
- sourceGenerationId?: string;
2456
- /** Or: a creator-storage file key to animate (imported to SpriteCook on the fly). */
2457
- sourceFileKey?: string;
2458
- /** Or: an HTTPS URL to import and animate. */
2459
- sourceImageUrl?: string;
2460
- /** Motion description, e.g. "walk cycle, side view" or "idle breathing". */
2461
- prompt: string;
2462
- /** Frame count. Pixel: 2-16 (even), HD: 2-24 (even). Default 8. */
2463
- outputFrames?: number;
2464
- /** Output format. Default 'spritesheet'. */
2465
- outputFormat?: 'spritesheet' | 'gif' | 'webp';
2466
- /** Background removal mode. Default 'Basic'. */
2467
- removeBg?: 'None' | 'Basic' | 'Pro';
2468
- }
2469
- interface AnimateSpriteResult {
2470
- generationId: string;
2471
- spriteSheetUrl: string;
2472
- frameCount: number;
2473
- frameWidth: number;
2474
- frameHeight: number;
2475
- prompt: string;
2476
- }
2477
- interface SpriteGenJobEvent {
2478
- jobId: string;
2479
- status: 'completed' | 'failed';
2480
- /** Firestore job type — always 'spriteGen'. Use params.operation to distinguish generate vs animate. */
2481
- type: string;
2482
- params: (SpriteGenParams | AnimateSpriteParams) & {
2483
- operation: 'generate' | 'animate';
2484
- };
2485
- result?: SpriteGenResult | AnimateSpriteResult;
2486
- error?: string;
2487
- }
2488
- interface SpriteGenApi {
2489
- generate(params: SpriteGenParams): Promise<SpriteGenResult>;
2490
- animate(params: AnimateSpriteParams): Promise<AnimateSpriteResult>;
2491
- getCompletedJobs(): Promise<SpriteGenJobEvent[]>;
2492
- }
2493
-
2494
- type ThreeDGenProvider = 'pixal3d' | 'hunyuan3d-v3.1-pro' | 'trellis-2';
2495
- type ThreeDGenMode = 'image-to-3d' | 'text-to-3d';
2496
- type ThreeDGenQuality = 'draft' | 'standard' | 'high';
2497
- interface ThreeDGenBase {
2498
- quality?: ThreeDGenQuality;
2499
- seed?: number;
2500
- requestOrigin?: string;
2501
- clientRef?: string;
2502
- /** Resolve a Files SDK key as the source image (alternative to imageUrl) */
2503
- imageFileKey?: string;
2504
- }
2505
- interface Pixal3DImageTo3DParams extends ThreeDGenBase {
2506
- provider: 'pixal3d';
2507
- mode: 'image-to-3d';
2508
- imageUrl: string;
2509
- providerOptions?: {
2510
- resolution?: 1024 | 1536;
2511
- decimation_target?: number;
2512
- texture_size?: 1024 | 2048 | 4096;
2513
- remesh?: boolean;
2514
- ss_guidance_strength?: number;
2515
- ss_sampling_steps?: number;
2516
- shape_slat_guidance_strength?: number;
2517
- shape_slat_sampling_steps?: number;
2518
- tex_slat_guidance_strength?: number;
2519
- tex_slat_sampling_steps?: number;
2520
- };
2521
- }
2522
- interface HunyuanImageTo3DParams extends ThreeDGenBase {
2523
- provider: 'hunyuan3d-v3.1-pro';
2524
- mode: 'image-to-3d';
2525
- imageUrl: string;
2526
- additionalViews?: {
2527
- backImageUrl?: string;
2528
- leftImageUrl?: string;
2529
- rightImageUrl?: string;
2530
- topImageUrl?: string;
2531
- bottomImageUrl?: string;
2532
- };
2533
- providerOptions?: {
2534
- face_count?: number;
2535
- generate_type?: 'Normal' | 'Geometry';
2536
- enable_pbr?: boolean;
2537
- };
2538
- }
2539
- interface HunyuanTextTo3DParams extends ThreeDGenBase {
2540
- provider: 'hunyuan3d-v3.1-pro';
2541
- mode: 'text-to-3d';
2542
- prompt: string;
2543
- providerOptions?: {
2544
- face_count?: number;
2545
- generate_type?: 'Normal' | 'Geometry';
2546
- enable_pbr?: boolean;
2547
- };
2548
- }
2549
- interface Trellis2ImageTo3DParams extends ThreeDGenBase {
2550
- provider: 'trellis-2';
2551
- mode: 'image-to-3d';
2552
- imageUrl: string;
2553
- providerOptions?: Record<string, never>;
2554
- }
2555
- type ThreeDGenParams = Pixal3DImageTo3DParams | HunyuanImageTo3DParams | HunyuanTextTo3DParams | Trellis2ImageTo3DParams;
2556
- interface ThreeDGenResult {
2557
- generationId: string;
2558
- modelUrl: string;
2559
- rawModelUrl?: string;
2560
- thumbnailUrl?: string;
2561
- provider: ThreeDGenProvider;
2562
- mode: ThreeDGenMode;
2563
- quality: ThreeDGenQuality;
2564
- seed: number;
2565
- compression?: {
2566
- inputSizeBytes: number;
2567
- outputSizeBytes: number;
2568
- compressionPercent: number;
2569
- };
2570
- }
2571
- type RemeshTargetPreset = 'character' | 'prop';
2572
- interface RemeshParams {
2573
- modelUrl: string;
2574
- targetFaceCount?: number;
2575
- targetPreset?: RemeshTargetPreset;
2576
- clientRef?: string;
2577
- }
2578
- interface RemeshResult {
2579
- remeshId: string;
2580
- modelUrl: string;
2581
- faceCount: number;
2582
- provider: 'meshy';
2583
- }
2584
- interface RigParams {
2585
- modelUrl: string;
2586
- heightMeters?: number;
2587
- clientRef?: string;
2588
- }
2589
- interface RigResult {
2590
- rigId: string;
2591
- modelUrl: string;
2592
- provider: 'meshy';
2593
- }
2594
- type AnimationPreset = 'idle' | 'walk' | 'run' | 'jump' | 'attack' | 'dance' | 'wave' | 'crouch' | 'fall' | 'hit';
2595
- interface AnimateParams {
2596
- rigId: string;
2597
- animations: (AnimationPreset | number)[];
2598
- clientRef?: string;
2599
- }
2600
- interface AnimatedClip {
2601
- animation: string;
2602
- modelUrl: string;
2603
- }
2604
- interface AnimateResult {
2605
- clips: AnimatedClip[];
2606
- provider: 'meshy';
2607
- }
2608
- type ThreeDGenJobOperation = 'generate' | 'remesh' | 'rig' | 'animate';
2609
- interface ThreeDGenJobEvent {
2610
- jobId: string;
2611
- operation: ThreeDGenJobOperation;
2612
- status: 'completed' | 'failed';
2613
- params: ThreeDGenParams | RemeshParams | RigParams | AnimateParams;
2614
- result?: ThreeDGenResult | RemeshResult | RigResult | AnimateResult;
2615
- error?: string;
2616
- }
2617
- interface ThreeDGenApi {
2618
- generate(params: ThreeDGenParams): Promise<ThreeDGenResult>;
2619
- remesh(params: RemeshParams): Promise<RemeshResult>;
2620
- rig(params: RigParams): Promise<RigResult>;
2621
- animate(params: AnimateParams): Promise<AnimateResult>;
2622
- getCompletedJobs(): Promise<ThreeDGenJobEvent[]>;
2623
- }
2624
-
2625
2355
  interface Entitlement {
2626
2356
  docId: string;
2627
2357
  userId: string;
@@ -2926,6 +2656,34 @@ interface VideoApi {
2926
2656
  }) => void): Subscription;
2927
2657
  }
2928
2658
 
2659
+ interface AdminGenBrowseParams {
2660
+ profileId?: string;
2661
+ status?: 'active' | 'removed';
2662
+ cursor?: string;
2663
+ limit?: number;
2664
+ sortOrder?: 'asc' | 'desc';
2665
+ }
2666
+ interface AdminGenBrowseResponse<TEntry> {
2667
+ entries: TEntry[];
2668
+ nextCursor?: string;
2669
+ }
2670
+ interface AdminGenListReportsParams {
2671
+ status?: 'pending' | 'reviewed' | 'dismissed';
2672
+ cursor?: string;
2673
+ limit?: number;
2674
+ }
2675
+ interface AdminGenListReportsResponse<TReport> {
2676
+ reports: TReport[];
2677
+ nextCursor?: string;
2678
+ }
2679
+ type AdminGenResolveAction = 'reviewed' | 'dismissed';
2680
+ interface AdminGenApi<TEntry, TReport> {
2681
+ browse(params?: AdminGenBrowseParams): Promise<AdminGenBrowseResponse<TEntry>>;
2682
+ removeEntry(generationId: string): Promise<void>;
2683
+ listReports(params?: AdminGenListReportsParams): Promise<AdminGenListReportsResponse<TReport>>;
2684
+ resolveReport(reportId: string, action: AdminGenResolveAction): Promise<void>;
2685
+ }
2686
+
2929
2687
  type AppRole = 'owner' | 'editor' | 'none';
2930
2688
  interface AdminUgcBrowseParams {
2931
2689
  contentType?: string;
@@ -2996,17 +2754,6 @@ interface ImageGenEntry {
2996
2754
  createdAt: number;
2997
2755
  status: 'active' | 'removed';
2998
2756
  }
2999
- interface AdminImageGenBrowseParams {
3000
- profileId?: string;
3001
- status?: 'active' | 'removed';
3002
- cursor?: string;
3003
- limit?: number;
3004
- sortOrder?: 'asc' | 'desc';
3005
- }
3006
- interface AdminImageGenBrowseResponse {
3007
- entries: ImageGenEntry[];
3008
- nextCursor?: string;
3009
- }
3010
2757
  interface ImageGenReport {
3011
2758
  id: string;
3012
2759
  generationId: string;
@@ -3017,22 +2764,34 @@ interface ImageGenReport {
3017
2764
  createdAt: number;
3018
2765
  status: 'pending' | 'reviewed' | 'dismissed';
3019
2766
  }
3020
- interface AdminImageGenListReportsParams {
3021
- status?: 'pending' | 'reviewed' | 'dismissed';
3022
- cursor?: string;
3023
- limit?: number;
3024
- }
3025
- interface AdminImageGenListReportsResponse {
3026
- reports: ImageGenReport[];
3027
- nextCursor?: string;
2767
+ type AdminImageGenApi = AdminGenApi<ImageGenEntry, ImageGenReport>;
2768
+ interface VideoGenEntry {
2769
+ id: string;
2770
+ appId: string;
2771
+ profileId: string;
2772
+ provider: string;
2773
+ mode: string;
2774
+ prompt: string;
2775
+ videoUrl: string;
2776
+ posterUrl?: string;
2777
+ durationSeconds: number;
2778
+ width: number;
2779
+ height: number;
2780
+ generationCostUsd?: number;
2781
+ createdAt: number;
2782
+ status: 'active' | 'removed';
3028
2783
  }
3029
- type AdminImageGenResolveAction = 'reviewed' | 'dismissed';
3030
- interface AdminImageGenApi {
3031
- browse(params?: AdminImageGenBrowseParams): Promise<AdminImageGenBrowseResponse>;
3032
- removeEntry(generationId: string): Promise<void>;
3033
- listReports(params?: AdminImageGenListReportsParams): Promise<AdminImageGenListReportsResponse>;
3034
- resolveReport(reportId: string, action: AdminImageGenResolveAction): Promise<void>;
2784
+ interface VideoGenReport {
2785
+ id: string;
2786
+ generationId: string;
2787
+ appId: string;
2788
+ reporterId: string;
2789
+ reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
2790
+ details?: string;
2791
+ createdAt: number;
2792
+ status: 'pending' | 'reviewed' | 'dismissed';
3035
2793
  }
2794
+ type AdminVideoGenApi = AdminGenApi<VideoGenEntry, VideoGenReport>;
3036
2795
  interface SpriteGenEntry {
3037
2796
  id: string;
3038
2797
  appId: string;
@@ -3049,34 +2808,35 @@ interface SpriteGenEntry {
3049
2808
  frameHeight?: number;
3050
2809
  imageUrl: string;
3051
2810
  creditsUsed?: number;
2811
+ createdAt: number;
2812
+ status: 'active' | 'removed';
3052
2813
  }
3053
- interface ThreeDGenEntry {
2814
+ interface SpriteGenReport {
2815
+ id: string;
2816
+ generationId: string;
2817
+ appId: string;
2818
+ reporterId: string;
2819
+ reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
2820
+ details?: string;
2821
+ createdAt: number;
2822
+ status: 'pending' | 'reviewed' | 'dismissed';
2823
+ }
2824
+ type AdminSpriteGenApi = AdminGenApi<SpriteGenEntry, SpriteGenReport>;
2825
+ interface AudioGenEntry {
3054
2826
  id: string;
3055
2827
  appId: string;
3056
2828
  profileId: string;
3057
- operation: string;
2829
+ type: 'sfx' | 'music' | 'tts';
3058
2830
  provider: string;
3059
- mode?: string;
3060
- quality?: string;
3061
- prompt?: string;
3062
- modelUrl: string;
3063
- rawModelUrl?: string;
3064
- estimatedCostUsd: number;
2831
+ prompt: string;
2832
+ audioUrl: string;
2833
+ durationSec: number;
2834
+ model?: string;
2835
+ voiceId?: string;
3065
2836
  createdAt: number;
3066
2837
  status: 'active' | 'removed';
3067
2838
  }
3068
- interface AdminSpriteGenBrowseParams {
3069
- profileId?: string;
3070
- status?: 'active' | 'removed';
3071
- cursor?: string;
3072
- limit?: number;
3073
- sortOrder?: 'asc' | 'desc';
3074
- }
3075
- interface AdminSpriteGenBrowseResponse {
3076
- entries: SpriteGenEntry[];
3077
- nextCursor?: string;
3078
- }
3079
- interface SpriteGenReport {
2839
+ interface AudioGenReport {
3080
2840
  id: string;
3081
2841
  generationId: string;
3082
2842
  appId: string;
@@ -3086,64 +2846,60 @@ interface SpriteGenReport {
3086
2846
  createdAt: number;
3087
2847
  status: 'pending' | 'reviewed' | 'dismissed';
3088
2848
  }
3089
- interface AdminSpriteGenListReportsParams {
3090
- status?: 'pending' | 'reviewed' | 'dismissed';
3091
- cursor?: string;
3092
- limit?: number;
3093
- }
3094
- interface AdminSpriteGenListReportsResponse {
3095
- reports: SpriteGenReport[];
3096
- nextCursor?: string;
3097
- }
3098
- type AdminSpriteGenResolveAction = 'reviewed' | 'dismissed';
3099
- interface AdminSpriteGenApi {
3100
- browse(params?: AdminSpriteGenBrowseParams): Promise<AdminSpriteGenBrowseResponse>;
3101
- removeEntry(generationId: string): Promise<void>;
3102
- listReports(params?: AdminSpriteGenListReportsParams): Promise<AdminSpriteGenListReportsResponse>;
3103
- resolveReport(reportId: string, action: AdminSpriteGenResolveAction): Promise<void>;
3104
- }
3105
- interface AdminThreeDGenBrowseParams {
3106
- profileId?: string;
3107
- status?: 'active' | 'removed';
3108
- cursor?: string;
3109
- limit?: number;
3110
- sortOrder?: 'asc' | 'desc';
3111
- }
3112
- interface AdminThreeDGenBrowseResponse {
3113
- entries: ThreeDGenEntry[];
3114
- nextCursor?: string;
2849
+ type AdminAudioGenApi = AdminGenApi<AudioGenEntry, AudioGenReport>;
2850
+ interface ThreeDGenEntry {
2851
+ id: string;
2852
+ appId: string;
2853
+ profileId: string;
2854
+ operation: string;
2855
+ provider: string;
2856
+ mode?: string;
2857
+ quality?: string;
2858
+ prompt?: string;
2859
+ modelUrl: string;
2860
+ rawModelUrl?: string;
2861
+ estimatedCostUsd?: number;
2862
+ createdAt: number;
2863
+ status: 'active' | 'removed';
3115
2864
  }
3116
2865
  interface ThreeDGenReport {
3117
2866
  id: string;
3118
2867
  generationId: string;
3119
2868
  appId: string;
3120
2869
  reporterId: string;
3121
- reason: string;
2870
+ reason: 'inappropriate' | 'spam' | 'harassment' | 'other';
3122
2871
  details?: string;
3123
2872
  createdAt: number;
3124
2873
  status: 'pending' | 'reviewed' | 'dismissed';
3125
2874
  }
3126
- interface AdminThreeDGenListReportsParams {
3127
- status?: 'pending' | 'reviewed' | 'dismissed';
3128
- cursor?: string;
3129
- limit?: number;
3130
- }
3131
- interface AdminThreeDGenListReportsResponse {
3132
- reports: ThreeDGenReport[];
3133
- nextCursor?: string;
3134
- }
3135
- type AdminThreeDGenResolveAction = 'reviewed' | 'dismissed';
3136
- interface AdminThreeDGenApi {
3137
- browse(params?: AdminThreeDGenBrowseParams): Promise<AdminThreeDGenBrowseResponse>;
3138
- removeEntry(generationId: string): Promise<void>;
3139
- listReports(params?: AdminThreeDGenListReportsParams): Promise<AdminThreeDGenListReportsResponse>;
3140
- resolveReport(reportId: string, action: AdminThreeDGenResolveAction): Promise<void>;
3141
- }
2875
+ type AdminThreeDGenApi = AdminGenApi<ThreeDGenEntry, ThreeDGenReport>;
2876
+ type AdminImageGenBrowseParams = AdminGenBrowseParams;
2877
+ type AdminImageGenBrowseResponse = AdminGenBrowseResponse<ImageGenEntry>;
2878
+ type AdminImageGenListReportsParams = AdminGenListReportsParams;
2879
+ type AdminImageGenListReportsResponse = AdminGenListReportsResponse<ImageGenReport>;
2880
+ type AdminImageGenResolveAction = AdminGenResolveAction;
2881
+ type AdminVideoGenBrowseParams = AdminGenBrowseParams;
2882
+ type AdminVideoGenBrowseResponse = AdminGenBrowseResponse<VideoGenEntry>;
2883
+ type AdminVideoGenListReportsParams = AdminGenListReportsParams;
2884
+ type AdminVideoGenListReportsResponse = AdminGenListReportsResponse<VideoGenReport>;
2885
+ type AdminVideoGenResolveAction = AdminGenResolveAction;
2886
+ type AdminSpriteGenBrowseParams = AdminGenBrowseParams;
2887
+ type AdminSpriteGenBrowseResponse = AdminGenBrowseResponse<SpriteGenEntry>;
2888
+ type AdminSpriteGenListReportsParams = AdminGenListReportsParams;
2889
+ type AdminSpriteGenListReportsResponse = AdminGenListReportsResponse<SpriteGenReport>;
2890
+ type AdminSpriteGenResolveAction = AdminGenResolveAction;
2891
+ type AdminThreeDGenBrowseParams = AdminGenBrowseParams;
2892
+ type AdminThreeDGenBrowseResponse = AdminGenBrowseResponse<ThreeDGenEntry>;
2893
+ type AdminThreeDGenListReportsParams = AdminGenListReportsParams;
2894
+ type AdminThreeDGenListReportsResponse = AdminGenListReportsResponse<ThreeDGenReport>;
2895
+ type AdminThreeDGenResolveAction = AdminGenResolveAction;
3142
2896
  interface AppApi {
3143
2897
  getMyRole(): Promise<AppRole>;
3144
2898
  readonly adminUgc: AdminUgcApi;
3145
2899
  readonly adminImageGen: AdminImageGenApi;
2900
+ readonly adminVideoGen: AdminVideoGenApi;
3146
2901
  readonly adminSpriteGen: AdminSpriteGenApi;
2902
+ readonly adminAudioGen: AdminAudioGenApi;
3147
2903
  readonly adminThreeDGen: AdminThreeDGenApi;
3148
2904
  }
3149
2905
 
@@ -3767,4 +3523,4 @@ interface AdsApi {
3767
3523
  showInterstitialAd(options?: ShowInterstitialAdOptions): Promise<boolean>;
3768
3524
  }
3769
3525
 
3770
- export { type FetchFromCdnOptions as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type NotificationsApi as C, type ScheduleLocalNotification as D, type ScheduleNotificationOptions as E, type RCSAvailabilityStatus as F, type ScheduleRCSInput as G, type Host as H, type ScheduleRCSResult as I, type PopupsApi as J, type ShowToastOptions as K, type ShowInterstitialAdOptions as L, type ShowRewardedAdOptions as M, type NavigationApi as N, type ProfileApi as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationActiveRunsUpdate as S, type DeviceApi as T, type DeviceInfo as U, type EnvironmentApi as V, type EnvironmentInfo as W, type SystemApi as X, type SafeArea as Y, type AddToHomeScreenResult as Z, type CdnApi as _, type RecipeRequirementQuery as a, type SubscriptionTier as a$, type AssetUrlResult as a0, type TimeApi as a1, type ServerTimeData as a2, type GetFutureTimeOptions as a3, type AiApi as a4, type AiChatCompletionRequest as a5, type AiChatCompletionData as a6, type HapticsApi as a7, HapticFeedbackStyle as a8, type FeaturesApi as a9, type ExecuteScopedRecipeResult as aA, type GetAvailableRecipesOptions as aB, type GetAvailableRecipesResult as aC, type Recipe as aD, type GetBatchRecipeRequirements as aE, type TriggerRecipeChainOptions as aF, type RoomDataUpdate as aG, type RoomMessageEvent as aH, type ProposedMoveEvent as aI, RundotGameTransport as aJ, type RoomsApi as aK, type CreateRoomOptions as aL, type JoinOrCreateRoomOptions as aM, type JoinOrCreateResult as aN, type ListRoomsOptions as aO, type UpdateRoomDataOptions as aP, type RoomMessageRequest as aQ, type StartRoomGameOptions as aR, type ProposeMoveRequest as aS, type ProposeMoveResult as aT, type ValidateMoveVerdict as aU, type ValidateMoveResult as aV, type RoomSubscriptionOptions as aW, type LoggingApi as aX, type IapApi as aY, type SpendCurrencyOptions as aZ, type SpendCurrencyResult as a_, type Experiment as aa, type LifecycleApi as ab, type SleepCallback as ac, type Subscription as ad, type AwakeCallback as ae, type PauseCallback as af, type ResumeCallback as ag, type QuitCallback as ah, type BackButtonCallback as ai, type SimulationApi as aj, type SimulationSlotValidationResult as ak, type SimulationBatchOperation as al, type SimulationBatchOperationsResult as am, type SimulationAvailableItem as an, type SimulationPowerPreview as ao, type SimulationSlotMutationResult as ap, type SimulationSlotContainer as aq, type SimulationAssignment as ar, type SimulationState as as, type ExecuteRecipeOptions as at, type ExecuteRecipeResponse as au, type CollectRecipeResult as av, type ResetStateOptions as aw, type ResetStateResult as ax, type GetActiveRunsOptions as ay, type ExecuteScopedRecipeOptions as az, type RecipeRequirementResult as b, type AdminSpriteGenListReportsResponse as b$, type RunSubscriptionsResponse as b0, type SubscriptionInterval as b1, type PurchaseSubscriptionResponse as b2, type OpenStoreResult as b3, type LoadEmbeddedAssetsResponse as b4, type SharedAssetsApi as b5, type LeaderboardApi as b6, type ScoreToken as b7, type SubmitScoreParams as b8, type SubmitScoreResult as b9, type AccessGateApi as bA, type TextGenApi as bB, type ImageGenApi as bC, type AudioGenApi as bD, type SpriteGenApi as bE, type ThreeDGenApi as bF, type UgcApi as bG, type VideoApi as bH, type AppApi as bI, type AdminUgcApi as bJ, type AdminImageGenApi as bK, type AdminSpriteGenApi as bL, type AdminThreeDGenApi as bM, type AppRole as bN, type AdminUgcBrowseParams as bO, type AdminUgcBrowseResponse as bP, type AdminUgcListReportsParams as bQ, type AdminUgcListReportsResponse as bR, type AdminUgcResolveAction as bS, type AdminImageGenBrowseParams as bT, type AdminImageGenBrowseResponse as bU, type AdminImageGenListReportsParams as bV, type AdminImageGenListReportsResponse as bW, type AdminImageGenResolveAction as bX, type AdminSpriteGenBrowseParams as bY, type AdminSpriteGenBrowseResponse as bZ, type AdminSpriteGenListReportsParams as b_, type GetPagedScoresOptions as ba, type PagedScoresResponse as bb, type PlayerRankOptions as bc, type PlayerRankResult as bd, type GetPodiumScoresOptions as be, type PodiumScoresResponse as bf, type PreloaderApi as bg, type SocialApi as bh, type ShareMetadata as bi, type ShareLinkResult as bj, type SocialQRCodeOptions as bk, type QRCodeResult as bl, type ShareClickData as bm, type ShareFileOptions as bn, type ShareFileResult as bo, type CanShareFileResult as bp, type EntitlementApi as bq, type Entitlement as br, type LedgerEntry as bs, type ShopApi as bt, type StorefrontResponse as bu, type StorefrontItem as bv, type ShopPurchaseResponse as bw, type ShopOrderHistoryResponse as bx, type PromptLoginResult as by, type AccessTier as bz, type RundotGameAvailableRecipe as c, type NotificationTriggerInput as c$, type AdminSpriteGenResolveAction as c0, type Avatar3dApi as c1, type AssetManifest as c2, type Avatar3dConfig as c3, type ShowEditorOptions as c4, type Avatar3dEdits as c5, type AdsApi as c6, type ImageGenParams as c7, type ImageGenResult as c8, type DepthEstimationParams as c9, type AiMessage as cA, type AiTextContent as cB, type Asset as cC, type BgRemovalModel as cD, type BiRefNetVariant as cE, type Category as cF, type ConnectionState as cG, type GetSubscriptionsForTierRequest as cH, type HudInsets as cI, type ImageGenEntry as cJ, type ImageGenModel as cK, type ImageGenReport as cL, type InboundForKeyEntry as cM, type InboundMethodIds as cN, type InboundStorageApi as cO, type IsPlayerSubscribedRequest as cP, type JoinOrCreateRoomEnvelopeResponse as cQ, type JoinRoomMatchCriteria as cR, type LeaderboardAntiCheatConfig as cS, type LeaderboardConfig as cT, type LeaderboardDisplaySettings as cU, type LeaderboardEntry as cV, type LeaderboardModeConfig as cW, type LeaderboardPeriodConfig as cX, type LeaderboardPeriodType as cY, type LoadEmbeddedAssetsRequest as cZ, MockAvatarApi as c_, type DepthEstimationResult as ca, type RemoveBackgroundParams as cb, type RemoveBackgroundResult as cc, type ImageGenJobEvent as cd, type SpriteGenParams as ce, type SpriteGenResult as cf, type AnimateSpriteParams as cg, type AnimateSpriteResult as ch, type SpriteGenJobEvent as ci, type SharedStorageHostApi as cj, type VideoGenApi as ck, type FilesApi as cl, type MultiplayerApi as cm, type AttributionApi as cn, type InitializationContext as co, type InitializationOptions as cp, AccessDeniedError as cq, type AdminThreeDGenBrowseParams as cr, type AdminThreeDGenBrowseResponse as cs, type AdminThreeDGenListReportsParams as ct, type AdminThreeDGenListReportsResponse as cu, type AdminThreeDGenResolveAction as cv, type AdminUgcEntry as cw, type AiContentBlock as cx, type AiImageContent as cy, type AiImageUrlContent as cz, type RundotGameCollectRecipeResult as d, type OnNotificationCallback as d0, type OnRequestCallback as d1, type OnResponseCallback as d2, type PodiumScoresContext as d3, type ProposedMovePayload as d4, type Protocol as d5, type PurchaseSubscriptionRequest as d6, type RCSAvailabilityReason as d7, ROOM_GAME_PHASES as d8, type RecipeInfo as d9, type SimulationPersonalState as dA, type SimulationRoomActiveRecipe as dB, type SimulationRoomState as dC, type SpriteGenEntry as dD, type SpriteGenModel as dE, type SpriteGenReport as dF, type StorefrontCollection as dG, type StorefrontCollectionItem as dH, type SubPath as dI, type ThreeDGenEntry as dJ, type ThreeDGenReport as dK, type TimeIntervalTriggerInput as dL, type UgcReport as dM, createHost as dN, resolveCollectionItemPrice as dO, type RemoveBackgroundOptions as da, type RoomEnvelopeResponse as db, type RoomEvents as dc, type RoomGamePhase as dd, type RoomMessageEventType as de, type RoomMessagePayload as df, type RoomsEnvelopeResponse as dg, RpcInboundStorageApi as dh, RpcSharedAssetsApi as di, type RpcTransport as dj, type RunSubscription as dk, type RundotGameRoomCustomMetadata as dl, type RundotGameRoomPayload as dm, type RundotGameRoomRules as dn, type RundotGameRoomRulesGameState as dp, SHARE_FILE_ALLOWED_MIME_TYPES as dq, SHARE_FILE_MAX_SIZE_BYTES as dr, type ScheduleRCSStatus as ds, type ServerPlayer as dt, type ServerRoom as du, type ShareFileMimeType as dv, type ShopOrder as dw, type SimulationBatchOperationAssign as dx, type SimulationBatchOperationRemove as dy, type SimulationBatchOperationResult as dz, type RundotGameExecuteRecipeOptions as e, type RundotGameExecuteRecipeResult as f, type RundotGameExecuteScopedRecipeOptions as g, RundotGameRoom as h, type RundotGameSimulationConfig as i, type RundotGameSimulationEffect as j, type RundotGameSimulationRecipe as k, type RundotGameSimulationStateResponse as l, type SimulationEntityUpdate as m, type SimulationRunSummary as n, type SimulationSnapshotUpdate as o, type SimulationSubscribeOptions as p, type SimulationUpdateData as q, type SimulationUpdateType as r, type RpcRequest as s, type RpcResponse as t, type RpcNotification as u, RpcClient as v, type StorageApi as w, type NavigationStackInfo as x, type PushAppOptions as y, type NavigateToGameOptions as z };
3526
+ export { type FetchFromCdnOptions as $, type AnalyticsApi as A, type BatchRecipeRequirementsResult as B, type NotificationsApi as C, type ScheduleLocalNotification as D, type ScheduleNotificationOptions as E, type RCSAvailabilityStatus as F, type ScheduleRCSInput as G, type Host as H, type ScheduleRCSResult as I, type PopupsApi as J, type ShowToastOptions as K, type ShowInterstitialAdOptions as L, type ShowRewardedAdOptions as M, type NavigationApi as N, type ProfileApi as O, type Profile as P, type QuitOptions as Q, type RundotGameAPI as R, type SimulationActiveRunsUpdate as S, type DeviceApi as T, type DeviceInfo as U, type EnvironmentApi as V, type EnvironmentInfo as W, type SystemApi as X, type SafeArea as Y, type AddToHomeScreenResult as Z, type CdnApi as _, type RecipeRequirementQuery as a, type SpendCurrencyOptions as a$, type AssetUrlResult as a0, type TimeApi as a1, type ServerTimeData as a2, type GetFutureTimeOptions as a3, type AiApi as a4, type AiChatCompletionRequest as a5, type AiChatCompletionData as a6, type AiChatCompletionStreamOptions as a7, type AiChatCompletionStreamChunk as a8, type HapticsApi as a9, type GetActiveRunsOptions as aA, type ExecuteScopedRecipeOptions as aB, type ExecuteScopedRecipeResult as aC, type GetAvailableRecipesOptions as aD, type GetAvailableRecipesResult as aE, type Recipe as aF, type GetBatchRecipeRequirements as aG, type TriggerRecipeChainOptions as aH, type RoomDataUpdate as aI, type RoomMessageEvent as aJ, type ProposedMoveEvent as aK, RundotGameTransport as aL, type RoomsApi as aM, type CreateRoomOptions as aN, type JoinOrCreateRoomOptions as aO, type JoinOrCreateResult as aP, type ListRoomsOptions as aQ, type UpdateRoomDataOptions as aR, type RoomMessageRequest as aS, type StartRoomGameOptions as aT, type ProposeMoveRequest as aU, type ProposeMoveResult as aV, type ValidateMoveVerdict as aW, type ValidateMoveResult as aX, type RoomSubscriptionOptions as aY, type LoggingApi as aZ, type IapApi as a_, HapticFeedbackStyle as aa, type FeaturesApi as ab, type Experiment as ac, type LifecycleApi as ad, type SleepCallback as ae, type Subscription as af, type AwakeCallback as ag, type PauseCallback as ah, type ResumeCallback as ai, type QuitCallback as aj, type BackButtonCallback as ak, type SimulationApi as al, type SimulationSlotValidationResult as am, type SimulationBatchOperation as an, type SimulationBatchOperationsResult as ao, type SimulationAvailableItem as ap, type SimulationPowerPreview as aq, type SimulationSlotMutationResult as ar, type SimulationSlotContainer as as, type SimulationAssignment as at, type SimulationState as au, type ExecuteRecipeOptions as av, type ExecuteRecipeResponse as aw, type CollectRecipeResult as ax, type ResetStateOptions as ay, type ResetStateResult as az, type RecipeRequirementResult as b, type FilesApi as b$, type SpendCurrencyResult as b0, type SubscriptionTier as b1, type RunSubscriptionsResponse as b2, type SubscriptionInterval as b3, type PurchaseSubscriptionResponse as b4, type OpenStoreResult as b5, type LoadEmbeddedAssetsResponse as b6, type SharedAssetsApi as b7, type PreloaderApi as b8, type SocialApi as b9, type AdminSpriteGenApi as bA, type AdminAudioGenApi as bB, type AdminThreeDGenApi as bC, type AppRole as bD, type AdminUgcBrowseParams as bE, type AdminUgcBrowseResponse as bF, type AdminUgcListReportsParams as bG, type AdminUgcListReportsResponse as bH, type AdminUgcResolveAction as bI, type AdminGenBrowseParams as bJ, type AdminGenBrowseResponse as bK, type ImageGenEntry as bL, type AdminGenListReportsParams as bM, type AdminGenListReportsResponse as bN, type ImageGenReport as bO, type AdminGenResolveAction as bP, type SpriteGenEntry as bQ, type SpriteGenReport as bR, type ThreeDGenEntry as bS, type ThreeDGenReport as bT, type Avatar3dApi as bU, type AssetManifest as bV, type Avatar3dConfig as bW, type ShowEditorOptions as bX, type Avatar3dEdits as bY, type AdsApi as bZ, type SharedStorageHostApi as b_, type ShareMetadata as ba, type ShareLinkResult as bb, type SocialQRCodeOptions as bc, type QRCodeResult as bd, type ShareClickData as be, type ShareFileOptions as bf, type ShareFileResult as bg, type CanShareFileResult as bh, type EntitlementApi as bi, type Entitlement as bj, type LedgerEntry as bk, type ShopApi as bl, type StorefrontResponse as bm, type StorefrontItem as bn, type ShopPurchaseResponse as bo, type ShopOrderHistoryResponse as bp, type PromptLoginResult as bq, type AccessTier as br, type AccessGateApi as bs, type TextGenApi as bt, type UgcApi as bu, type VideoApi as bv, type AppApi as bw, type AdminUgcApi as bx, type AdminImageGenApi as by, type AdminVideoGenApi as bz, type RundotGameAvailableRecipe as c, type RoomMessageEventType as c$, type MultiplayerApi as c0, type AttributionApi as c1, type InitializationContext as c2, type InitializationOptions as c3, AccessDeniedError as c4, type AdminGenApi as c5, type AdminImageGenBrowseParams as c6, type AdminImageGenBrowseResponse as c7, type AdminImageGenListReportsParams as c8, type AdminImageGenListReportsResponse as c9, type AudioGenEntry as cA, type AudioGenReport as cB, type Category as cC, type ConnectionState as cD, type GetSubscriptionsForTierRequest as cE, type HudInsets as cF, type InboundForKeyEntry as cG, type InboundMethodIds as cH, type InboundStorageApi as cI, type IsPlayerSubscribedRequest as cJ, type JoinOrCreateRoomEnvelopeResponse as cK, type JoinRoomMatchCriteria as cL, type LoadEmbeddedAssetsRequest as cM, MockAvatarApi as cN, type NotificationTriggerInput as cO, type OnNotificationCallback as cP, type OnRequestCallback as cQ, type OnResponseCallback as cR, type ProposedMovePayload as cS, type Protocol as cT, type PurchaseSubscriptionRequest as cU, type RCSAvailabilityReason as cV, ROOM_GAME_PHASES as cW, type RecipeInfo as cX, type RoomEnvelopeResponse as cY, type RoomEvents as cZ, type RoomGamePhase as c_, type AdminImageGenResolveAction as ca, type AdminSpriteGenBrowseParams as cb, type AdminSpriteGenBrowseResponse as cc, type AdminSpriteGenListReportsParams as cd, type AdminSpriteGenListReportsResponse as ce, type AdminSpriteGenResolveAction as cf, type AdminThreeDGenBrowseParams as cg, type AdminThreeDGenBrowseResponse as ch, type AdminThreeDGenListReportsParams as ci, type AdminThreeDGenListReportsResponse as cj, type AdminThreeDGenResolveAction as ck, type AdminUgcEntry as cl, type AdminVideoGenBrowseParams as cm, type AdminVideoGenBrowseResponse as cn, type AdminVideoGenListReportsParams as co, type AdminVideoGenListReportsResponse as cp, type AdminVideoGenResolveAction as cq, type AiContentBlock as cr, type AiImageContent as cs, type AiImageUrlContent as ct, type AiMessage as cu, type AiResponseFormat as cv, type AiTextContent as cw, type AiToolResultContent as cx, type AiToolUseContent as cy, type Asset as cz, type RundotGameCollectRecipeResult as d, type RoomMessagePayload as d0, type RoomsEnvelopeResponse as d1, RpcInboundStorageApi as d2, RpcSharedAssetsApi as d3, type RpcTransport as d4, type RunSubscription as d5, type RundotGameRoomCustomMetadata as d6, type RundotGameRoomPayload as d7, type RundotGameRoomRules as d8, type RundotGameRoomRulesGameState as d9, SHARE_FILE_ALLOWED_MIME_TYPES as da, SHARE_FILE_MAX_SIZE_BYTES as db, type ScheduleRCSStatus as dc, type ServerPlayer as dd, type ServerRoom as de, type ShareFileMimeType as df, type ShopOrder as dg, type SimulationBatchOperationAssign as dh, type SimulationBatchOperationRemove as di, type SimulationBatchOperationResult as dj, type SimulationPersonalState as dk, type SimulationRoomActiveRecipe as dl, type SimulationRoomState as dm, type StorefrontCollection as dn, type StorefrontCollectionItem as dp, type SubPath as dq, type Tool as dr, type ToolChoice as ds, type ToolUse as dt, type TimeIntervalTriggerInput as du, type UgcReport as dv, type VideoGenEntry as dw, type VideoGenReport as dx, createHost as dy, resolveCollectionItemPrice as dz, type RundotGameExecuteRecipeOptions as e, type RundotGameExecuteRecipeResult as f, type RundotGameExecuteScopedRecipeOptions as g, RundotGameRoom as h, type RundotGameSimulationConfig as i, type RundotGameSimulationEffect as j, type RundotGameSimulationRecipe as k, type RundotGameSimulationStateResponse as l, type SimulationEntityUpdate as m, type SimulationRunSummary as n, type SimulationSnapshotUpdate as o, type SimulationSubscribeOptions as p, type SimulationUpdateData as q, type SimulationUpdateType as r, type RpcRequest as s, type RpcResponse as t, type RpcNotification as u, RpcClient as v, type StorageApi as w, type NavigationStackInfo as x, type PushAppOptions as y, type NavigateToGameOptions as z };