@indiegems/gem-web-sdk 11.1.2 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@ declare const PARENT_TO_FRAME: readonly [
26
26
  "gem.socketState",
27
27
  "gem.seatedEvent",
28
28
  "gem.autoStartFailedEvent",
29
+ "gem.ticketEvent",
29
30
  "gem.signalEvent",
30
31
  "gem.dedicatedEvent",
31
32
  "gem.partyResult",
@@ -70,12 +71,13 @@ declare const FRAME_TO_PARENT: readonly [
70
71
  "gem.portraitBorders",
71
72
  "gem.error",
72
73
  "gem.requestPurchase",
74
+ "gem.requestAvatar3dPurchase",
73
75
  "gem.deviceSettings.put",
74
76
  "gem.requestAd",
75
77
  "gem.requestSignIn",
76
78
  "gem.requestFriendChallenge"
77
79
  ];
78
- type GemCapability = "ads" | "signIn" | "purchases" | "friendChallenges" | "devtools" | "screenshot" | "feedbackContext" | "rooms" | "p2p" | "dedicated" | "clusterTarget" | "parties" | "autoStartFailure" | "partySeating" | "socketState" | "audioState" | "rewardCue" | "frameStats" | "portraitBorders" | "engagement" | "viewport" | "reservedAreas" | "walletDisplay" | "localHost" | "cohorts" | "earnAllowance" | "deviceSettings" | "asyncOpponents" | "share" | "avatarPicker" | "vibration" | "gameMenu" | "controls";
80
+ type GemCapability = "ads" | "signIn" | "purchases" | "avatar3dPurchases" | "friendChallenges" | "devtools" | "screenshot" | "feedbackContext" | "rooms" | "p2p" | "dedicated" | "clusterTarget" | "parties" | "autoStartFailure" | "ticketEvents" | "partySeating" | "socketState" | "audioState" | "rewardCue" | "frameStats" | "portraitBorders" | "engagement" | "viewport" | "reservedAreas" | "walletDisplay" | "localHost" | "cohorts" | "earnAllowance" | "deviceSettings" | "asyncOpponents" | "share" | "avatarPicker" | "vibration" | "gameMenu" | "controls";
79
81
  declare const CAPABILITY_GATES: Readonly<Record<string, string>>;
80
82
  declare const CAPABILITY_NAMESPACE_GATES: ReadonlyArray<readonly [
81
83
  string,
@@ -139,6 +141,12 @@ interface GemPlayer {
139
141
  readonly avatar3dId?: string;
140
142
  readonly avatar3dModelUrl?: string;
141
143
  readonly avatar3dIconUrl?: string;
144
+ readonly avatars3d?: {
145
+ family: string;
146
+ id: string;
147
+ modelUrl: string;
148
+ iconUrl: string;
149
+ }[];
142
150
  readonly badges?: {
143
151
  itemId: string;
144
152
  iconUrl: string;
@@ -246,6 +254,17 @@ interface GemAutoStartFailedEvent {
246
254
  readonly roomId: string;
247
255
  readonly code: string;
248
256
  }
257
+ interface GemTicketEvent {
258
+ readonly gem: typeof PROTOCOL;
259
+ readonly type: "gem.ticketEvent";
260
+ readonly event: "queued" | "matched" | "expired" | "cancelled" | "failed";
261
+ readonly ticketId: string;
262
+ readonly partySize?: number;
263
+ readonly queuedAt?: number;
264
+ readonly expiresAt?: number;
265
+ readonly reason?: string;
266
+ readonly roomId?: string;
267
+ }
249
268
  interface GemSignalEvent {
250
269
  readonly gem: typeof PROTOCOL;
251
270
  readonly type: "gem.signalEvent";
@@ -467,6 +486,13 @@ interface GemRequestPurchase {
467
486
  readonly quantity?: number;
468
487
  readonly catalogId?: string;
469
488
  }
489
+ interface GemRequestAvatar3dPurchase {
490
+ readonly gem: typeof PROTOCOL;
491
+ readonly type: "gem.requestAvatar3dPurchase";
492
+ readonly requestId: string;
493
+ readonly itemId: string;
494
+ readonly currencySlug: string;
495
+ }
470
496
  interface GemPurchaseResult {
471
497
  readonly gem: typeof PROTOCOL;
472
498
  readonly type: "gem.purchaseResult";
@@ -531,8 +557,8 @@ interface GemFriendChallengeResult {
531
557
  readonly retryAfterMs?: number;
532
558
  readonly detail?: string;
533
559
  }
534
- type ParentMessage = GemHandshake | GemToken | GemTokenDenied | GemPlayer | GemPause | GemPrefs | GemCohorts | GemEarnAllowanceChanged | GemViewport | GemDeviceSettings | GemWillTerminate | GemRoomEvent | GemSocketState | GemSeatedEvent | GemAutoStartFailedEvent | GemSignalEvent | GemDedicatedEvent | GemPartyResult | GemClusterTarget | GemDevtools | GemScreenshot | GemRequestContext | GemLocalServer | GemLocalServerDenied | GemMenuSelect | GemError | GemPurchaseResult | GemDeviceSettingsResult | GemAdResult | GemSignInResult | GemFriendChallengeResult;
535
- type FrameMessage = GemHandshakeAccept | GemScreenshotDenied | GemGameContext | GemSignal | GemDedicatedOffer | GemPartyRequest | GemReady | GemEngaged | GemProgress | GemRequestToken | GemRequestLocalServer | GemExit | GemOpenExternal | GemRequestFullscreen | GemAudioState | GemRewardCue | GemWalletDisplay | GemControlsDeclare | GemMenu | GemRequestShare | GemRequestAvatarPicker | GemVibrate | GemFrameStats | GemPortraitBorders | GemError | GemRequestPurchase | GemDeviceSettingsPut | GemRequestAd | GemRequestSignIn | GemRequestFriendChallenge;
560
+ type ParentMessage = GemHandshake | GemToken | GemTokenDenied | GemPlayer | GemPause | GemPrefs | GemCohorts | GemEarnAllowanceChanged | GemViewport | GemDeviceSettings | GemWillTerminate | GemRoomEvent | GemSocketState | GemSeatedEvent | GemAutoStartFailedEvent | GemTicketEvent | GemSignalEvent | GemDedicatedEvent | GemPartyResult | GemClusterTarget | GemDevtools | GemScreenshot | GemRequestContext | GemLocalServer | GemLocalServerDenied | GemMenuSelect | GemError | GemPurchaseResult | GemDeviceSettingsResult | GemAdResult | GemSignInResult | GemFriendChallengeResult;
561
+ type FrameMessage = GemHandshakeAccept | GemScreenshotDenied | GemGameContext | GemSignal | GemDedicatedOffer | GemPartyRequest | GemReady | GemEngaged | GemProgress | GemRequestToken | GemRequestLocalServer | GemExit | GemOpenExternal | GemRequestFullscreen | GemAudioState | GemRewardCue | GemWalletDisplay | GemControlsDeclare | GemMenu | GemRequestShare | GemRequestAvatarPicker | GemVibrate | GemFrameStats | GemPortraitBorders | GemError | GemRequestPurchase | GemRequestAvatar3dPurchase | GemDeviceSettingsPut | GemRequestAd | GemRequestSignIn | GemRequestFriendChallenge;
536
562
  type GemMessage = ParentMessage | FrameMessage;
537
563
  type Rejection = string | null;
538
564
  declare function isOrigin(s: string): boolean;
@@ -553,6 +579,7 @@ declare const validateGemRoomEvent: (raw: unknown) => Rejection;
553
579
  declare const validateGemSocketState: (raw: unknown) => Rejection;
554
580
  declare const validateGemSeatedEvent: (raw: unknown) => Rejection;
555
581
  declare const validateGemAutoStartFailedEvent: (raw: unknown) => Rejection;
582
+ declare const validateGemTicketEvent: (raw: unknown) => Rejection;
556
583
  declare const validateGemSignalEvent: (raw: unknown) => Rejection;
557
584
  declare const validateGemDedicatedEvent: (raw: unknown) => Rejection;
558
585
  declare const validateGemPartyResult: (raw: unknown) => Rejection;
@@ -588,6 +615,7 @@ declare const validateGemFrameStats: (raw: unknown) => Rejection;
588
615
  declare const validateGemPortraitBorders: (raw: unknown) => Rejection;
589
616
  declare const validateGemError: (raw: unknown) => Rejection;
590
617
  declare const validateGemRequestPurchase: (raw: unknown) => Rejection;
618
+ declare const validateGemRequestAvatar3dPurchase: (raw: unknown) => Rejection;
591
619
  declare const validateGemPurchaseResult: (raw: unknown) => Rejection;
592
620
  declare const validateGemDeviceSettingsPut: (raw: unknown) => Rejection;
593
621
  declare const validateGemDeviceSettingsResult: (raw: unknown) => Rejection;
@@ -598,14 +626,7 @@ declare const validateGemSignInResult: (raw: unknown) => Rejection;
598
626
  declare const validateGemRequestFriendChallenge: (raw: unknown) => Rejection;
599
627
  declare const validateGemFriendChallengeResult: (raw: unknown) => Rejection;
600
628
  declare const VALIDATORS: Readonly<Record<string, (raw: unknown) => Rejection>>;
601
- type GemControlChoice = "player" | "game";
602
- interface GemControlsDeclaration {
603
- readonly lookSensitivity?: GemControlChoice;
604
- readonly gamepadLookSensitivity?: GemControlChoice;
605
- readonly invertLookY?: GemControlChoice;
606
- readonly touchMovement?: GemControlChoice;
607
- }
608
- type PurchaseRefusalCode = "unknown_currency" | "currency_not_in_game_payable" | "not_purchasable" | "no_price_in_currency" | "busy" | "cancelled" | "insufficient_funds" | "price_mismatch" | "config_version_stale" | "platform_currency_unavailable" | "not_available" | "recipe_locked" | "recipe_on_cooldown" | "recipe_max_uses_exceeded" | "item_max_stack_exceeded" | "recipe_costs_unmet" | "quantity_invalid" | "error";
629
+ type PurchaseRefusalCode = "unknown_currency" | "currency_not_in_game_payable" | "not_purchasable" | "no_price_in_currency" | "busy" | "cancelled" | "insufficient_funds" | "price_mismatch" | "config_version_stale" | "platform_currency_unavailable" | "not_available" | "recipe_locked" | "already_owned" | "recipe_on_cooldown" | "recipe_max_uses_exceeded" | "item_max_stack_exceeded" | "recipe_costs_unmet" | "quantity_invalid" | "error";
609
630
  interface OfferRefusal {
610
631
  readonly reason: string;
611
632
  }
@@ -732,6 +753,12 @@ interface SendPlayerInput {
732
753
  readonly avatar3dId?: string;
733
754
  readonly avatar3dModelUrl?: string;
734
755
  readonly avatar3dIconUrl?: string;
756
+ readonly avatars3d?: readonly {
757
+ readonly family: string;
758
+ readonly id: string;
759
+ readonly modelUrl: string;
760
+ readonly iconUrl: string;
761
+ }[];
735
762
  readonly badges?: readonly {
736
763
  readonly itemId: string;
737
764
  readonly iconUrl: string;
@@ -753,7 +780,16 @@ interface RoomEventRelay {
753
780
  readonly reason?: string;
754
781
  readonly platform?: GemRoomEvent["platform"];
755
782
  }
756
- type RelayDestination = "room" | "signal" | "dedicated" | "party";
783
+ interface TicketEventRelay {
784
+ readonly event: GemTicketEvent["event"];
785
+ readonly ticketId: string;
786
+ readonly partySize?: number;
787
+ readonly queuedAt?: number;
788
+ readonly expiresAt?: number;
789
+ readonly reason?: string;
790
+ readonly roomId?: string;
791
+ }
792
+ type RelayDestination = "room" | "signal" | "dedicated" | "party" | "ticket";
757
793
  type HostState = "idle" | "handshaking" | "connected" | "unsupported" | "closed";
758
794
  interface HostCallbacks {
759
795
  onReady?(): void;
@@ -767,7 +803,6 @@ interface HostCallbacks {
767
803
  onEngaged?(): void;
768
804
  onRewardCue?(msg: GemRewardCue): void;
769
805
  onWalletDisplay?(msg: GemWalletDisplay): void;
770
- onControlsDeclare?(uses: GemControlsDeclaration): void;
771
806
  onMenu?(msg: GemMenu): void;
772
807
  onFrameStats?(msg: GemFrameStats): void;
773
808
  onPortraitBorders?(name: string | null): void;
@@ -784,6 +819,7 @@ interface HostCallbacks {
784
819
  onRequestAvatarPicker?(request: {
785
820
  readonly tab?: "2d" | "3d";
786
821
  }): void;
822
+ onRequestAvatar3dPurchase?(msg: GemRequestAvatar3dPurchase): void;
787
823
  onVibrate?(msg: GemVibrate): void;
788
824
  onPartyEvent?(event: PartyEventRelay): void;
789
825
  onError?(code: GemErrorCode, message?: string): void;
@@ -851,6 +887,8 @@ declare class GemHost {
851
887
  code: string;
852
888
  }): boolean;
853
889
  relayAutoStartFailedEvent(raw: unknown): boolean;
890
+ sendTicketEvent(relay: TicketEventRelay): boolean;
891
+ relayTicketEvent(raw: unknown): boolean;
854
892
  relaySocketEvent(raw: unknown): readonly RelayDestination[];
855
893
  relaySignalEvent(raw: unknown): boolean;
856
894
  sendSignalEvent(relay: RelayedSignal): boolean;
@@ -992,6 +1030,13 @@ interface PlayerBadge {
992
1030
  readonly itemId: string;
993
1031
  readonly iconUrl: string;
994
1032
  }
1033
+ type Avatar3dFamily = "small_human" | (string & {});
1034
+ interface WornAvatar3d {
1035
+ readonly family: Avatar3dFamily;
1036
+ readonly id: string;
1037
+ readonly modelUrl: string;
1038
+ readonly iconUrl: string;
1039
+ }
995
1040
  interface PlayerIdentity {
996
1041
  readonly playerId?: string;
997
1042
  readonly displayName?: PlayerText;
@@ -1002,6 +1047,7 @@ interface PlayerIdentity {
1002
1047
  readonly avatar3dId?: string;
1003
1048
  readonly avatar3dModelUrl?: string;
1004
1049
  readonly avatar3dIconUrl?: string;
1050
+ readonly avatars3d?: readonly WornAvatar3d[];
1005
1051
  readonly badges: readonly PlayerBadge[];
1006
1052
  }
1007
1053
  interface RewardCue {
@@ -1041,6 +1087,7 @@ interface FrameCallbacks {
1041
1087
  onRoomEvent?(msg: GemRoomEvent): void;
1042
1088
  onSeatedEvent?(msg: GemSeatedEvent): void;
1043
1089
  onAutoStartFailedEvent?(msg: GemAutoStartFailedEvent): void;
1090
+ onTicketEvent?(msg: GemTicketEvent): void;
1044
1091
  onSocketState?(msg: GemSocketState): void;
1045
1092
  onSignalEvent?(msg: GemSignalEvent): void;
1046
1093
  onDedicatedEvent?(msg: GemDedicatedEvent): void;
@@ -1101,8 +1148,7 @@ declare class GemFrame {
1101
1148
  setWalletVisible(visible: boolean, options?: {
1102
1149
  only?: readonly string[];
1103
1150
  }): boolean;
1104
- declareControls(uses: GemControlsDeclaration): boolean;
1105
- setMenu(settings: boolean, items?: ReadonlyArray<{
1151
+ setMenu(items?: ReadonlyArray<{
1106
1152
  readonly id: string;
1107
1153
  readonly label: string;
1108
1154
  }>): boolean;
@@ -1121,6 +1167,7 @@ declare class GemFrame {
1121
1167
  dedicatedOffer(matchId: string, sdp: string, intent: GemDedicatedOffer["intent"]): void;
1122
1168
  requestParty(requestId: string): boolean;
1123
1169
  requestPurchase(requestId: string, purchaseKind: "item" | "recipe", targetId: string, currencySlug: string, quantity?: number, catalogId?: string): boolean;
1170
+ requestAvatar3dPurchase(requestId: string, itemId: string, currencySlug: string): boolean;
1124
1171
  putDeviceSettings(requestId: string, settings: Readonly<Record<string, unknown>>): boolean;
1125
1172
  requestAd(requestId: string, placement: string, format: "interstitial" | "rewarded"): boolean;
1126
1173
  requestSignIn(requestId: string): boolean;
@@ -1654,6 +1701,38 @@ declare class RoomsApi {
1654
1701
  private roomV2;
1655
1702
  private roomV1;
1656
1703
  }
1704
+ type PartyTicketStatus = "queued" | "matched" | "expired" | "cancelled" | "failed" | "lost";
1705
+ type PartyTicketOutcome = {
1706
+ readonly status: "matched";
1707
+ } | {
1708
+ readonly status: "expired";
1709
+ readonly reason: string;
1710
+ } | {
1711
+ readonly status: "cancelled";
1712
+ readonly reason: string;
1713
+ } | {
1714
+ readonly status: "failed";
1715
+ readonly reason: string;
1716
+ } | {
1717
+ readonly status: "lost";
1718
+ };
1719
+ interface PartyTicket {
1720
+ readonly id: string;
1721
+ readonly status: PartyTicketStatus;
1722
+ readonly partySize: number;
1723
+ readonly queuedAt: number;
1724
+ readonly expiresAt: number;
1725
+ readonly outcome: Promise<PartyTicketOutcome>;
1726
+ }
1727
+ interface RelayedTicketEvent {
1728
+ readonly event: "queued" | "matched" | "expired" | "cancelled" | "failed";
1729
+ readonly ticketId: string;
1730
+ readonly partySize?: number;
1731
+ readonly queuedAt?: number;
1732
+ readonly expiresAt?: number;
1733
+ readonly reason?: string;
1734
+ readonly roomId?: string;
1735
+ }
1657
1736
  interface RoomEventMap {
1658
1737
  created: [
1659
1738
  Room
@@ -1671,6 +1750,9 @@ interface RoomEventMap {
1671
1750
  seated: [
1672
1751
  Room
1673
1752
  ];
1753
+ partyQueued: [
1754
+ PartyTicket
1755
+ ];
1674
1756
  listed: [
1675
1757
  RoomPage
1676
1758
  ];
@@ -1846,6 +1928,7 @@ interface RoomManager {
1846
1928
  readonly gameId: string | null;
1847
1929
  readonly currentRoom: Room | null;
1848
1930
  readonly currentTicket: MatchTicket | null;
1931
+ readonly partyTicket: PartyTicket | null;
1849
1932
  readonly currentMatch: ReadyMatch | null;
1850
1933
  readonly matchConnectionState: MatchConnectionState;
1851
1934
  readonly matchSession: MatchSession;
@@ -1858,6 +1941,7 @@ interface RoomManager {
1858
1941
  handleRoomEvent(event: RelayedRoomEvent): void;
1859
1942
  handleSeated(roomId: string): void;
1860
1943
  handleAutoStartFailed(roomId: string, code: string): void;
1944
+ handleTicketEvent(event: RelayedTicketEvent): void;
1861
1945
  reconcileSeats(): Promise<void>;
1862
1946
  reconcile(hint?: MatchEndHint): Promise<void>;
1863
1947
  startPolling(intervalMs?: number): void;
@@ -2339,4 +2423,4 @@ interface P2pMatchApi {
2339
2423
  session(matchId: string): P2pSession | null;
2340
2424
  }
2341
2425
  declare function createP2pApi(options: P2pApiOptions): P2pMatchApi;
2342
- export { type AutoReconnectOptions, type AwaitMatchOptions, CAPABILITY_GATES, CAPABILITY_NAMESPACE_GATES, CHANNELS, CHANNEL_KINDS, type ChannelKind, type ClientPlatform, ClientTelemetry, type ClientTelemetryOptions, type ClientVersion, type Clock, type ClusterTarget, type ClusterTargetBridge, type ClusterTargetLike, type ClusterTargetListResolver, type ClusterTargetRefresher, type ClusterTargetResolver, type ClusterTargetSource, type ClusterTargetSourceOptions, type ConnectOptions, type CreateRoomOptions, INBOUND_EVENTS as DEDICATED_INBOUND_EVENTS, DEFAULT_WELCOME_CEILING_MS, DEVICE_SETTINGS_MAX_BYTES, type DataChannelLike$1 as DataChannelLike, type DedicatedServerApi, type DedicatedServerApiOptions, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DedicatedSignalTransport, DedicatedSignalingHub, type DedicatedSignalingOptions, type EstablishOptions, FRAME_TO_PARENT, type FailedMatch, type FrameCallbacks, type FrameMessage, type FrameOptions, type FrameState, type GemAdResult, type GemAudioState, type GemAutoStartFailedEvent, type GemCapability, type GemClusterTarget, type GemCohorts, type GemControlChoice, type GemControlsDeclaration, type GemControlsDeclare, type GemDedicatedEvent, type GemDedicatedOffer, type GemDeviceSettings, type GemDeviceSettingsPut, type GemDeviceSettingsResult, type GemDevtools, type GemEarnAllowanceChanged, type GemEngaged, type GemError, type GemErrorCode, type GemExit, GemFrame, type GemFrameStats, type GemFriendChallengeResult, type GemGameContext, type GemHandshake, type GemHandshakeAccept, GemHost, type GemLocalServer, type GemLocalServerDenied, type GemMenu, type GemMenuSelect, type GemMessage, type GemOpenExternal, type GemPartyRequest, type GemPartyResult, type GemPause, type GemPlayer, type GemPortraitBorders, type GemPrefs, type GemProgress, type GemPurchaseResult, type GemReady, type GemRequestAd, type GemRequestAvatarPicker, type GemRequestContext, type GemRequestFriendChallenge, type GemRequestFullscreen, type GemRequestLocalServer, type GemRequestPurchase, type GemRequestShare, type GemRequestSignIn, type GemRequestToken, type GemRewardCue, type GemRoomEvent, type GemScreenshot, type GemScreenshotDenied, type GemSeatedEvent, type GemSignInResult, type GemSignal, type GemSignalEvent, type GemSocketState, type GemToken, type GemTokenDenied, type GemVibrate, type GemViewport, type GemWalletDisplay, type GemWillTerminate, HANDSHAKE_TIMEOUT_MS, type HandshakeEvent, type HostCallbacks, HostMigration, type HostOptions, type HostState, type JoinCredential, type JoinExchange, type JoinRoomOptions, type JoinWelcome, type KeySource, type ListRoomsOptions, MALFORMED_INBOUND_KEY, MAX_ARRAY_LENGTH, MAX_CLUSTER_TARGETS, MAX_MESSAGE_BYTES, MAX_MESSAGE_DEPTH, MAX_MESSAGE_NODES, MAX_SIGNALS_PER_SECOND, MAX_SOCKET_FRAME_BYTES, MIGRATION_TIMEOUT_MS, type MatchAutoStartFailed, type MatchConnectionState, type MatchEnded, type MatchOutcome, type MatchOutcomeWaitOptions, type MatchReconnected, type MatchReconnecting, type MatchSession, type MatchSessionPhase, type MatchSuspended, type MatchTicket, type MatchTicketOutcome, type MatchTicketStatus, type MigrationState, type OfferRefusal, type OfferRequest, P2pApi, type P2pConnectOptions, P2pError, type P2pEventMap, type P2pEventName, type P2pFailure, type P2pMatchApi, type P2pPeer, P2pSession, PARENT_TO_FRAME, PROTOCOL, type ParentMessage, type PartyBridge, type PartyEventRelay, type PartyResolver, type PartyResolverOptions, type PeerConnectionLike$1 as PeerConnectionLike, PlayerText, type PortLike, type PortMessageHandler, type PresentCredentialOptions, type PurchaseRefusalCode, type QueueForMatchOptions, type QuickJoinOptions, RATE_LIMITS, RateLimiter, type ReadyMatch, type Rejection, type RelayedDedicatedEvent, type RelayedRoomEvent, type RelayedSignal, type ResolvedClientVersion, type Room, type RoomArgEntry, type RoomArgScalar, type RoomArgType, type RoomArgValue, type RoomArgs, RoomEmitter, type RoomEventMap, type RoomEventName, type RoomManager, type RoomManagerOptions, type RoomMember, type RoomOperationError, type RoomPage, type RoomStatus, type RoomSummary, RoomsApi, type RoomsApiOptions, SUPPORTED_VERSIONS, type SdpType$1 as SdpType, type SendPlayerInput, type SessionDescriptionLike$1 as SessionDescriptionLike, type SignalTransport, type SignalingAnswer, type SignalingChannel, SignalingClient, type SignalingIntent, type StartMatchOptions, type StartedMatch$1 as StartedMatch, TELEMETRY_EVENTS, TRANSPORT_LABELS, type TelemetrySample, type TokenDenial, type TokenGrant, type TransportLabel, type TurnLease, type UpdateRoomOptions, VALIDATORS, type VerifiedCredential, WEBRTC_DEDICATED, WEBRTC_P2P, WEB_ENGINE_VERSION, WEB_PROTOCOL_VERSION, type WindowLike, asPlayerText, awaitMatchOutcome, browserPeerConnection, buildDedicatedOfferFrame, buildSocketFrame, capabilityFor, createClusterTargetSource, createDedicatedServerApi, createKeySource, createP2pApi, createPartyResolver, createRoomManager, deviceSettingsByteLength, establishDataChannel, fingerprintOf, fingerprintsMatch, generateCertificate, isOrigin, listClusterTargets, memberFromWire, negotiateVersion, normaliseClusterTarget, normaliseClusterTargets, normaliseFingerprint, originsEqual, presentJoinCredential, projectDedicatedEvent, projectPartyEvent, projectSignal, roomArgValuesFromWire, roomArgsTemplateFromWire, roomFromWire, startMatch, summaryFromWire, systemClock, text, unavailableSignaling, validateGemAdResult, validateGemAudioState, validateGemAutoStartFailedEvent, validateGemClusterTarget, validateGemCohorts, validateGemControlsDeclare, validateGemDedicatedEvent, validateGemDedicatedOffer, validateGemDeviceSettings, validateGemDeviceSettingsPut, validateGemDeviceSettingsResult, validateGemDevtools, validateGemEarnAllowanceChanged, validateGemEngaged, validateGemError, validateGemExit, validateGemFrameStats, validateGemFriendChallengeResult, validateGemGameContext, validateGemHandshake, validateGemHandshakeAccept, validateGemLocalServer, validateGemLocalServerDenied, validateGemMenu, validateGemMenuSelect, validateGemOpenExternal, validateGemPartyRequest, validateGemPartyResult, validateGemPause, validateGemPlayer, validateGemPortraitBorders, validateGemPrefs, validateGemProgress, validateGemPurchaseResult, validateGemReady, validateGemRequestAd, validateGemRequestAvatarPicker, validateGemRequestContext, validateGemRequestFriendChallenge, validateGemRequestFullscreen, validateGemRequestLocalServer, validateGemRequestPurchase, validateGemRequestShare, validateGemRequestSignIn, validateGemRequestToken, validateGemRewardCue, validateGemRoomEvent, validateGemScreenshot, validateGemScreenshotDenied, validateGemSeatedEvent, validateGemSignInResult, validateGemSignal, validateGemSignalEvent, validateGemSocketState, validateGemToken, validateGemTokenDenied, validateGemVibrate, validateGemViewport, validateGemWalletDisplay, validateGemWillTerminate, validateSize, verifyCredential };
2426
+ export { type AutoReconnectOptions, type AwaitMatchOptions, CAPABILITY_GATES, CAPABILITY_NAMESPACE_GATES, CHANNELS, CHANNEL_KINDS, type ChannelKind, type ClientPlatform, ClientTelemetry, type ClientTelemetryOptions, type ClientVersion, type Clock, type ClusterTarget, type ClusterTargetBridge, type ClusterTargetLike, type ClusterTargetListResolver, type ClusterTargetRefresher, type ClusterTargetResolver, type ClusterTargetSource, type ClusterTargetSourceOptions, type ConnectOptions, type CreateRoomOptions, INBOUND_EVENTS as DEDICATED_INBOUND_EVENTS, DEFAULT_WELCOME_CEILING_MS, DEVICE_SETTINGS_MAX_BYTES, type DataChannelLike$1 as DataChannelLike, type DedicatedServerApi, type DedicatedServerApiOptions, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DedicatedSignalTransport, DedicatedSignalingHub, type DedicatedSignalingOptions, type EstablishOptions, FRAME_TO_PARENT, type FailedMatch, type FrameCallbacks, type FrameMessage, type FrameOptions, type FrameState, type GemAdResult, type GemAudioState, type GemAutoStartFailedEvent, type GemCapability, type GemClusterTarget, type GemCohorts, type GemControlsDeclare, type GemDedicatedEvent, type GemDedicatedOffer, type GemDeviceSettings, type GemDeviceSettingsPut, type GemDeviceSettingsResult, type GemDevtools, type GemEarnAllowanceChanged, type GemEngaged, type GemError, type GemErrorCode, type GemExit, GemFrame, type GemFrameStats, type GemFriendChallengeResult, type GemGameContext, type GemHandshake, type GemHandshakeAccept, GemHost, type GemLocalServer, type GemLocalServerDenied, type GemMenu, type GemMenuSelect, type GemMessage, type GemOpenExternal, type GemPartyRequest, type GemPartyResult, type GemPause, type GemPlayer, type GemPortraitBorders, type GemPrefs, type GemProgress, type GemPurchaseResult, type GemReady, type GemRequestAd, type GemRequestAvatar3dPurchase, type GemRequestAvatarPicker, type GemRequestContext, type GemRequestFriendChallenge, type GemRequestFullscreen, type GemRequestLocalServer, type GemRequestPurchase, type GemRequestShare, type GemRequestSignIn, type GemRequestToken, type GemRewardCue, type GemRoomEvent, type GemScreenshot, type GemScreenshotDenied, type GemSeatedEvent, type GemSignInResult, type GemSignal, type GemSignalEvent, type GemSocketState, type GemTicketEvent, type GemToken, type GemTokenDenied, type GemVibrate, type GemViewport, type GemWalletDisplay, type GemWillTerminate, HANDSHAKE_TIMEOUT_MS, type HandshakeEvent, type HostCallbacks, HostMigration, type HostOptions, type HostState, type JoinCredential, type JoinExchange, type JoinRoomOptions, type JoinWelcome, type KeySource, type ListRoomsOptions, MALFORMED_INBOUND_KEY, MAX_ARRAY_LENGTH, MAX_CLUSTER_TARGETS, MAX_MESSAGE_BYTES, MAX_MESSAGE_DEPTH, MAX_MESSAGE_NODES, MAX_SIGNALS_PER_SECOND, MAX_SOCKET_FRAME_BYTES, MIGRATION_TIMEOUT_MS, type MatchAutoStartFailed, type MatchConnectionState, type MatchEnded, type MatchOutcome, type MatchOutcomeWaitOptions, type MatchReconnected, type MatchReconnecting, type MatchSession, type MatchSessionPhase, type MatchSuspended, type MatchTicket, type MatchTicketOutcome, type MatchTicketStatus, type MigrationState, type OfferRefusal, type OfferRequest, P2pApi, type P2pConnectOptions, P2pError, type P2pEventMap, type P2pEventName, type P2pFailure, type P2pMatchApi, type P2pPeer, P2pSession, PARENT_TO_FRAME, PROTOCOL, type ParentMessage, type PartyBridge, type PartyEventRelay, type PartyResolver, type PartyResolverOptions, type PartyTicket, type PartyTicketOutcome, type PartyTicketStatus, type PeerConnectionLike$1 as PeerConnectionLike, PlayerText, type PortLike, type PortMessageHandler, type PresentCredentialOptions, type PurchaseRefusalCode, type QueueForMatchOptions, type QuickJoinOptions, RATE_LIMITS, RateLimiter, type ReadyMatch, type Rejection, type RelayedDedicatedEvent, type RelayedRoomEvent, type RelayedSignal, type RelayedTicketEvent, type ResolvedClientVersion, type Room, type RoomArgEntry, type RoomArgScalar, type RoomArgType, type RoomArgValue, type RoomArgs, RoomEmitter, type RoomEventMap, type RoomEventName, type RoomManager, type RoomManagerOptions, type RoomMember, type RoomOperationError, type RoomPage, type RoomStatus, type RoomSummary, RoomsApi, type RoomsApiOptions, SUPPORTED_VERSIONS, type SdpType$1 as SdpType, type SendPlayerInput, type SessionDescriptionLike$1 as SessionDescriptionLike, type SignalTransport, type SignalingAnswer, type SignalingChannel, SignalingClient, type SignalingIntent, type StartMatchOptions, type StartedMatch$1 as StartedMatch, TELEMETRY_EVENTS, TRANSPORT_LABELS, type TelemetrySample, type TokenDenial, type TokenGrant, type TransportLabel, type TurnLease, type UpdateRoomOptions, VALIDATORS, type VerifiedCredential, WEBRTC_DEDICATED, WEBRTC_P2P, WEB_ENGINE_VERSION, WEB_PROTOCOL_VERSION, type WindowLike, asPlayerText, awaitMatchOutcome, browserPeerConnection, buildDedicatedOfferFrame, buildSocketFrame, capabilityFor, createClusterTargetSource, createDedicatedServerApi, createKeySource, createP2pApi, createPartyResolver, createRoomManager, deviceSettingsByteLength, establishDataChannel, fingerprintOf, fingerprintsMatch, generateCertificate, isOrigin, listClusterTargets, memberFromWire, negotiateVersion, normaliseClusterTarget, normaliseClusterTargets, normaliseFingerprint, originsEqual, presentJoinCredential, projectDedicatedEvent, projectPartyEvent, projectSignal, roomArgValuesFromWire, roomArgsTemplateFromWire, roomFromWire, startMatch, summaryFromWire, systemClock, text, unavailableSignaling, validateGemAdResult, validateGemAudioState, validateGemAutoStartFailedEvent, validateGemClusterTarget, validateGemCohorts, validateGemControlsDeclare, validateGemDedicatedEvent, validateGemDedicatedOffer, validateGemDeviceSettings, validateGemDeviceSettingsPut, validateGemDeviceSettingsResult, validateGemDevtools, validateGemEarnAllowanceChanged, validateGemEngaged, validateGemError, validateGemExit, validateGemFrameStats, validateGemFriendChallengeResult, validateGemGameContext, validateGemHandshake, validateGemHandshakeAccept, validateGemLocalServer, validateGemLocalServerDenied, validateGemMenu, validateGemMenuSelect, validateGemOpenExternal, validateGemPartyRequest, validateGemPartyResult, validateGemPause, validateGemPlayer, validateGemPortraitBorders, validateGemPrefs, validateGemProgress, validateGemPurchaseResult, validateGemReady, validateGemRequestAd, validateGemRequestAvatar3dPurchase, validateGemRequestAvatarPicker, validateGemRequestContext, validateGemRequestFriendChallenge, validateGemRequestFullscreen, validateGemRequestLocalServer, validateGemRequestPurchase, validateGemRequestShare, validateGemRequestSignIn, validateGemRequestToken, validateGemRewardCue, validateGemRoomEvent, validateGemScreenshot, validateGemScreenshotDenied, validateGemSeatedEvent, validateGemSignInResult, validateGemSignal, validateGemSignalEvent, validateGemSocketState, validateGemTicketEvent, validateGemToken, validateGemTokenDenied, validateGemVibrate, validateGemViewport, validateGemWalletDisplay, validateGemWillTerminate, validateSize, verifyCredential };
package/dist/sdk.d.ts CHANGED
@@ -212,6 +212,7 @@ type GameConfigSnapshot = {
212
212
  "analytics_events"?: SnapshotAnalyticsEvent[];
213
213
  "analytics_funnels"?: SnapshotAnalyticsFunnel[];
214
214
  "async_opponent_types"?: SnapshotAsyncOpponentType[];
215
+ "avatar_3d_families"?: string[];
215
216
  "catalogs": SnapshotCatalog[];
216
217
  "currencies": SnapshotCurrency[];
217
218
  "friend_challenge_templates"?: SnapshotFriendChallengeTemplate[];
@@ -1176,6 +1177,13 @@ interface PlayerBadge$1 {
1176
1177
  readonly itemId: string;
1177
1178
  readonly iconUrl: string;
1178
1179
  }
1180
+ type Avatar3dFamily = "small_human" | (string & {});
1181
+ interface WornAvatar3d$1 {
1182
+ readonly family: Avatar3dFamily;
1183
+ readonly id: string;
1184
+ readonly modelUrl: string;
1185
+ readonly iconUrl: string;
1186
+ }
1179
1187
  interface PlayerIdentity {
1180
1188
  readonly playerId?: string;
1181
1189
  readonly displayName?: PlayerText;
@@ -1186,6 +1194,7 @@ interface PlayerIdentity {
1186
1194
  readonly avatar3dId?: string;
1187
1195
  readonly avatar3dModelUrl?: string;
1188
1196
  readonly avatar3dIconUrl?: string;
1197
+ readonly avatars3d?: readonly WornAvatar3d$1[];
1189
1198
  readonly badges: readonly PlayerBadge$1[];
1190
1199
  }
1191
1200
  declare function mapIdentity(row: unknown): PlayerIdentity;
@@ -1860,6 +1869,38 @@ interface UpdateRoomOptions {
1860
1869
  readonly roomArgs?: RoomArgs;
1861
1870
  readonly signal?: AbortSignal;
1862
1871
  }
1872
+ type PartyTicketStatus = "queued" | "matched" | "expired" | "cancelled" | "failed" | "lost";
1873
+ type PartyTicketOutcome = {
1874
+ readonly status: "matched";
1875
+ } | {
1876
+ readonly status: "expired";
1877
+ readonly reason: string;
1878
+ } | {
1879
+ readonly status: "cancelled";
1880
+ readonly reason: string;
1881
+ } | {
1882
+ readonly status: "failed";
1883
+ readonly reason: string;
1884
+ } | {
1885
+ readonly status: "lost";
1886
+ };
1887
+ interface PartyTicket {
1888
+ readonly id: string;
1889
+ readonly status: PartyTicketStatus;
1890
+ readonly partySize: number;
1891
+ readonly queuedAt: number;
1892
+ readonly expiresAt: number;
1893
+ readonly outcome: Promise<PartyTicketOutcome>;
1894
+ }
1895
+ interface RelayedTicketEvent {
1896
+ readonly event: "queued" | "matched" | "expired" | "cancelled" | "failed";
1897
+ readonly ticketId: string;
1898
+ readonly partySize?: number;
1899
+ readonly queuedAt?: number;
1900
+ readonly expiresAt?: number;
1901
+ readonly reason?: string;
1902
+ readonly roomId?: string;
1903
+ }
1863
1904
  interface RoomEventMap {
1864
1905
  created: [
1865
1906
  Room
@@ -1877,6 +1918,9 @@ interface RoomEventMap {
1877
1918
  seated: [
1878
1919
  Room
1879
1920
  ];
1921
+ partyQueued: [
1922
+ PartyTicket
1923
+ ];
1880
1924
  listed: [
1881
1925
  RoomPage
1882
1926
  ];
@@ -1992,6 +2036,7 @@ interface RoomManager {
1992
2036
  readonly gameId: string | null;
1993
2037
  readonly currentRoom: Room | null;
1994
2038
  readonly currentTicket: MatchTicket | null;
2039
+ readonly partyTicket: PartyTicket | null;
1995
2040
  readonly currentMatch: ReadyMatch | null;
1996
2041
  readonly matchConnectionState: MatchConnectionState;
1997
2042
  readonly matchSession: MatchSession;
@@ -2004,6 +2049,7 @@ interface RoomManager {
2004
2049
  handleRoomEvent(event: RelayedRoomEvent): void;
2005
2050
  handleSeated(roomId: string): void;
2006
2051
  handleAutoStartFailed(roomId: string, code: string): void;
2052
+ handleTicketEvent(event: RelayedTicketEvent): void;
2007
2053
  reconcileSeats(): Promise<void>;
2008
2054
  reconcile(hint?: MatchEndHint): Promise<void>;
2009
2055
  startPolling(intervalMs?: number): void;
@@ -2125,6 +2171,17 @@ interface GemAutoStartFailedEvent {
2125
2171
  readonly roomId: string;
2126
2172
  readonly code: string;
2127
2173
  }
2174
+ interface GemTicketEvent {
2175
+ readonly gem: typeof PROTOCOL;
2176
+ readonly type: "gem.ticketEvent";
2177
+ readonly event: "queued" | "matched" | "expired" | "cancelled" | "failed";
2178
+ readonly ticketId: string;
2179
+ readonly partySize?: number;
2180
+ readonly queuedAt?: number;
2181
+ readonly expiresAt?: number;
2182
+ readonly reason?: string;
2183
+ readonly roomId?: string;
2184
+ }
2128
2185
  interface GemSignalEvent {
2129
2186
  readonly gem: typeof PROTOCOL;
2130
2187
  readonly type: "gem.signalEvent";
@@ -3327,6 +3384,7 @@ type PlayerIdentityFields = {
3327
3384
  "avatar_3d_model_url"?: string | null;
3328
3385
  "avatar_icon_id"?: string | null;
3329
3386
  "avatar_icon_url"?: string | null;
3387
+ "avatars_3d"?: WornAvatar3d[] | null;
3330
3388
  "badges"?: PlayerBadge[];
3331
3389
  "discriminator"?: string | null;
3332
3390
  "display_name"?: string | null;
@@ -3554,6 +3612,7 @@ type SubjectIdentityFields = {
3554
3612
  "avatar_3d_model_url"?: string | null;
3555
3613
  "avatar_icon_id"?: string | null;
3556
3614
  "avatar_icon_url"?: string | null;
3615
+ "avatars_3d"?: WornAvatar3d[] | null;
3557
3616
  "badges": PlayerBadge[];
3558
3617
  "discriminator"?: string | null;
3559
3618
  "display_name"?: string | null;
@@ -3715,6 +3774,12 @@ type WindowPreviewResponse = {
3715
3774
  "ends_at": string;
3716
3775
  "starts_at": string;
3717
3776
  };
3777
+ type WornAvatar3d = {
3778
+ "avatar_3d_id": string;
3779
+ "family": string;
3780
+ "icon_url": string;
3781
+ "model_url": string;
3782
+ };
3718
3783
  declare function acceptTransfer(api: GameApi, transfer_id: string, options?: {
3719
3784
  signal?: AbortSignal;
3720
3785
  }): Promise<TransferResponse>;
@@ -4095,6 +4160,7 @@ type generated_UpdateGameRoomRequest = UpdateGameRoomRequest;
4095
4160
  type generated_UpdateRoomArgsRequest = UpdateRoomArgsRequest;
4096
4161
  type generated_WindowKind = WindowKind;
4097
4162
  type generated_WindowPreviewResponse = WindowPreviewResponse;
4163
+ type generated_WornAvatar3d = WornAvatar3d;
4098
4164
  declare const generated_acceptTransfer: typeof acceptTransfer;
4099
4165
  declare const generated_addEntityProgression: typeof addEntityProgression;
4100
4166
  declare const generated_adminAction: typeof adminAction;
@@ -4157,7 +4223,7 @@ declare const generated_simulateEntityOrder: typeof simulateEntityOrder;
4157
4223
  declare const generated_transferHostV2: typeof transferHostV2;
4158
4224
  declare const generated_updateGameRoomV2: typeof updateGameRoomV2;
4159
4225
  declare namespace generated {
4160
- export { type generated_AchievementUnlockOutcome as AchievementUnlockOutcome, type generated_ActiveWindowResponse as ActiveWindowResponse, type generated_AdminActionRequest as AdminActionRequest, type generated_AnalyticsBatchRequest as AnalyticsBatchRequest, type generated_AnalyticsBatchResponse as AnalyticsBatchResponse, type generated_AnalyticsEventSubmission as AnalyticsEventSubmission, type generated_AnalyticsRejection as AnalyticsRejection, type generated_BackfillPolicy as BackfillPolicy, type generated_BackfillSettings as BackfillSettings, type generated_BadgeKind as BadgeKind, type generated_BadgeLabel as BadgeLabel, type generated_BatchOrderItem as BatchOrderItem, type generated_BatchOrderItemResult as BatchOrderItemResult, type generated_BatchOrderRequest as BatchOrderRequest, type generated_BatchOrderResponse as BatchOrderResponse, type generated_BucketBalanceResponse as BucketBalanceResponse, type generated_CatalogItem as CatalogItem, type generated_CatalogPrice as CatalogPrice, type generated_CatalogRecipe as CatalogRecipe, type generated_ChallengeListResponse as ChallengeListResponse, type generated_ChallengePeriodResponse as ChallengePeriodResponse, type generated_ClientPlatform as ClientPlatform, type generated_ConfigAssignmentNotice as ConfigAssignmentNotice, type generated_ConfigChannelAssignmentResponse as ConfigChannelAssignmentResponse, type generated_CreateOrderRequest as CreateOrderRequest, type generated_CreateSessionRequest as CreateSessionRequest, type generated_CurrencyBalanceResponse as CurrencyBalanceResponse, type generated_CurrencyResetOverride as CurrencyResetOverride, type generated_DropRateEntry as DropRateEntry, type generated_DropRatesResponse as DropRatesResponse, type generated_EarningResetActorKind as EarningResetActorKind, type generated_EarningResetGameFigure as EarningResetGameFigure, type generated_EntityLeaderboardEntryResponse as EntityLeaderboardEntryResponse, type generated_EntityLeaderboardResponse as EntityLeaderboardResponse, type generated_EntityType as EntityType, type generated_ErrorDetail as ErrorDetail, type generated_ErrorResponse as ErrorResponse, type generated_EventDefinitionResponse as EventDefinitionResponse, type generated_EventListResponse as EventListResponse, type generated_EventStatusInfo as EventStatusInfo, type generated_FidelityReport as FidelityReport, type generated_GameApi as GameApi, type generated_GameChannel as GameChannel, type generated_GameRoomMemberResponseV2 as GameRoomMemberResponseV2, type generated_GameRoomResponseV2 as GameRoomResponseV2, type generated_GameRoomSummaryResponse as GameRoomSummaryResponse, type generated_GameRoomTemplateListResponse as GameRoomTemplateListResponse, type generated_GameRoomTemplateResponse as GameRoomTemplateResponse, type generated_GameRoomsListResponse as GameRoomsListResponse, type generated_InitiateTransferRequest as InitiateTransferRequest, type generated_InventoryChange as InventoryChange, type generated_InventoryResponse as InventoryResponse, type generated_InventoryScopeResponse as InventoryScopeResponse, type generated_ItemCategory as ItemCategory, type generated_ItemInstanceResponse as ItemInstanceResponse, type generated_LeaderboardEntryResponse as LeaderboardEntryResponse, type generated_LeaderboardPeriodFields as LeaderboardPeriodFields, type generated_LeaderboardResponse as LeaderboardResponse, type generated_ListTransfersResponse as ListTransfersResponse, type generated_LootRollResultResponse as LootRollResultResponse, type generated_MatchBackfillRequest as MatchBackfillRequest, type generated_MatchBackfillResponse as MatchBackfillResponse, type MatchPlayerReport$1 as MatchPlayerReport, type generated_MatchPlayerReportOutcome as MatchPlayerReportOutcome, type MatchPlayerReportResult$1 as MatchPlayerReportResult, type generated_MatchPlayerState as MatchPlayerState, type generated_MatchPlayersReportRequest as MatchPlayersReportRequest, type generated_MatchPlayersReportResponse as MatchPlayersReportResponse, type generated_MatchType as MatchType, type generated_MatchmakingSettings as MatchmakingSettings, type generated_MatchmakingStrategy as MatchmakingStrategy, type generated_MilestoneMetric as MilestoneMetric, type generated_NameStyle as NameStyle, type generated_OperationRequest as OperationRequest, type generated_OrderListResponse as OrderListResponse, type generated_OrderRecordResponse as OrderRecordResponse, type generated_OrderResponse as OrderResponse, type generated_OrderSource as OrderSource, type generated_OrderStatus as OrderStatus, type generated_OverflowBehavior as OverflowBehavior, type generated_PaginatedCollectionCurrencyBalanceResponse as PaginatedCollectionCurrencyBalanceResponse, type generated_PaginatedCollectionItemInstanceResponse as PaginatedCollectionItemInstanceResponse, type generated_PaginatedCollectionProgressionStateResponse as PaginatedCollectionProgressionStateResponse, type generated_PaginatedResponseSaveDataResponse as PaginatedResponseSaveDataResponse, type generated_PeriodProgressResponse as PeriodProgressResponse, type generated_PlatformGrantClamp as PlatformGrantClamp, type generated_PlatformGrantOutcome as PlatformGrantOutcome, type generated_PlayerBadge as PlayerBadge, type generated_PlayerGameProfileResponse as PlayerGameProfileResponse, type generated_PlayerIdentityFields as PlayerIdentityFields, type generated_PlayerTitle as PlayerTitle, type generated_PrerequisiteType as PrerequisiteType, type generated_ProfileShowcaseEntry as ProfileShowcaseEntry, type generated_ProgressionAchievementState as ProgressionAchievementState, type generated_ProgressionAddRequest as ProgressionAddRequest, type generated_ProgressionClaimRequest as ProgressionClaimRequest, type generated_ProgressionMaxRequest as ProgressionMaxRequest, type generated_ProgressionResetRequest as ProgressionResetRequest, type generated_ProgressionStateOverride as ProgressionStateOverride, type generated_ProgressionStateResponse as ProgressionStateResponse, type generated_PurchaseCatalogResponse as PurchaseCatalogResponse, type generated_PutSettingRequest as PutSettingRequest, type generated_PutShowcaseRequest as PutShowcaseRequest, type generated_ReceiptPrincipal as ReceiptPrincipal, type generated_RecipeAvailabilityResponse as RecipeAvailabilityResponse, type generated_RecipeExecuteRequest as RecipeExecuteRequest, type generated_RecipeExecuteResponse as RecipeExecuteResponse, type generated_RecipeLockReason as RecipeLockReason, type generated_RecipePrerequisite as RecipePrerequisite, type generated_RecipeUsageListResponse as RecipeUsageListResponse, type generated_RecipeUsageResponse as RecipeUsageResponse, type generated_RoomArgType as RoomArgType, type generated_RoomArgsResponse as RoomArgsResponse, type generated_RoomArgsTemplate as RoomArgsTemplate, type generated_SaveDataResponse as SaveDataResponse, type generated_SaveFinalizeRequest as SaveFinalizeRequest, type generated_SaveUploadUrlRequest as SaveUploadUrlRequest, type generated_SaveUploadUrlResponse as SaveUploadUrlResponse, type generated_SettingResponse as SettingResponse, type generated_SettingsListResponse as SettingsListResponse, type generated_ShowcaseValueResponse as ShowcaseValueResponse, type generated_SimulateOrderRequest as SimulateOrderRequest, type generated_SimulateOrderResponse as SimulateOrderResponse, type generated_SimulationFailure as SimulationFailure, type generated_SimulationOutcome as SimulationOutcome, type generated_SimulationOverrides as SimulationOverrides, type generated_SlugOrId as SlugOrId, type generated_SubjectIdentityFields as SubjectIdentityFields, type generated_SuppliedBucketRow as SuppliedBucketRow, type generated_SuppliedCurrencies as SuppliedCurrencies, type generated_SuppliedCurrencyRow as SuppliedCurrencyRow, type generated_SuppliedInventory as SuppliedInventory, type generated_SuppliedItemRow as SuppliedItemRow, type generated_SuppliedItems as SuppliedItems, type generated_SuppliedPeriodProgressRow as SuppliedPeriodProgressRow, type generated_SuppliedProgressionRow as SuppliedProgressionRow, type generated_SuppliedProgressions as SuppliedProgressions, type generated_SuppliedScope as SuppliedScope, type generated_ThemedColors as ThemedColors, type generated_TransferCurrencyRequest as TransferCurrencyRequest, type generated_TransferItemRequest as TransferItemRequest, type generated_TransferResponse as TransferResponse, type generated_UnavailabilityReason as UnavailabilityReason, type generated_UpdateGameRoomRequest as UpdateGameRoomRequest, type generated_UpdateRoomArgsRequest as UpdateRoomArgsRequest, type generated_WindowKind as WindowKind, type generated_WindowPreviewResponse as WindowPreviewResponse, generated_acceptTransfer as acceptTransfer, generated_addEntityProgression as addEntityProgression, generated_adminAction as adminAction, generated_cancelInventoryTransfer as cancelInventoryTransfer, generated_claimEntityProgressionRewards as claimEntityProgressionRewards, generated_closeGameRoom as closeGameRoom, generated_createEntityBatchOrder as createEntityBatchOrder, generated_createEntityOrder as createEntityOrder, generated_createSession as createSession, generated_deleteEntityGameSetting as deleteEntityGameSetting, generated_deleteEntitySave as deleteEntitySave, generated_deleteSession as deleteSession, generated_deleteShowcaseValue as deleteShowcaseValue, generated_executeEntityRecipe as executeEntityRecipe, generated_finalizeSaveUpload as finalizeSaveUpload, generated_getChannelAssignment as getChannelAssignment, generated_getDropRates as getDropRates, generated_getEntityCurrency as getEntityCurrency, generated_getEntityGameSetting as getEntityGameSetting, generated_getEntityInventory as getEntityInventory, generated_getEntityInventoryItem as getEntityInventoryItem, generated_getEntityLeaderboard as getEntityLeaderboard, generated_getEntityOrder as getEntityOrder, generated_getEntityProgression as getEntityProgression, generated_getEntityRecipeAvailability as getEntityRecipeAvailability, generated_getEntityRecipeUsage as getEntityRecipeUsage, generated_getEntitySave as getEntitySave, generated_getEvent as getEvent, generated_getGameRoomV2 as getGameRoomV2, generated_getLeaderboard as getLeaderboard, generated_getPlayerGameProfile as getPlayerGameProfile, generated_getPurchaseCatalog as getPurchaseCatalog, generated_getResolvedTemplate as getResolvedTemplate, generated_getRoomArgs as getRoomArgs, generated_getShowcaseValue as getShowcaseValue, generated_getTransferDetails as getTransferDetails, generated_ingestAnalyticsEvents as ingestAnalyticsEvents, generated_initiateInventoryTransfer as initiateInventoryTransfer, generated_invokeFunction as invokeFunction, generated_kickPlayer as kickPlayer, generated_listChallenges as listChallenges, generated_listEntityGameSettings as listEntityGameSettings, generated_listEntityOrders as listEntityOrders, generated_listEntityProgressions as listEntityProgressions, generated_listEntitySaves as listEntitySaves, generated_listEvents as listEvents, generated_listGameRooms as listGameRooms, generated_listResolvedTemplates as listResolvedTemplates, generated_listTransfers as listTransfers, generated_maxEntityProgression as maxEntityProgression, generated_putEntityGameSetting as putEntityGameSetting, generated_putRoomArgs as putRoomArgs, generated_putShowcaseValue as putShowcaseValue, generated_rejectTransfer as rejectTransfer, generated_reportMatchPlayers as reportMatchPlayers, generated_requestSaveUploadUrl as requestSaveUploadUrl, generated_resetEntityProgression as resetEntityProgression, generated_setMatchBackfill as setMatchBackfill, generated_simulateEntityOrder as simulateEntityOrder, generated_transferHostV2 as transferHostV2, generated_updateGameRoomV2 as updateGameRoomV2 };
4226
+ export { type generated_AchievementUnlockOutcome as AchievementUnlockOutcome, type generated_ActiveWindowResponse as ActiveWindowResponse, type generated_AdminActionRequest as AdminActionRequest, type generated_AnalyticsBatchRequest as AnalyticsBatchRequest, type generated_AnalyticsBatchResponse as AnalyticsBatchResponse, type generated_AnalyticsEventSubmission as AnalyticsEventSubmission, type generated_AnalyticsRejection as AnalyticsRejection, type generated_BackfillPolicy as BackfillPolicy, type generated_BackfillSettings as BackfillSettings, type generated_BadgeKind as BadgeKind, type generated_BadgeLabel as BadgeLabel, type generated_BatchOrderItem as BatchOrderItem, type generated_BatchOrderItemResult as BatchOrderItemResult, type generated_BatchOrderRequest as BatchOrderRequest, type generated_BatchOrderResponse as BatchOrderResponse, type generated_BucketBalanceResponse as BucketBalanceResponse, type generated_CatalogItem as CatalogItem, type generated_CatalogPrice as CatalogPrice, type generated_CatalogRecipe as CatalogRecipe, type generated_ChallengeListResponse as ChallengeListResponse, type generated_ChallengePeriodResponse as ChallengePeriodResponse, type generated_ClientPlatform as ClientPlatform, type generated_ConfigAssignmentNotice as ConfigAssignmentNotice, type generated_ConfigChannelAssignmentResponse as ConfigChannelAssignmentResponse, type generated_CreateOrderRequest as CreateOrderRequest, type generated_CreateSessionRequest as CreateSessionRequest, type generated_CurrencyBalanceResponse as CurrencyBalanceResponse, type generated_CurrencyResetOverride as CurrencyResetOverride, type generated_DropRateEntry as DropRateEntry, type generated_DropRatesResponse as DropRatesResponse, type generated_EarningResetActorKind as EarningResetActorKind, type generated_EarningResetGameFigure as EarningResetGameFigure, type generated_EntityLeaderboardEntryResponse as EntityLeaderboardEntryResponse, type generated_EntityLeaderboardResponse as EntityLeaderboardResponse, type generated_EntityType as EntityType, type generated_ErrorDetail as ErrorDetail, type generated_ErrorResponse as ErrorResponse, type generated_EventDefinitionResponse as EventDefinitionResponse, type generated_EventListResponse as EventListResponse, type generated_EventStatusInfo as EventStatusInfo, type generated_FidelityReport as FidelityReport, type generated_GameApi as GameApi, type generated_GameChannel as GameChannel, type generated_GameRoomMemberResponseV2 as GameRoomMemberResponseV2, type generated_GameRoomResponseV2 as GameRoomResponseV2, type generated_GameRoomSummaryResponse as GameRoomSummaryResponse, type generated_GameRoomTemplateListResponse as GameRoomTemplateListResponse, type generated_GameRoomTemplateResponse as GameRoomTemplateResponse, type generated_GameRoomsListResponse as GameRoomsListResponse, type generated_InitiateTransferRequest as InitiateTransferRequest, type generated_InventoryChange as InventoryChange, type generated_InventoryResponse as InventoryResponse, type generated_InventoryScopeResponse as InventoryScopeResponse, type generated_ItemCategory as ItemCategory, type generated_ItemInstanceResponse as ItemInstanceResponse, type generated_LeaderboardEntryResponse as LeaderboardEntryResponse, type generated_LeaderboardPeriodFields as LeaderboardPeriodFields, type generated_LeaderboardResponse as LeaderboardResponse, type generated_ListTransfersResponse as ListTransfersResponse, type generated_LootRollResultResponse as LootRollResultResponse, type generated_MatchBackfillRequest as MatchBackfillRequest, type generated_MatchBackfillResponse as MatchBackfillResponse, type MatchPlayerReport$1 as MatchPlayerReport, type generated_MatchPlayerReportOutcome as MatchPlayerReportOutcome, type MatchPlayerReportResult$1 as MatchPlayerReportResult, type generated_MatchPlayerState as MatchPlayerState, type generated_MatchPlayersReportRequest as MatchPlayersReportRequest, type generated_MatchPlayersReportResponse as MatchPlayersReportResponse, type generated_MatchType as MatchType, type generated_MatchmakingSettings as MatchmakingSettings, type generated_MatchmakingStrategy as MatchmakingStrategy, type generated_MilestoneMetric as MilestoneMetric, type generated_NameStyle as NameStyle, type generated_OperationRequest as OperationRequest, type generated_OrderListResponse as OrderListResponse, type generated_OrderRecordResponse as OrderRecordResponse, type generated_OrderResponse as OrderResponse, type generated_OrderSource as OrderSource, type generated_OrderStatus as OrderStatus, type generated_OverflowBehavior as OverflowBehavior, type generated_PaginatedCollectionCurrencyBalanceResponse as PaginatedCollectionCurrencyBalanceResponse, type generated_PaginatedCollectionItemInstanceResponse as PaginatedCollectionItemInstanceResponse, type generated_PaginatedCollectionProgressionStateResponse as PaginatedCollectionProgressionStateResponse, type generated_PaginatedResponseSaveDataResponse as PaginatedResponseSaveDataResponse, type generated_PeriodProgressResponse as PeriodProgressResponse, type generated_PlatformGrantClamp as PlatformGrantClamp, type generated_PlatformGrantOutcome as PlatformGrantOutcome, type generated_PlayerBadge as PlayerBadge, type generated_PlayerGameProfileResponse as PlayerGameProfileResponse, type generated_PlayerIdentityFields as PlayerIdentityFields, type generated_PlayerTitle as PlayerTitle, type generated_PrerequisiteType as PrerequisiteType, type generated_ProfileShowcaseEntry as ProfileShowcaseEntry, type generated_ProgressionAchievementState as ProgressionAchievementState, type generated_ProgressionAddRequest as ProgressionAddRequest, type generated_ProgressionClaimRequest as ProgressionClaimRequest, type generated_ProgressionMaxRequest as ProgressionMaxRequest, type generated_ProgressionResetRequest as ProgressionResetRequest, type generated_ProgressionStateOverride as ProgressionStateOverride, type generated_ProgressionStateResponse as ProgressionStateResponse, type generated_PurchaseCatalogResponse as PurchaseCatalogResponse, type generated_PutSettingRequest as PutSettingRequest, type generated_PutShowcaseRequest as PutShowcaseRequest, type generated_ReceiptPrincipal as ReceiptPrincipal, type generated_RecipeAvailabilityResponse as RecipeAvailabilityResponse, type generated_RecipeExecuteRequest as RecipeExecuteRequest, type generated_RecipeExecuteResponse as RecipeExecuteResponse, type generated_RecipeLockReason as RecipeLockReason, type generated_RecipePrerequisite as RecipePrerequisite, type generated_RecipeUsageListResponse as RecipeUsageListResponse, type generated_RecipeUsageResponse as RecipeUsageResponse, type generated_RoomArgType as RoomArgType, type generated_RoomArgsResponse as RoomArgsResponse, type generated_RoomArgsTemplate as RoomArgsTemplate, type generated_SaveDataResponse as SaveDataResponse, type generated_SaveFinalizeRequest as SaveFinalizeRequest, type generated_SaveUploadUrlRequest as SaveUploadUrlRequest, type generated_SaveUploadUrlResponse as SaveUploadUrlResponse, type generated_SettingResponse as SettingResponse, type generated_SettingsListResponse as SettingsListResponse, type generated_ShowcaseValueResponse as ShowcaseValueResponse, type generated_SimulateOrderRequest as SimulateOrderRequest, type generated_SimulateOrderResponse as SimulateOrderResponse, type generated_SimulationFailure as SimulationFailure, type generated_SimulationOutcome as SimulationOutcome, type generated_SimulationOverrides as SimulationOverrides, type generated_SlugOrId as SlugOrId, type generated_SubjectIdentityFields as SubjectIdentityFields, type generated_SuppliedBucketRow as SuppliedBucketRow, type generated_SuppliedCurrencies as SuppliedCurrencies, type generated_SuppliedCurrencyRow as SuppliedCurrencyRow, type generated_SuppliedInventory as SuppliedInventory, type generated_SuppliedItemRow as SuppliedItemRow, type generated_SuppliedItems as SuppliedItems, type generated_SuppliedPeriodProgressRow as SuppliedPeriodProgressRow, type generated_SuppliedProgressionRow as SuppliedProgressionRow, type generated_SuppliedProgressions as SuppliedProgressions, type generated_SuppliedScope as SuppliedScope, type generated_ThemedColors as ThemedColors, type generated_TransferCurrencyRequest as TransferCurrencyRequest, type generated_TransferItemRequest as TransferItemRequest, type generated_TransferResponse as TransferResponse, type generated_UnavailabilityReason as UnavailabilityReason, type generated_UpdateGameRoomRequest as UpdateGameRoomRequest, type generated_UpdateRoomArgsRequest as UpdateRoomArgsRequest, type generated_WindowKind as WindowKind, type generated_WindowPreviewResponse as WindowPreviewResponse, type generated_WornAvatar3d as WornAvatar3d, generated_acceptTransfer as acceptTransfer, generated_addEntityProgression as addEntityProgression, generated_adminAction as adminAction, generated_cancelInventoryTransfer as cancelInventoryTransfer, generated_claimEntityProgressionRewards as claimEntityProgressionRewards, generated_closeGameRoom as closeGameRoom, generated_createEntityBatchOrder as createEntityBatchOrder, generated_createEntityOrder as createEntityOrder, generated_createSession as createSession, generated_deleteEntityGameSetting as deleteEntityGameSetting, generated_deleteEntitySave as deleteEntitySave, generated_deleteSession as deleteSession, generated_deleteShowcaseValue as deleteShowcaseValue, generated_executeEntityRecipe as executeEntityRecipe, generated_finalizeSaveUpload as finalizeSaveUpload, generated_getChannelAssignment as getChannelAssignment, generated_getDropRates as getDropRates, generated_getEntityCurrency as getEntityCurrency, generated_getEntityGameSetting as getEntityGameSetting, generated_getEntityInventory as getEntityInventory, generated_getEntityInventoryItem as getEntityInventoryItem, generated_getEntityLeaderboard as getEntityLeaderboard, generated_getEntityOrder as getEntityOrder, generated_getEntityProgression as getEntityProgression, generated_getEntityRecipeAvailability as getEntityRecipeAvailability, generated_getEntityRecipeUsage as getEntityRecipeUsage, generated_getEntitySave as getEntitySave, generated_getEvent as getEvent, generated_getGameRoomV2 as getGameRoomV2, generated_getLeaderboard as getLeaderboard, generated_getPlayerGameProfile as getPlayerGameProfile, generated_getPurchaseCatalog as getPurchaseCatalog, generated_getResolvedTemplate as getResolvedTemplate, generated_getRoomArgs as getRoomArgs, generated_getShowcaseValue as getShowcaseValue, generated_getTransferDetails as getTransferDetails, generated_ingestAnalyticsEvents as ingestAnalyticsEvents, generated_initiateInventoryTransfer as initiateInventoryTransfer, generated_invokeFunction as invokeFunction, generated_kickPlayer as kickPlayer, generated_listChallenges as listChallenges, generated_listEntityGameSettings as listEntityGameSettings, generated_listEntityOrders as listEntityOrders, generated_listEntityProgressions as listEntityProgressions, generated_listEntitySaves as listEntitySaves, generated_listEvents as listEvents, generated_listGameRooms as listGameRooms, generated_listResolvedTemplates as listResolvedTemplates, generated_listTransfers as listTransfers, generated_maxEntityProgression as maxEntityProgression, generated_putEntityGameSetting as putEntityGameSetting, generated_putRoomArgs as putRoomArgs, generated_putShowcaseValue as putShowcaseValue, generated_rejectTransfer as rejectTransfer, generated_reportMatchPlayers as reportMatchPlayers, generated_requestSaveUploadUrl as requestSaveUploadUrl, generated_resetEntityProgression as resetEntityProgression, generated_setMatchBackfill as setMatchBackfill, generated_simulateEntityOrder as simulateEntityOrder, generated_transferHostV2 as transferHostV2, generated_updateGameRoomV2 as updateGameRoomV2 };
4161
4227
  }
4162
4228
  interface ServerAnalytics {
4163
4229
  track(playerId: string, name: string, props?: Readonly<Record<string, AnalyticsValue>>): void;
@@ -4321,7 +4387,7 @@ interface GemMatchApi {
4321
4387
  serve(server: GemMatchServerModule, options?: MatchServeOptions): Promise<MatchHosting>;
4322
4388
  connect(options?: MatchConnectOptions): Promise<MatchConnection>;
4323
4389
  }
4324
- type PurchaseRefusalCode = "unknown_currency" | "currency_not_in_game_payable" | "not_purchasable" | "no_price_in_currency" | "busy" | "cancelled" | "insufficient_funds" | "price_mismatch" | "config_version_stale" | "platform_currency_unavailable" | "not_available" | "recipe_locked" | "recipe_on_cooldown" | "recipe_max_uses_exceeded" | "item_max_stack_exceeded" | "recipe_costs_unmet" | "quantity_invalid" | "error";
4390
+ type PurchaseRefusalCode = "unknown_currency" | "currency_not_in_game_payable" | "not_purchasable" | "no_price_in_currency" | "busy" | "cancelled" | "insufficient_funds" | "price_mismatch" | "config_version_stale" | "platform_currency_unavailable" | "not_available" | "recipe_locked" | "already_owned" | "recipe_on_cooldown" | "recipe_max_uses_exceeded" | "item_max_stack_exceeded" | "recipe_costs_unmet" | "quantity_invalid" | "error";
4325
4391
  declare class PurchaseRefusal extends RangeError {
4326
4392
  readonly code: Extract<PurchaseRefusalCode, "unknown_currency" | "not_purchasable" | "no_price_in_currency" | "quantity_invalid">;
4327
4393
  readonly retryable: false;
@@ -4344,6 +4410,31 @@ type PurchaseOutcome = {
4344
4410
  interface PurchaseApi {
4345
4411
  request(req: PurchaseRequest): Promise<PurchaseOutcome>;
4346
4412
  }
4413
+ interface Avatar3dPurchaseRequest {
4414
+ itemId: string;
4415
+ currencySlug: string;
4416
+ }
4417
+ interface Avatar3dPrice {
4418
+ readonly currencySlug: string;
4419
+ readonly price: number;
4420
+ }
4421
+ interface Avatar3dOffer {
4422
+ readonly itemId: string;
4423
+ readonly slug: string;
4424
+ readonly family: Avatar3dFamily;
4425
+ readonly displayName: string;
4426
+ readonly description?: string;
4427
+ readonly iconUrl: string;
4428
+ readonly modelUrl: string;
4429
+ readonly prices: readonly Avatar3dPrice[];
4430
+ }
4431
+ interface Avatars3dApi {
4432
+ families(): Promise<readonly Avatar3dFamily[]>;
4433
+ worn(family?: Avatar3dFamily): WornAvatar3d$1 | undefined;
4434
+ offers(): Promise<readonly Avatar3dOffer[]>;
4435
+ purchase(request: Avatar3dPurchaseRequest): Promise<PurchaseOutcome>;
4436
+ onChange(listener: (worn: readonly WornAvatar3d$1[]) => void): () => void;
4437
+ }
4347
4438
  type SignInOutcomeKind = "signed_in" | "declined" | "unavailable";
4348
4439
  interface SignInOutcome {
4349
4440
  readonly outcome: SignInOutcomeKind;
@@ -4361,13 +4452,6 @@ interface PlayerBoost {
4361
4452
  readonly multipliers: readonly PlayerBoostMultiplier[];
4362
4453
  readonly expiresInDays?: number;
4363
4454
  }
4364
- type GemControlChoice = "player" | "game";
4365
- interface GemControlsDeclaration {
4366
- readonly lookSensitivity?: GemControlChoice;
4367
- readonly gamepadLookSensitivity?: GemControlChoice;
4368
- readonly invertLookY?: GemControlChoice;
4369
- readonly touchMovement?: GemControlChoice;
4370
- }
4371
4455
  interface RewardCue {
4372
4456
  currencySlug: string;
4373
4457
  expected?: number;
@@ -4405,6 +4489,7 @@ interface FrameCallbacks {
4405
4489
  onRoomEvent?(msg: GemRoomEvent): void;
4406
4490
  onSeatedEvent?(msg: GemSeatedEvent): void;
4407
4491
  onAutoStartFailedEvent?(msg: GemAutoStartFailedEvent): void;
4492
+ onTicketEvent?(msg: GemTicketEvent): void;
4408
4493
  onSocketState?(msg: GemSocketState): void;
4409
4494
  onSignalEvent?(msg: GemSignalEvent): void;
4410
4495
  onDedicatedEvent?(msg: GemDedicatedEvent): void;
@@ -4465,8 +4550,7 @@ declare class GemFrame {
4465
4550
  setWalletVisible(visible: boolean, options?: {
4466
4551
  only?: readonly string[];
4467
4552
  }): boolean;
4468
- declareControls(uses: GemControlsDeclaration): boolean;
4469
- setMenu(settings: boolean, items?: ReadonlyArray<{
4553
+ setMenu(items?: ReadonlyArray<{
4470
4554
  readonly id: string;
4471
4555
  readonly label: string;
4472
4556
  }>): boolean;
@@ -4485,6 +4569,7 @@ declare class GemFrame {
4485
4569
  dedicatedOffer(matchId: string, sdp: string, intent: GemDedicatedOffer["intent"]): void;
4486
4570
  requestParty(requestId: string): boolean;
4487
4571
  requestPurchase(requestId: string, purchaseKind: "item" | "recipe", targetId: string, currencySlug: string, quantity?: number, catalogId?: string): boolean;
4572
+ requestAvatar3dPurchase(requestId: string, itemId: string, currencySlug: string): boolean;
4488
4573
  putDeviceSettings(requestId: string, settings: Readonly<Record<string, unknown>>): boolean;
4489
4574
  requestAd(requestId: string, placement: string, format: "interstitial" | "rewarded"): boolean;
4490
4575
  requestSignIn(requestId: string): boolean;
@@ -4538,7 +4623,6 @@ interface GemLook {
4538
4623
  set(options: GemLookOptions): void;
4539
4624
  }
4540
4625
  interface ControlsApi {
4541
- declare(uses: GemControlsDeclaration): boolean;
4542
4626
  look(options?: GemLookOptions): GemLook;
4543
4627
  readonly LOOK_BASE: GemLookBase;
4544
4628
  }
@@ -4666,7 +4750,6 @@ interface GameMenuItem {
4666
4750
  readonly onSelect: () => void;
4667
4751
  }
4668
4752
  interface GameMenu {
4669
- readonly onSettings?: () => void;
4670
4753
  readonly items?: readonly GameMenuItem[];
4671
4754
  }
4672
4755
  interface GemTerminationNotice {
@@ -4697,6 +4780,7 @@ interface Gem {
4697
4780
  openAvatarPicker(options?: {
4698
4781
  readonly tab?: "2d" | "3d";
4699
4782
  }): boolean;
4783
+ readonly avatars3d: Avatars3dApi;
4700
4784
  readonly vibration: VibrationApi;
4701
4785
  readonly controls: ControlsApi;
4702
4786
  readonly analytics: AnalyticsApi;
@@ -4743,4 +4827,4 @@ interface ExitAnalytics {
4743
4827
  }
4744
4828
  declare function leaveAndExit(rooms: ExitRooms, bridge: ExitBridge | null, reason?: string, analytics?: ExitAnalytics): Promise<void>;
4745
4829
  declare function createGem(options?: GemOptions): Gem;
4746
- export { ARCADE_EMBEDDERS, type AccountApi, type AdFormat, type AdOutcome, type AdOutcomeKind, type AdRequest, type AdsApi, AnalyticsApi, type AnalyticsFlushOptions, type AnalyticsFlushResult, type AnalyticsOptions, type AnalyticsRejection$1 as AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BootMark, type BootTimeline, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, ChallengesApi, type ClientOptions, type Clock, type ConditionalRequestHeaders, type ConfiguredPurchasePayment, type ConfiguredPurchaseRequest, type ConfiguredPurchaseResult, type ControlsApi, DEVICE_SETTINGS_MAX_BYTES, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DevToolsOpener, type DeviceSettings, type DeviceSettingsApi, type DeviceSettingsPutOutcome, type DirectPurchaseRequest, type DirectPurchaseResult, type EarnAllowance, type EarnAllowanceEvent, type EarnAllowancePeriod, type EarnAllowanceReadOptions, type EntityLeaderboard, type EntityLeaderboardEntry, type EntityLeaderboardOptions, type EntityType$1 as EntityType, type ExitAnalytics, type ExitBridge, type ExitRooms, type FrameState, type Friend, type FriendChallenge, FriendChallengeError, type FriendChallengeErrorCode, type FriendChallengeOutcome, type FriendChallengeOutcomeKind, type FriendChallengeRequest, type FriendChallengesPage, FriendsApi, type FriendsPage, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, type GameConfig, type GameMenu, type GameMenuItem, type GameServerLink, type Gem, GemApiError, GemClient, type GemCohort, type GemCohorts, GemConfigError, type GemControlChoice, type GemControlsDeclaration, type GemDevTools, type GemErrorReason, GemFrame, GemFunctionError, type GemGraphicsQuality, type GemIdentity, type GemInsets, type GemLook, type GemLookBase, type GemLookDelta, type GemLookOptions, type GemLookSpeed, type GemMatchApi, type GemMatchServer, type GemMatchServerModule, type GemOptions, type GemPlayer, type GemPrefs, type GemRecommendedSettings, type GemReservedArea, GemSaveError, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type GemTerminationNotice, GemUnframedError, type GemViewport, type GetLeaderboardOptions, type HostTokenSource, type HostTokenSourceOptions, type JoinWelcome, type Leaderboard, type LeaderboardEntry, type LeaderboardPeriod, LeaderboardsApi, type ListChallengesOptions, type ListFriendChallengesOptions, type ListFriendsOptions, MAX_PERIODS_BACK, type MatchBackfillState, type MatchConnectOptions, type MatchConnection, type MatchHosting, type MatchHostingMode, type MatchPlayerReport, type MatchPlayerReportResult, type MatchServeOptions, type MatchTransport, type MessageMeta, type MultiTransportSession, PLATFORM_EVENTS, type PeriodOptions, PlatformApi, PlatformCurrenciesApi, type PlatformCurrency, type PlatformCurrencyAccess, type PlatformCurrencyPurchasePayment, type PlatformCurrencyPurchaseRequest, type PlatformCurrencyPurchaseResult, type PlatformCurrencyReadOptions, PlatformEarnAllowanceApi, type PlatformEventName, type PlayerBadge$1 as PlayerBadge, type PlayerBoost, type PlayerBoostMultiplier, type PlayerIdentity, type PlayerProfile, PlayerText, type ProfileCallOptions, type ProfileShowcaseEntry$1 as ProfileShowcaseEntry, ProfilesApi, type PurchaseApi, type PurchaseOptions, type PurchaseOutcome, PurchaseRefusal, type PurchaseRefusalCode, type PurchaseRequest, type PutBytesOptions, type PutSaveOptions, type RankedRow, type RecipeAvailability, type RecipeLock, type RequestOptions, type RewardCue, type RewardedStatus, type RoomArgValue, type SavePage, type SaveRecord, type SendOptions$1 as SendOptions, type ServerApi, type ServerBundleHost, type ServerTokenGrant, type SessionEndReason, type ShareApi, type ShareRequest, ShowcaseApi, type ShowcaseCallOptions, type ShowcaseFriendEntry, type ShowcaseFriends, type ShowcaseValue, type SignInOutcome, type SignInOutcomeKind, type SnapshotCurrency, type SnapshotItem, type TokenGrant, type Transport, type TransportAdvert, type TransportKind, TransportRefusal, type TransportRequest, type TransportResponse, UNRELIABLE_CHANNEL_LABEL, type VersionedGetOptions, type VersionedResponse, type VibrationApi, type WalletVisibleOptions, asPlayerText, createBootTimeline, createGem, createGemServer, createHostTokenSource, createMatchServer, defineServer, leaveAndExit, mapIdentity, markOnResolve, platformIconUrl, presentJoinCredential, readTemplateTransports, readTransportAdvert, reportOnResolve, systemClock, text, toBase64, webTransportAvailable };
4830
+ export { ARCADE_EMBEDDERS, type AccountApi, type AdFormat, type AdOutcome, type AdOutcomeKind, type AdRequest, type AdsApi, AnalyticsApi, type AnalyticsFlushOptions, type AnalyticsFlushResult, type AnalyticsOptions, type AnalyticsRejection$1 as AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Avatar3dFamily, type Avatar3dOffer, type Avatar3dPrice, type Avatar3dPurchaseRequest, type Avatars3dApi, type Base64String, type BootMark, type BootTimeline, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, ChallengesApi, type ClientOptions, type Clock, type ConditionalRequestHeaders, type ConfiguredPurchasePayment, type ConfiguredPurchaseRequest, type ConfiguredPurchaseResult, type ControlsApi, DEVICE_SETTINGS_MAX_BYTES, DedicatedServerError, type DedicatedServerFailure, type DedicatedServerSession, type DevToolsOpener, type DeviceSettings, type DeviceSettingsApi, type DeviceSettingsPutOutcome, type DirectPurchaseRequest, type DirectPurchaseResult, type EarnAllowance, type EarnAllowanceEvent, type EarnAllowancePeriod, type EarnAllowanceReadOptions, type EntityLeaderboard, type EntityLeaderboardEntry, type EntityLeaderboardOptions, type EntityType$1 as EntityType, type ExitAnalytics, type ExitBridge, type ExitRooms, type FrameState, type Friend, type FriendChallenge, FriendChallengeError, type FriendChallengeErrorCode, type FriendChallengeOutcome, type FriendChallengeOutcomeKind, type FriendChallengeRequest, type FriendChallengesPage, FriendsApi, type FriendsPage, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, type GameConfig, type GameMenu, type GameMenuItem, type GameServerLink, type Gem, GemApiError, GemClient, type GemCohort, type GemCohorts, GemConfigError, type GemDevTools, type GemErrorReason, GemFrame, GemFunctionError, type GemGraphicsQuality, type GemIdentity, type GemInsets, type GemLook, type GemLookBase, type GemLookDelta, type GemLookOptions, type GemLookSpeed, type GemMatchApi, type GemMatchServer, type GemMatchServerModule, type GemOptions, type GemPlayer, type GemPrefs, type GemRecommendedSettings, type GemReservedArea, GemSaveError, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type GemTerminationNotice, GemUnframedError, type GemViewport, type GetLeaderboardOptions, type HostTokenSource, type HostTokenSourceOptions, type JoinWelcome, type Leaderboard, type LeaderboardEntry, type LeaderboardPeriod, LeaderboardsApi, type ListChallengesOptions, type ListFriendChallengesOptions, type ListFriendsOptions, MAX_PERIODS_BACK, type MatchBackfillState, type MatchConnectOptions, type MatchConnection, type MatchHosting, type MatchHostingMode, type MatchPlayerReport, type MatchPlayerReportResult, type MatchServeOptions, type MatchTransport, type MessageMeta, type MultiTransportSession, PLATFORM_EVENTS, type PeriodOptions, PlatformApi, PlatformCurrenciesApi, type PlatformCurrency, type PlatformCurrencyAccess, type PlatformCurrencyPurchasePayment, type PlatformCurrencyPurchaseRequest, type PlatformCurrencyPurchaseResult, type PlatformCurrencyReadOptions, PlatformEarnAllowanceApi, type PlatformEventName, type PlayerBadge$1 as PlayerBadge, type PlayerBoost, type PlayerBoostMultiplier, type PlayerIdentity, type PlayerProfile, PlayerText, type ProfileCallOptions, type ProfileShowcaseEntry$1 as ProfileShowcaseEntry, ProfilesApi, type PurchaseApi, type PurchaseOptions, type PurchaseOutcome, PurchaseRefusal, type PurchaseRefusalCode, type PurchaseRequest, type PutBytesOptions, type PutSaveOptions, type RankedRow, type RecipeAvailability, type RecipeLock, type RequestOptions, type RewardCue, type RewardedStatus, type RoomArgValue, type SavePage, type SaveRecord, type SendOptions$1 as SendOptions, type ServerApi, type ServerBundleHost, type ServerTokenGrant, type SessionEndReason, type ShareApi, type ShareRequest, ShowcaseApi, type ShowcaseCallOptions, type ShowcaseFriendEntry, type ShowcaseFriends, type ShowcaseValue, type SignInOutcome, type SignInOutcomeKind, type SnapshotCurrency, type SnapshotItem, type TokenGrant, type Transport, type TransportAdvert, type TransportKind, TransportRefusal, type TransportRequest, type TransportResponse, UNRELIABLE_CHANNEL_LABEL, type VersionedGetOptions, type VersionedResponse, type VibrationApi, type WalletVisibleOptions, type WornAvatar3d$1 as WornAvatar3d, asPlayerText, createBootTimeline, createGem, createGemServer, createHostTokenSource, createMatchServer, defineServer, leaveAndExit, mapIdentity, markOnResolve, platformIconUrl, presentJoinCredential, readTemplateTransports, readTransportAdvert, reportOnResolve, systemClock, text, toBase64, webTransportAvailable };