@idosgames/core 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -74,10 +74,10 @@ declare const IapStore$1: {
74
74
  readonly AppleAppStore: "AppleAppStore";
75
75
  };
76
76
  type IapStore$1 = (typeof IapStore$1)[keyof typeof IapStore$1];
77
- declare const zIapStore: z.ZodEnum<{
77
+ declare const zIapStore: z.ZodCatch<z.ZodEnum<{
78
78
  GooglePlay: "GooglePlay";
79
79
  AppleAppStore: "AppleAppStore";
80
- }>;
80
+ }>>;
81
81
  declare const EventTokenType: {
82
82
  readonly TimedEvent: "TimedEvent";
83
83
  readonly Quest: "Quest";
@@ -220,11 +220,32 @@ interface EventTokenMetaData {
220
220
  JoinedAtUtc?: string;
221
221
  LastEarnedAtUtc?: string;
222
222
  }
223
- /** Claimed/unlocked milestone ids for a per-cycle token (points-track / leaderboard / quest). */
223
+ /**
224
+ * Milestone state of a per-cycle token (points-track / leaderboard / quest): MilestoneID -> what
225
+ * already happened for that milestone.
226
+ *
227
+ * One container instead of parallel claimed/unlocked/granted-tier lists — mirrors the server
228
+ * (`EventTokenMilestoneData.Claims`). The base part is claimed once, while premium tiers arrive as
229
+ * the player buys or upgrades a pass, so both live in the same entry.
230
+ */
224
231
  interface EventTokenMilestoneData {
225
- ClaimedIDs?: string[];
226
- UnlockedIDs?: string[];
232
+ Claims?: Record<string, MilestoneClaimEntry>;
227
233
  }
234
+ /** What happened for a single milestone. */
235
+ interface MilestoneClaimEntry {
236
+ /** When the base part was claimed. Absent = not claimed. */
237
+ ClaimedAt?: string | null;
238
+ /** Keys of granted premium tier bundles (`{RequiredPremiumID|*}#{MinPremiumTier}`). */
239
+ PremiumTiers?: string[];
240
+ /** Threshold reached but the claim is still gated by the claim mode. */
241
+ Unlocked?: boolean;
242
+ }
243
+ /** Is the base part of the milestone claimed. */
244
+ declare function isMilestoneClaimed(milestone: EventTokenMilestoneData | null | undefined, milestoneID: string): boolean;
245
+ /** IDs of milestones whose base part is claimed. */
246
+ declare function claimedMilestoneIDs(milestone: EventTokenMilestoneData | null | undefined): string[];
247
+ /** Keys of premium tiers already granted for the milestone. */
248
+ declare function grantedPremiumTiers(milestone: EventTokenMilestoneData | null | undefined, milestoneID: string): string[];
228
249
  interface UserEventTokenProgress {
229
250
  Balance?: EventTokenBalanceData;
230
251
  Daily?: EventTokenDailyData;
@@ -311,7 +332,7 @@ type PresetBinding = { PresetID?: null | string; Remove?: null | Array<string>;
311
332
  type SeasonTierRewardBundle = { SeasonChainID?: null | string; MinSeasonTier?: null | number; Rewards?: null | ResourceGrant; [key: string]: unknown; };
312
333
  type SeasonTierRewardMultiplier = { SeasonChainID?: null | string; MinSeasonTier?: null | number; Multiplier?: null | number; [key: string]: unknown; };
313
334
  type SeasonTierRewardSet = { Bundles?: null | Array<SeasonTierRewardBundle>; Multipliers?: null | Array<SeasonTierRewardMultiplier>; [key: string]: unknown; };
314
- type RewardProgressionMultiplierSpec = { Source?: null | 'BoardStageLevel' | 'BoardRank' | 'BoardCyclesCompleted' | 'CharacterLevel' | 'SeasonTier' | 'EventTokenTotalEarned' | 'VirtualCurrencyBalance' | 'PlayerLevel'; SourceKey?: null | string; CurveType?: null | 'Tiered' | 'Linear'; Tiers?: null | Array<{ AtProgress?: null | number; Multiplier?: null | number; [key: string]: unknown; }>; TierMode?: null | 'Linear' | 'Step'; BaseMultiplier?: null | number; PerUnit?: null | number; Anchor?: null | number; MinMultiplier?: null | number; MaxMultiplier?: null | number; IncludeRewards?: null | ResourceBundle; ExcludeRewards?: null | ResourceBundle; [key: string]: unknown; };
335
+ type RewardProgressionMultiplierSpec = { Source?: null | 'BoardStageLevel' | 'BoardRank' | 'BoardCyclesCompleted' | 'CharacterLevel' | 'SeasonTier' | 'EventTokenTotalEarned' | 'VirtualCurrencyBalance' | 'PlayerLevel'; SourceKey?: null | string; Curve?: null | ScalarCurveSpec; Anchor?: null | number; IncludeRewards?: null | ResourceBundle; ExcludeRewards?: null | ResourceBundle; [key: string]: unknown; };
315
336
  type MilestoneDefinition = { MilestoneID?: null | string; DisplayName?: null | string; AssetPaths?: null | Record<string, string>; RequiredProgress?: null | number; Rewards?: null | ResourceGrant; BonusRewards?: null | ResourceGrant; SeasonTierRewards?: null | SeasonTierRewardSet; SortOrder?: null | number; IsFeatured?: null | boolean; [key: string]: unknown; };
316
337
  /**
317
338
  * Thin wrapper for a reusable milestone set (port of Core/Milestone/Models/MilestoneSet.cs,
@@ -922,7 +943,7 @@ interface UserPremiumState {
922
943
  ActivatedTrialIDs?: string[];
923
944
  MaxActiveTier?: number;
924
945
  }
925
- type PremiumDefinition = { PremiumID?: null | string; DisplayName?: null | string; Tier?: null | number; DurationDays?: null | number; TrialDurationDays?: null | number; PriceOptions?: null | PriceOptions; AppleProductID?: null | string; GoogleProductID?: null | string; Benefits?: null | Record<string, string>; [key: string]: unknown; };
946
+ type PremiumDefinition = { PremiumID?: null | string; DisplayName?: null | string; Tier?: null | number; DurationDays?: null | number; TrialDurationDays?: null | number; PriceOptions?: null | PriceOptions; Benefits?: null | Record<string, string>; [key: string]: unknown; };
926
947
  interface PremiumDefinitions {
927
948
  Definitions?: Record<string, PremiumDefinition> | null;
928
949
  }
@@ -972,21 +993,21 @@ type UnlockCharactersBatchResponse = { ServerTimeUtc: string; Items: Array<{ Id:
972
993
  type UpgradeCharacterLevelsBatchResponse = { ServerTimeUtc: string; Items: Array<{ Id: string; Success: boolean; Error?: null | string; Data?: null | UpgradeCharacterLevelResponse; }>; Resources?: null | ResourceOperation; };
973
994
  type UpgradeStatLevelsBatchResponse = { ServerTimeUtc: string; Items: Array<{ Id: string; Success: boolean; Error?: null | string; Data?: null | UpgradeStatLevelResponse; }>; Resources?: null | ResourceOperation; };
974
995
  type StatRequirement = { RequiredStatID: string; RequiredLevel: number; [key: string]: unknown; };
975
- type StatDefinition = { StatID: string; TypeID?: null | string; DisplayName?: null | string; Description?: null | string; MaxLevel?: null | number; Weight?: null | number; PriceOptions?: null | PriceOptions; CostScalingFactor?: null | number; BaseStatValue?: null | number; StatScalingFactor?: null | number; CharacterLevelScalingFactor?: null | number; Requirements?: null | Array<StatRequirement>; AssetPaths?: null | Record<string, string>; [key: string]: unknown; };
976
- type CharacterLevelDefinition = { Level?: null | number; PriceOptions?: null | PriceOptions; GlobalStatMultiplier?: null | number; StatMaxLevelMultiplier?: null | number; AssetPaths?: null | Record<string, string>; [key: string]: unknown; };
996
+ type StatDefinition = { StatID: string; TypeID?: null | string; DisplayName?: null | string; Description?: null | string; MaxLevel?: null | number; Weight?: null | number; PriceOptions?: null | PriceOptions; CostCurve?: null | ScalarCurveSpec; BaseStatValue?: null | number; ValueCurve?: null | ScalarCurveSpec; RankCurve?: null | ScalarCurveSpec; Requirements?: null | Array<StatRequirement>; AssetPaths?: null | Record<string, string>; [key: string]: unknown; };
977
997
  type CharacterEquipmentSlot = { SlotID: string; MinCharacterLevel?: null | number; StatRequirements?: null | Array<StatRequirement>; AllowedRarityIDs?: null | Array<string>; AllowedItemTags?: null | Array<string>; MinItemLevel?: null | number; MaxItemLevel?: null | number; [key: string]: unknown; };
978
998
  type CharacterEquipment = { Slots?: null | Record<string, CharacterEquipmentSlot>; [key: string]: unknown; };
979
999
  type CharacterIdentity = { DisplayName?: null | string; Description?: null | string; Lore?: null | string; SortOrder?: null | number; AssetPaths?: null | Record<string, string>; [key: string]: unknown; };
980
1000
  type CharacterClassification = { ClassID?: null | string; RarityID?: null | string; Tags?: null | Array<string>; [key: string]: unknown; };
981
1001
  type CharacterUnlock = { UnlockedByDefault?: null | boolean; PriceOptions?: null | PriceOptions; [key: string]: unknown; };
982
- type CharacterDefinition = { CharacterID: string; Identity?: null | CharacterIdentity; Classification?: null | CharacterClassification; Unlock?: null | CharacterUnlock; Presets?: null | { Stats?: null | PresetBinding; Levels?: null | PresetBinding; Equipment?: null | PresetBinding; [key: string]: unknown; }; Equipment?: null | CharacterEquipment; Stats?: null | Record<string, StatDefinition>; Levels?: null | Record<string, CharacterLevelDefinition>; [key: string]: unknown; };
1002
+ type CharacterRankLadder = { MaxRank?: null | number; FirstPaidRank?: null | number; PriceOptions?: null | PriceOptions; CostCurve?: null | ScalarCurveSpec; [key: string]: unknown; };
1003
+ type CharacterDefinition = { CharacterID: string; Identity?: null | CharacterIdentity; Classification?: null | CharacterClassification; Unlock?: null | CharacterUnlock; Presets?: null | { Stats?: null | PresetBinding; Levels?: null | PresetBinding; Equipment?: null | PresetBinding; [key: string]: unknown; }; Equipment?: null | CharacterEquipment; Stats?: null | Record<string, StatDefinition>; RankLadder?: null | CharacterRankLadder; RankStatCurve?: null | ScalarCurveSpec; StatMaxLevelCurve?: null | ScalarCurveSpec; [key: string]: unknown; };
983
1004
  type StatsPreset = { Stats?: null | Record<string, StatDefinition>; [key: string]: unknown; };
984
- type LevelsPreset = { Levels?: null | Record<string, CharacterLevelDefinition>; [key: string]: unknown; };
1005
+ type LevelsPreset = { RankLadder?: null | CharacterRankLadder; [key: string]: unknown; };
985
1006
  type EquipmentPreset = { Equipment?: null | CharacterEquipment; [key: string]: unknown; };
986
1007
  /**
987
- * Registry of shared (reusable) character setting sets (stats / levels / equipment).
988
- * Characters reference them via CharacterDefinition.Presets. All blocks merge with inline by
989
- * key: Stats by StatID, Levels by level key, Equipment by SlotID inside Slots.
1008
+ * Registry of shared (reusable) character setting sets (stats / rank ladder / equipment).
1009
+ * Characters reference them via CharacterDefinition.Presets. Stats and Equipment merge with the
1010
+ * inline block by key (StatID / SlotID); the rank ladder is replaced whole, not merged.
990
1011
  */
991
1012
  interface CharacterPresetRegistry {
992
1013
  Stats?: Record<string, StatsPreset> | null;
@@ -1117,7 +1138,7 @@ declare const MatchAction: {
1117
1138
  readonly GetDefinitions: "GetDefinitions";
1118
1139
  };
1119
1140
  type MatchAction = (typeof MatchAction)[keyof typeof MatchAction];
1120
- type InstantBattleSettings = { StatMapping?: null | { HealthStatID?: null | string; DamageStatID?: null | string; ArmorStatID?: null | string; AttackSpeedStatID?: null | string; CritChanceStatID?: null | string; CritDamageStatID?: null | string; DodgeStatID?: null | string; AllMightStatID?: null | string; [key: string]: unknown; }; Combat?: null | { MaxRounds?: null | number; BlockDamageMultiplier?: null | number; MinHitDamage?: null | number; DefaultCritMultiplier?: null | number; MaxCritChance?: null | number; MaxDodgeChance?: null | number; [key: string]: unknown; }; Formula?: null | { Health?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Damage?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Armor?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; AttackSpeed?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; CritChance?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; CritDamage?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Dodge?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Source?: null | 'Constant' | 'Stat' | 'RankMultiplier' | 'AllMight' | 'GearFlat' | 'GearPercent'; StatID?: null | string; Value?: null | number; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; [key: string]: unknown; }; [key: string]: unknown; };
1141
+ type InstantBattleSettings = { StatMapping?: null | { HealthStatID?: null | string; DamageStatID?: null | string; ArmorStatID?: null | string; AttackSpeedStatID?: null | string; CritChanceStatID?: null | string; CritDamageStatID?: null | string; DodgeStatID?: null | string; AllMightStatID?: null | string; [key: string]: unknown; }; Combat?: null | { MaxRounds?: null | number; BlockDamageMultiplier?: null | number; MinHitDamage?: null | number; DefaultCritMultiplier?: null | number; MaxCritChance?: null | number; MaxDodgeChance?: null | number; ArmorMode?: null | 'Flat' | 'PercentReduction'; MaxArmorReduction?: null | number; [key: string]: unknown; }; Formula?: null | { Health?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Damage?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Armor?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; AttackSpeed?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; CritChance?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; CritDamage?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; Dodge?: null | { Terms?: null | Array<{ Coefficient?: null | number; Factors?: null | Array<{ Kind?: null | 'Curve' | 'Constant' | 'Variable'; Constant?: null | number; VariableID?: null | string; Argument?: null | string; Curve?: null | ScalarCurveSpec; OnePlus?: null | boolean; [key: string]: unknown; }>; [key: string]: unknown; }>; [key: string]: unknown; }; [key: string]: unknown; }; [key: string]: unknown; };
1121
1142
  type MatchEconomySettings = { BurnRate?: null | number; [key: string]: unknown; };
1122
1143
  type MatchEntrySettings = { AllowVirtualCurrency?: null | boolean; AllowItems?: null | boolean; AllowEventTokens?: null | boolean; Allowed?: null | Array<{ Kind?: null | 'Item' | 'VirtualCurrency' | 'EventToken'; CurrencyID?: null | string; CatalogID?: null | string; ItemID?: null | string; TokenType?: null | 'TimedEvent' | 'Quest' | 'Leaderboard' | 'CoopEvent' | 'Season'; EntityID?: null | string; MinAmount?: null | number; MaxAmount?: null | number; [key: string]: unknown; }>; MaxPositions?: null | number; [key: string]: unknown; };
1123
1144
  type MatchCreationSettings = { PriceOptions?: null | PriceOptions; RefundCostOnCancel?: null | boolean; MaxOpenMatches?: null | number; Limits?: null | LimitSpec; AllowPrivateMatches?: null | boolean; MaxMatchesPerOpponentPerDay?: null | number; [key: string]: unknown; };
@@ -1508,8 +1529,8 @@ interface ReferralInviteRewardState {
1508
1529
  interface UserReferralState {
1509
1530
  SubscribedToUserID?: string | null;
1510
1531
  ActivationRewardGranted?: boolean;
1532
+ /** How many players activated this player's code. */
1511
1533
  FollowersCount?: number;
1512
- FollowerIDs?: string[];
1513
1534
  InviteRewardStates?: Record<string, ReferralInviteRewardState>;
1514
1535
  UpdatedAt?: string;
1515
1536
  [key: string]: unknown;
@@ -1564,10 +1585,40 @@ declare const TimelineEventType: {
1564
1585
  type TimelineEventType = (typeof TimelineEventType)[keyof typeof TimelineEventType];
1565
1586
  type FriendPublicProfile = { UserID: string; PublicData?: null | UserPublicDataModel; };
1566
1587
  type SocialTimelineEvent = { OwnerUserID?: null | string; ActorUserID?: null | string; ActorProfile?: null | UserPublicDataModel; Type?: null | string; CreatedAt?: null | string; OwnerImpact?: null | ResourceOperation; IsBlocked?: null | boolean; TargetObjectName?: null | string; [key: string]: unknown; };
1588
+ /**
1589
+ * The player's social state.
1590
+ *
1591
+ * ⚠ **Two halves with different origins — do not confuse them.**
1592
+ *
1593
+ * The **counters** are what the server actually sends inside the player state. Friendships and
1594
+ * requests live in their own edge collection now (they used to be three arrays inside the player
1595
+ * document, which meant a third party — whoever sent you a request — could grow *your* document,
1596
+ * unbounded, and it was re-read on every one of *your* calls). Only the sizes travel with state.
1597
+ *
1598
+ * The **arrays below the counters are a local SDK cache**, not server state. Nothing fills them on
1599
+ * login: `getFriendsList()` fills `Accepted`, `getIncomingRequests()` fills `IncomingRequests`,
1600
+ * `getTimeline()` fills `Timeline`, and `OutgoingRequests` only ever grows client-side from your
1601
+ * own `sendFriendRequest()` calls. Consequence to plan the UI around: **until you call them, the
1602
+ * arrays are empty even for a player with friends** — while `FriendsCount` is already correct.
1603
+ * They are also lost on restart, because nothing re-sends them.
1604
+ *
1605
+ * Rule of thumb: render badges and counts from the counters, render lists only on a screen that
1606
+ * loads them.
1607
+ */
1567
1608
  interface UserSocialState {
1609
+ /** Number of friends. Server-sent, always current. */
1610
+ FriendsCount?: number;
1611
+ /** Number of requests awaiting this player's answer. Server-sent, always current. */
1612
+ IncomingCount?: number;
1613
+ /** Number of requests this player sent that are still unanswered. Server-sent. */
1614
+ OutgoingCount?: number;
1615
+ /** Local cache — friend UserIDs. Empty until `getFriendsList()`. */
1568
1616
  Accepted?: string[];
1617
+ /** Local cache — UserIDs who requested this player. Empty until `getIncomingRequests()`. */
1569
1618
  IncomingRequests?: string[];
1619
+ /** Local cache — UserIDs this player sent a request to. Client-side only; never server-sent. */
1570
1620
  OutgoingRequests?: string[];
1621
+ /** Local cache — activity feed. Empty until `getTimeline()`. */
1571
1622
  Timeline?: SocialTimelineEvent[];
1572
1623
  }
1573
1624
  type FriendsListResponse = { Friends?: null | Array<FriendPublicProfile>; };
@@ -1581,6 +1632,7 @@ interface SocialRequest extends BaseRequest {
1581
1632
  declare const SocialAction: {
1582
1633
  readonly GetFriendsList: "GetFriendsList";
1583
1634
  readonly GetIncomingRequests: "GetIncomingRequests";
1635
+ readonly GetOutgoingRequests: "GetOutgoingRequests";
1584
1636
  readonly GetRecommendedFriends: "GetRecommendedFriends";
1585
1637
  readonly SendFriendRequest: "SendFriendRequest";
1586
1638
  readonly AcceptFriendRequest: "AcceptFriendRequest";
@@ -1739,6 +1791,7 @@ type AttackOutcome = (typeof AttackOutcome)[keyof typeof AttackOutcome];
1739
1791
  type BuildingState = { SlotIndex: number; Level?: null | number; IsDamaged?: null | boolean; MaxLevelRewardClaimed?: null | boolean; [key: string]: unknown; };
1740
1792
  type HeistCell = { Symbol?: null | string | number; OnOpenBonus?: null | ResourceGrant; BonusTag?: null | string; [key: string]: unknown; };
1741
1793
  type SpecialGradationTierSnapshot = { ElapsedSeconds?: null | number; Reward?: null | ResourceGrant; [key: string]: unknown; };
1794
+ type SpecialStatMetricSnapshot = { MetricID?: null | string; MaxValuePerClaim?: null | number; TierMode?: null | string; ApplyClaimMultiplier?: null | boolean; Tiers?: null | Array<{ RequiredValue?: null | number; Reward?: null | ResourceGrant; [key: string]: unknown; }>; Rate?: null | { Reward?: null | ResourceGrant; MetricPerReward?: null | number; MaxRewardUnits?: null | number; [key: string]: unknown; }; [key: string]: unknown; };
1742
1795
  interface SpecialPendingState {
1743
1796
  ModeID?: string;
1744
1797
  ChoiceID?: string | null;
@@ -1747,9 +1800,15 @@ interface SpecialPendingState {
1747
1800
  DurationSeconds?: number | null;
1748
1801
  AdViewsUsed?: number;
1749
1802
  AccumulatedMultiplier?: number;
1803
+ /** Null = the choice has no time axis; the whole reward comes from RunStatTiers. */
1750
1804
  GradationTiers?: SpecialGradationTierSnapshot[] | null;
1805
+ /** Snapshot of SpecialGradationConfig.TierMode after defaulting. */
1806
+ GradationTierMode?: string | null;
1751
1807
  BelowFirstTierReward?: ResourceGrant | null;
1752
1808
  Multipliers?: SpecialClaimMultipliers | null;
1809
+ /** Run-statistics ladders frozen at Choose. Null = the choice has no run-stat rewards, or the
1810
+ * pending predates the feature; both mean the claim pays by the time ladder alone. */
1811
+ RunStatTiers?: SpecialStatMetricSnapshot[] | null;
1753
1812
  /** Offer choices stashed from the roll's SpecialModeOffer so the UI can render them in-session
1754
1813
  * (the server's GetUserBoardState pending only carries ModeID). */
1755
1814
  Choices?: SpecialModeChoice[] | null;
@@ -1803,7 +1862,8 @@ interface HeistGridBonusConfig {
1803
1862
  }
1804
1863
  type ChanceTable = { Outcomes?: null | Array<{ Weight?: null | number; OutcomeID?: null | string; Reward?: null | ScaledResourceOperation; ForceAction?: null | string; SpecialModeID?: null | string; [key: string]: unknown; }>; [key: string]: unknown; };
1805
1864
  type SpecialClaimMultipliers = { PerAdMultiplierRange?: null | RewardMultiplierRange; MaxAdViews?: null | number; AdCreditCost?: null | number; FormulaKind?: null | string; ApplyMultiplierOnEarlyClaim?: null | boolean; [key: string]: unknown; };
1806
- type SpecialGradationConfig = { Tiers?: null | Array<{ ElapsedSeconds?: null | number; Reward?: null | ScaledResourceOperation; [key: string]: unknown; }>; BelowFirstTierReward?: null | ScaledResourceOperation; [key: string]: unknown; };
1865
+ type SpecialGradationConfig = { Tiers?: null | Array<{ ElapsedSeconds?: null | number; Reward?: null | ScaledResourceOperation; [key: string]: unknown; }>; TierMode?: null | string; BelowFirstTierReward?: null | ScaledResourceOperation; [key: string]: unknown; };
1866
+ type SpecialRunStatsConfig = { MetricsByID?: null | Record<string, { MetricID?: null | string; MaxValuePerClaim?: null | number; TierMode?: null | string; ApplyClaimMultiplier?: null | boolean; Tiers?: null | Array<{ RequiredValue?: null | number; Reward?: null | ScaledResourceOperation; [key: string]: unknown; }>; Rate?: null | { Reward?: null | ScaledResourceOperation; MetricPerReward?: null | number; MaxRewardUnits?: null | number; [key: string]: unknown; }; [key: string]: unknown; }>; [key: string]: unknown; };
1807
1867
  /** A single choice in a Special mode (Instant reward or Timed flow with multipliers/gradation). */
1808
1868
  interface SpecialModeChoice {
1809
1869
  ChoiceID?: string | null;
@@ -1813,6 +1873,7 @@ interface SpecialModeChoice {
1813
1873
  EntryCost?: ResourceConsume | null;
1814
1874
  Multipliers?: SpecialClaimMultipliers | null;
1815
1875
  Gradation?: SpecialGradationConfig | null;
1876
+ RunStats?: SpecialRunStatsConfig | null;
1816
1877
  }
1817
1878
  /** Special-mode configuration bound to a tile via SpecialModeID. */
1818
1879
  interface SpecialModeDefinition {
@@ -1901,11 +1962,19 @@ interface GameLoopDefinitions {
1901
1962
  [key: string]: unknown;
1902
1963
  }
1903
1964
  type RollActionData = { TargetUserID?: null | string; IsBot?: null | boolean; PublicData?: null | UserPublicDataModel; TargetBuildingStates?: null | Array<BuildingState>; TargetHasShield?: null | boolean; [key: string]: unknown; };
1904
- type SpecialModeOfferData = { ModeID?: null | string; Choices?: null | Array<{ ChoiceID?: null | string; Mode?: null | string; Reward?: null | ScaledResourceOperation; DurationSeconds?: null | number; PriceOptions?: null | PriceOptions; Multipliers?: null | SpecialClaimMultipliers; [key: string]: unknown; }>; [key: string]: unknown; };
1965
+ type SpecialModeOfferData = { ModeID?: null | string; Choices?: null | Array<{ ChoiceID?: null | string; Mode?: null | string; Reward?: null | ScaledResourceOperation; DurationSeconds?: null | number; PriceOptions?: null | PriceOptions; Multipliers?: null | SpecialClaimMultipliers; RunStats?: null | SpecialRunStatsConfig; [key: string]: unknown; }>; [key: string]: unknown; };
1905
1966
  type CommunityChestContributionResult = { GroupID?: null | string; Delta?: null | number; NewProgress?: null | number; MaxProgress?: null | number; UnlockedMilestoneIDs?: null | Array<string>; Completed?: null | boolean; [key: string]: unknown; };
1906
1967
  interface BoardRollResponse {
1907
1968
  UsedMultiplier?: number | null;
1969
+ /** Sum of DiceValues. */
1908
1970
  Steps?: number | null;
1971
+ /**
1972
+ * Per-die faces in roll order — one entry per BoardDiceConfig.Count, each 1..Sides,
1973
+ * summing to Steps. Render the dice from here; do NOT split Steps yourself.
1974
+ * null = the step was scripted by the tutorial, so no dice breakdown exists
1975
+ * (a scripted step may fall outside the dice range, up to a full lap).
1976
+ */
1977
+ DiceValues?: number[] | null;
1909
1978
  OldPosition?: number | null;
1910
1979
  NewPosition: number;
1911
1980
  CyclesCompletedDelta?: number | null;
@@ -1921,7 +1990,7 @@ type RaidResponse = { Status?: null | string; Outcome?: null | string; FoundSymb
1921
1990
  type BuildResponse = { BuiltIndex: number; NewLevel?: null | number; StageComplete?: null | boolean; MaxLevelRewardClaimed?: null | boolean; Operation?: null | ResourceOperation; [key: string]: unknown; };
1922
1991
  type SpecialChooseResponse = { Mode?: null | string | number; Operation?: null | ResourceOperation; DurationSeconds?: null | number; StartedAtUtc?: null | string; ExpiresAtUtc?: null | string; [key: string]: unknown; };
1923
1992
  type SpecialApplyMultiplierResponse = { AdViewsUsed?: null | number; RolledMultiplier?: null | number; AccumulatedMultiplier?: null | number; RemainingAdViews?: null | number; [key: string]: unknown; };
1924
- type SpecialClaimResponse = { FinalMultiplier?: null | number; AdViewsUsed?: null | number; AccumulatedMultiplier?: null | number; IsEarlyClaim?: null | boolean; Operation?: null | ResourceOperation; [key: string]: unknown; };
1993
+ type SpecialClaimResponse = { FinalMultiplier?: null | number; AdViewsUsed?: null | number; AccumulatedMultiplier?: null | number; IsEarlyClaim?: null | boolean; ReachedTierIndex?: null | number; Operation?: null | ResourceOperation; AcceptedRunStats?: null | Record<string, number>; RunStatAwards?: null | Array<{ MetricID?: null | string; ReachedTierIndex?: null | number; RequiredValue?: null | number; RewardUnits?: null | number; [key: string]: unknown; }>; RunStatsClamped?: null | boolean; RunStatGrant?: null | ResourceGrant; [key: string]: unknown; };
1925
1994
  /** enum CommunityChestStatus — mirror of CoopGroupStatus. */
1926
1995
  declare const CommunityChestStatus: {
1927
1996
  readonly Forming: "Forming";
@@ -1961,6 +2030,13 @@ interface GameLoopRequest extends BaseRequest {
1961
2030
  ChoiceID?: string;
1962
2031
  GroupID?: string;
1963
2032
  MilestoneID?: string;
2033
+ /** Gameplay statistics of a Special-mode run ({MetricID: value}), sent with BoardSpecialClaim.
2034
+ * Keys are matched against the whitelist frozen in SpecialPendingState.RunStatTiers; a metric
2035
+ * absent there is ignored. Omitted/empty = the claim pays by the time ladder only.
2036
+ *
2037
+ * Values are fractional by design (run time, experience) — do NOT round them here: the server
2038
+ * compares against thresholds with a relative epsilon and clamps by the per-metric cap. */
2039
+ RunStats?: Record<string, number>;
1964
2040
  }
1965
2041
  declare const GameLoopAction: {
1966
2042
  readonly GetGameLoops: "GetGameLoops";
@@ -2213,8 +2289,22 @@ interface UserDailyCounters {
2213
2289
  Earned: number;
2214
2290
  Spent: number;
2215
2291
  }
2292
+ /**
2293
+ * Auto-recharge state of one currency. The server materializes accrual lazily — on a state read
2294
+ * and on any operation with that currency — so `UserVirtualCurrencyState.Amount` is already up to
2295
+ * date; there is no background job and no push.
2296
+ *
2297
+ * Countdown to the next BATCH (see `RechargeConfig`: a batch is `Rate` units per full `Period`):
2298
+ *
2299
+ * ```ts
2300
+ * const elapsed = (Date.now() - Date.parse(LastRechargeAt)) / 1000 + PendingSeconds;
2301
+ * const secondsToNextBatch = Math.max(0, Period - elapsed);
2302
+ * ```
2303
+ */
2216
2304
  interface UserRechargeState {
2305
+ /** Reference point of the next accrual: last accrual or spend (ISO, UTC). */
2217
2306
  LastRechargeAt?: string;
2307
+ /** Carried time that did not add up to a FULL period — always less than `Period`. */
2218
2308
  PendingSeconds?: number;
2219
2309
  }
2220
2310
  interface UserVirtualCurrencyState {
@@ -2302,14 +2392,58 @@ interface DailyUsageRecord {
2302
2392
  ActiveHoursMask: number;
2303
2393
  LastActiveAt: string;
2304
2394
  }
2305
- /** Aggregated app-usage stats (UserDataDocument.Usage), foreground-activity seconds only. */
2395
+ /**
2396
+ * One rolled-up period (a month or a year) of usage.
2397
+ *
2398
+ * `Seconds`/`Sessions` are `number` here like everywhere else in JS, but note they are 64-bit on
2399
+ * the server: a year of activity does not fit the per-day `int`.
2400
+ */
2401
+ interface UsagePeriodRecord {
2402
+ Seconds: number;
2403
+ Sessions: number;
2404
+ /**
2405
+ * How many CALENDAR DAYS of the period the player was active.
2406
+ *
2407
+ * This is the field the rollup exists for: a month's total seconds cannot tell you whether the
2408
+ * player came every day for ten minutes or once for five hours, and once the per-day records
2409
+ * are gone that is unrecoverable.
2410
+ */
2411
+ ActiveDays: number;
2412
+ LongestSessionSeconds: number;
2413
+ ActiveHoursMask: number;
2414
+ FirstActiveDay: string;
2415
+ LastActiveAt: string;
2416
+ }
2417
+ /**
2418
+ * Aggregated app-usage stats (UserDataDocument.Usage), foreground-activity seconds only.
2419
+ *
2420
+ * ⚠ **History is rolled up: days → months → years, and the rollup is IRREVERSIBLE.** `Daily` used
2421
+ * to hold every day the player had ever been active; it grew forever inside the document that is
2422
+ * read on every request. It is now a WINDOW of the most recent days (400 by default, configurable
2423
+ * per title). Everything older is folded into {@link Monthly}, and months of finished years into
2424
+ * {@link Yearly}. Per-day detail outside the window is gone for good.
2425
+ *
2426
+ * Practical consequence: **do not sum `Daily` to get a lifetime or a year-long total** — you will
2427
+ * silently undercount. Use `TotalSeconds`/`TotalSessions` for lifetime (they are kept separately
2428
+ * and are exact), or add the periods.
2429
+ */
2306
2430
  interface UserUsageState {
2431
+ /** Lifetime foreground seconds. Kept separately, never affected by the rollup. */
2307
2432
  TotalSeconds: number;
2433
+ /** Lifetime session count. Kept separately, never affected by the rollup. */
2308
2434
  TotalSessions: number;
2309
2435
  FirstActiveAt?: string | null;
2310
2436
  LastActiveAt: string;
2311
2437
  Reactivations?: UsageReactivationEvent[];
2438
+ /**
2439
+ * Per-day stats for the recent window only. Key is `"ddMMyyyy"` (historic format, not sortable).
2440
+ * Older days are no longer here — see {@link Monthly}.
2441
+ */
2312
2442
  Daily?: Record<string, DailyUsageRecord>;
2443
+ /** Folded months. Key is `"yyyyMM"` — sortable, unlike the per-day key. */
2444
+ Monthly?: Record<string, UsagePeriodRecord>;
2445
+ /** Folded years. Key is `"yyyy"`. Top step: there is nothing coarser to fold into. */
2446
+ Yearly?: Record<string, UsagePeriodRecord>;
2313
2447
  }
2314
2448
  interface UserState {
2315
2449
  UserID?: string;
@@ -2685,6 +2819,7 @@ declare const MultiplayerAction: {
2685
2819
  };
2686
2820
  type MultiplayerAction = (typeof MultiplayerAction)[keyof typeof MultiplayerAction];
2687
2821
  type PlatformLoginResponse = { TitleUserID: string; TitleClientSessionTicket: string; TitleClientSessionTicketExpiration: string; PlatformUserID?: null | string; PlatformAuthToken?: null | string; PlatformAuthTokenExpiration?: null | string; };
2822
+ type EmailRegistrationResponse = { CodeTtlMinutes?: null | number; ResendCooldownSeconds?: null | number; };
2688
2823
  type SuccessResponse = { IsCompleted?: null | boolean; ServerTime?: null | string; };
2689
2824
  type WalletChallengeResponse = { Message: string; ExpiresAt: string; };
2690
2825
  /** Client-supplied UTM/click-ID attribution signal, sent with login/register (port of AttributionInput). */
@@ -2713,13 +2848,14 @@ interface AuthenticationRequest extends BaseRequest {
2713
2848
  WalletAddress?: string;
2714
2849
  /** Wallet login: signature of the challenge message (EVM personal_sign hex / Solana ed25519, 0x-hex). */
2715
2850
  WalletSignature?: string;
2851
+ /** Code from the confirmation e-mail. See `AuthenticationAction.ConfirmEmailRegistration`. */
2852
+ VerificationCode?: string;
2716
2853
  }
2717
2854
  declare const AuthenticationAction: {
2718
2855
  readonly LoginWithDeviceID: "LoginWithDeviceID";
2719
2856
  readonly LoginWithTelegram: "LoginWithTelegram";
2720
2857
  readonly LoginWithEmail: "LoginWithEmail";
2721
2858
  readonly LoginWithGoogle: "LoginWithGoogle";
2722
- readonly LoginWithPlatformToken: "LoginWithPlatformToken";
2723
2859
  /**
2724
2860
  * Exchange a one-time SSO code (issued by idosgames.com) for a title session.
2725
2861
  *
@@ -2728,6 +2864,21 @@ declare const AuthenticationAction: {
2728
2864
  */
2729
2865
  readonly LoginWithSsoCode: "LoginWithSsoCode";
2730
2866
  readonly RegisterWithEmail: "RegisterWithEmail";
2867
+ /**
2868
+ * Confirm the address and create the player.
2869
+ *
2870
+ * Every way of getting it wrong answers with the same error — "no such registration", "code
2871
+ * expired" and "wrong code" are all statements ABOUT AN ADDRESS, and telling them apart would
2872
+ * bring the oracle back through the side door.
2873
+ */
2874
+ readonly ConfirmEmailRegistration: "ConfirmEmailRegistration";
2875
+ /**
2876
+ * Mail the code again.
2877
+ *
2878
+ * A NEW code is sent, not the previous one: only its hash is stored, so the old one cannot be
2879
+ * re-sent. The last code mailed is the one that works.
2880
+ */
2881
+ readonly ResendVerificationCode: "ResendVerificationCode";
2731
2882
  readonly RequestWalletChallenge: "RequestWalletChallenge";
2732
2883
  readonly LoginWithWallet: "LoginWithWallet";
2733
2884
  readonly ForgotPassword: "ForgotPassword";
@@ -2772,14 +2923,20 @@ declare const FodderSelectionMode: {
2772
2923
  readonly ProtectLeveled: "ProtectLeveled";
2773
2924
  readonly CheapestFirst: "CheapestFirst";
2774
2925
  readonly ClientSelected: "ClientSelected";
2926
+ /**
2927
+ * Кормом идут только копии ТОГО ЖЕ уровня, что и прокачиваемый предмет: на 2-й уровень —
2928
+ * первые, на 3-й — вторые. Классическое слияние по тирам: копия другого уровня не кандидат
2929
+ * вовсе, поэтому прокачанная не может сгореть «в счёт» дешёвой, а перерасхода не бывает.
2930
+ */
2931
+ readonly SameLevelOnly: "SameLevelOnly";
2775
2932
  };
2776
2933
  type FodderSelectionMode = (typeof FodderSelectionMode)[keyof typeof FodderSelectionMode];
2777
2934
  type NFTNetworkBinding = { ContractAddress?: null | string; TokenID?: null | string; TokenStandard?: null | string; [key: string]: unknown; };
2778
2935
  type NFTModel = { Networks?: null | Record<string, NFTNetworkBinding>; MetadataUrl?: null | string; [key: string]: unknown; };
2779
2936
  type ItemStats = { FlatBonuses?: null | Record<string, number>; PercentBonuses?: null | Record<string, number>; Power?: null | number; [key: string]: unknown; };
2780
2937
  type ItemEquipment = { MinCharacterLevel?: null | number; UseRequirements?: null | Record<string, number>; AllowedCharacterIDs?: null | Array<string>; AllowedSlotIDs?: null | Array<string>; [key: string]: unknown; };
2781
- type ItemUpgradeFodder = { ValuationMode?: null | 'FlatCount' | 'Merge' | 'InvestmentRefund'; MergeRatio?: null | number; Selection?: null | 'ProtectLeveled' | 'CheapestFirst' | 'ClientSelected'; [key: string]: unknown; };
2782
- type ItemUpgrade = { MaxLevel?: null | number; PriceOptions?: null | PriceOptions; CostScalingFactor?: null | number; FlatScalingFactor?: null | number; PercentScalingFactor?: null | number; PowerScalingFactor?: null | number; Fodder?: null | ItemUpgradeFodder; [key: string]: unknown; };
2938
+ type ItemUpgradeFodder = { ValuationMode?: null | 'FlatCount' | 'Merge' | 'InvestmentRefund'; WeightCurve?: null | ScalarCurveSpec; Selection?: null | 'ProtectLeveled' | 'CheapestFirst' | 'ClientSelected' | 'SameLevelOnly'; [key: string]: unknown; };
2939
+ type ItemUpgrade = { MaxLevel?: null | number; PriceOptions?: null | PriceOptions; CostCurve?: null | ScalarCurveSpec; FlatBonusCurve?: null | ScalarCurveSpec; PercentBonusCurve?: null | ScalarCurveSpec; PowerCurve?: null | ScalarCurveSpec; Fodder?: null | ItemUpgradeFodder; [key: string]: unknown; };
2783
2940
  type ItemMetadata = { RarityID?: null | string; CollectionID?: null | string; AuthorID?: null | string; [key: string]: unknown; };
2784
2941
  type ItemDefinition = { ItemID: string; CatalogID: string; ItemClass?: null | string; DisplayName?: null | string; Description?: null | string; Tags?: null | Array<string>; CustomData?: null | string; IsStackable?: null | boolean; IsTradable?: null | boolean; Weight?: null | number; AssetPaths?: null | Record<string, string>; NFT?: null | NFTModel; Stats?: null | ItemStats; Equipment?: null | ItemEquipment; Upgrade?: null | ItemUpgrade; Metadata?: null | ItemMetadata; ExpirationDurationSeconds?: null | number; [key: string]: unknown; };
2785
2942
  /** Catalog: a set of items of one thematic group. Key of `Items` is ItemID. */
@@ -3259,6 +3416,7 @@ interface SdkEvents {
3259
3416
  "referral:inviteRewardsBatchClaimed": ClaimInviteRewardsBatchResponse;
3260
3417
  "social:friendsListLoaded": FriendsListResponse;
3261
3418
  "social:incomingRequestsLoaded": FriendsListResponse;
3419
+ "social:outgoingRequestsLoaded": FriendsListResponse;
3262
3420
  "social:recommendedFriendsLoaded": FriendsListResponse;
3263
3421
  "social:friendRequestSent": FriendActionResponse;
3264
3422
  "social:friendRequestAccepted": FriendActionResponse;
@@ -3434,7 +3592,7 @@ declare class UserData {
3434
3592
  patchClaimRewardState(claimID: string, newState: UserClaimRewardState): void;
3435
3593
  applyQuest(data: UserQuestState | null): void;
3436
3594
  patchQuestStatus(questID: string, cycleID: string | null | undefined, status: QuestStatus): void;
3437
- /** Claimed points-milestone state lives in the Quest event-token bucket (Milestone.ClaimedIDs). */
3595
+ /** Claimed points-milestone state lives in the Quest event-token bucket (one entry per milestone). */
3438
3596
  patchMilestoneClaimed(cycleID: string, milestoneID: string): void;
3439
3597
  /** Stores the authoritative points-track snapshot in the Quest event-token bucket. */
3440
3598
  patchQuestPointsTracks(tracks: Record<string, QuestPointsTrackView> | null | undefined): void;
@@ -3491,6 +3649,7 @@ declare class UserData {
3491
3649
  patchReferralInviteRewardClaimed(rewardID: string): void;
3492
3650
  applySocialFriendsList(friends: FriendPublicProfile[] | null | undefined): void;
3493
3651
  applySocialIncomingRequests(profiles: FriendPublicProfile[] | null | undefined): void;
3652
+ applySocialOutgoingRequests(profiles: FriendPublicProfile[] | null | undefined): void;
3494
3653
  applySocialTimeline(events: SocialTimelineEvent[] | null | undefined): void;
3495
3654
  patchSocialAddOutgoingRequest(targetUserID: string): void;
3496
3655
  patchSocialAcceptFriend(requesterUserID: string): void;
@@ -3596,6 +3755,20 @@ interface AuthContext {
3596
3755
  platformAuthTokenExpiration?: string;
3597
3756
  }
3598
3757
 
3758
+ /**
3759
+ * Чем закончилось начало регистрации по почте.
3760
+ *
3761
+ * ⚠ Игрока здесь НЕ появляется никогда: на адрес ушёл код, и аккаунт создаст
3762
+ * `confirmEmailRegistration`. Сессии в этом ответе нет и быть не может — есть только то, что
3763
+ * нужно показать на экране ввода кода.
3764
+ */
3765
+ interface EmailRegistrationOutcome {
3766
+ /** Сколько живёт код — чтобы экран показал это, а не выдумывал. */
3767
+ codeTtlMinutes?: number;
3768
+ /** Через сколько секунд «отправить ещё раз» снова что-то сделает. */
3769
+ resendCooldownSeconds?: number;
3770
+ }
3771
+
3599
3772
  /** Port of AuthenticationService.cs: login methods, AutoLogin, single 401 refresh. */
3600
3773
  declare class AuthenticationService {
3601
3774
  private readonly ctx;
@@ -3605,6 +3778,16 @@ declare class AuthenticationService {
3605
3778
  private sessionAuthType;
3606
3779
  private sessionEmail;
3607
3780
  private sessionPassword;
3781
+ /**
3782
+ * Credentials from the first step of an e-mail registration.
3783
+ *
3784
+ * The account is created on the SECOND step, and that request carries no password — the server
3785
+ * has been holding its hash since the first one. Without keeping it here for the short gap
3786
+ * between the two, a player who registers is never remembered: `autoLogin()` has nothing to
3787
+ * replay, and the next launch drops them back on the login screen. Signing in with the same
3788
+ * password does remember them, which made the difference look like a bug in the game.
3789
+ */
3790
+ private pendingRegistration;
3608
3791
  constructor(ctx: ClientContext);
3609
3792
  get context(): AuthContext | null;
3610
3793
  get isLoggedIn(): boolean;
@@ -3627,7 +3810,37 @@ declare class AuthenticationService {
3627
3810
  loginWithDeviceID(): Promise<OperationResult<ClientState>>;
3628
3811
  loginWithTelegram(): Promise<OperationResult<ClientState>>;
3629
3812
  loginWithEmail(email: string, password: string): Promise<OperationResult<ClientState>>;
3630
- registerWithEmail(email: string, password: string): Promise<OperationResult<ClientState>>;
3813
+ /**
3814
+ * Start a registration by e-mail.
3815
+ *
3816
+ * ⚠ **This never creates an account by itself.** The server stores the attempt and mails a
3817
+ * code; the player appears on {@link confirmEmailRegistration}. A screen that waits for a
3818
+ * session here will spin forever.
3819
+ *
3820
+ * Why it works this way: without confirmation anyone can take someone else's address in a
3821
+ * single request, and the real owner is then unable to register and receives no e-mail at all.
3822
+ * This is platform behaviour — no title can switch it off.
3823
+ *
3824
+ * The answer is deliberately identical for a free and for a taken address — otherwise this form
3825
+ * would answer the question "does this person have an account here".
3826
+ */
3827
+ registerWithEmail(email: string, password: string): Promise<OperationResult<EmailRegistrationOutcome>>;
3828
+ /**
3829
+ * Finish a registration: exchange the code from the e-mail for a session.
3830
+ *
3831
+ * The password is not passed again — the server has been holding its hash since the first step,
3832
+ * and the plaintext never existed anywhere but that one request.
3833
+ */
3834
+ confirmEmailRegistration(email: string, code: string): Promise<OperationResult<ClientState>>;
3835
+ /**
3836
+ * Mail the confirmation code again.
3837
+ *
3838
+ * A NEW code arrives, not the previous one: the server keeps only its hash and cannot re-send
3839
+ * what it does not have. The last code mailed is the one that works.
3840
+ *
3841
+ * Always resolves successfully, whatever happened on the server — see the note on the action.
3842
+ */
3843
+ resendVerificationCode(email: string): Promise<OperationResult<void>>;
3631
3844
  loginWithGoogle(googleIDToken: string): Promise<OperationResult<ClientState>>;
3632
3845
  /**
3633
3846
  * Step 1 of wallet login: request the challenge message the wallet must sign. The signing itself
@@ -3641,7 +3854,6 @@ declare class AuthenticationService {
3641
3854
  * {@link autoLogin} routes AuthType.Wallet to the default (fail) branch.
3642
3855
  */
3643
3856
  loginWithWallet(walletAddress: string, networkID: string, signature: string): Promise<OperationResult<ClientState>>;
3644
- loginWithPlatformToken(authToken: string): Promise<OperationResult<ClientState>>;
3645
3857
  /**
3646
3858
  * Exchange a one-time SSO code from idosgames.com for a title session.
3647
3859
  *
@@ -3866,9 +4078,9 @@ declare const IapProductType: {
3866
4078
  };
3867
4079
  type IapProductType = (typeof IapProductType)[keyof typeof IapProductType];
3868
4080
  type IapProductRules = { StartUtc?: null | string; EndUtc?: null | string; Gate?: null | SegmentGate; Limits?: null | LimitSpec; [key: string]: unknown; };
3869
- type IapProductDefinition = { ProductID?: null | string; Name?: null | string; Type?: null | 'Subscription' | 'Consumable' | 'NonConsumable'; Enabled?: null | boolean; StoreProductIDs?: null | Record<string, string>; Rewards?: null | ResourceGrant; PriceUsdCents?: null | number; Rules?: null | IapProductRules; AssetPaths?: null | Record<string, string>; CustomParams?: null | Record<string, string>; [key: string]: unknown; };
4081
+ type IapProductDefinition = { ProductID?: null | string; Name?: null | string; Type?: null | 'Subscription' | 'Consumable' | 'NonConsumable'; Enabled?: null | boolean; StoreProductIDs?: null | Record<string, string>; Rewards?: null | ResourceGrant; PriceUsdCents?: null | number; Rules?: null | IapProductRules; Refund?: null | { ResourceAction?: null | string; RevokeEntitlement?: null | boolean; BlockFuturePurchases?: null | boolean; [key: string]: unknown; }; AssetPaths?: null | Record<string, string>; CustomParams?: null | Record<string, string>; [key: string]: unknown; };
3870
4082
  type PurchaseDefinitions = { Enabled?: null | boolean; Products?: null | Record<string, IapProductDefinition>; [key: string]: unknown; };
3871
- type IapProductPurchaseState = { ProductID?: null | string; TotalPurchases?: null | number; DailyPurchases?: null | number; DailyResetUtc?: null | string; LastPurchasedAt?: null | string; Owned?: null | boolean; [key: string]: unknown; };
4083
+ type IapProductPurchaseState = { ProductID?: null | string; TotalPurchases?: null | number; DailyPurchases?: null | number; DailyResetUtc?: null | string; LastPurchasedAt?: null | string; Owned?: null | boolean; Refunded?: null | boolean; PurchaseBlocked?: null | boolean; [key: string]: unknown; };
3872
4084
  type UserPurchaseState = { Products?: null | Record<string, IapProductPurchaseState>; LifetimeSpendUsdCents?: null | number; [key: string]: unknown; };
3873
4085
  /** How the server treated the receipt. */
3874
4086
  declare const IapPurchaseStatus: {
@@ -3885,12 +4097,23 @@ interface PurchaseReceiptRef {
3885
4097
  Signature?: string;
3886
4098
  /** Only used when the receipt itself is opaque (legacy Apple app receipt). */
3887
4099
  ProductID?: string;
4100
+ /** See {@link PurchaseRequest.TransactionID}. */
4101
+ TransactionID?: string;
3888
4102
  }
3889
4103
  interface PurchaseRequest extends BaseRequest {
3890
4104
  Store?: IapStore;
3891
4105
  Receipt?: string;
3892
4106
  Signature?: string;
3893
4107
  ProductID?: string;
4108
+ /**
4109
+ * Store transaction id. Apple only, and only when the receipt is opaque: a StoreKit 1 app
4110
+ * receipt carries no transaction id, while the App Store Server API answers by exactly that
4111
+ * id — so without this the server cannot verify such a purchase at all.
4112
+ *
4113
+ * Ignored when the id can be read from the receipt (StoreKit 2 signed transaction), and unused
4114
+ * for Google, where the purchase token inside the receipt plays the same role.
4115
+ */
4116
+ TransactionID?: string;
3894
4117
  /** ValidatePurchasesBatch: receipts to restore after a reinstall. */
3895
4118
  Receipts?: PurchaseReceiptRef[];
3896
4119
  }
@@ -3929,10 +4152,15 @@ declare class PurchaseService {
3929
4152
  * `productID` is only a hint for stores whose receipt is opaque (legacy Apple app receipt): in
3930
4153
  * every other case the SKU is read from the receipt itself, because the client's claim about
3931
4154
  * what was bought cannot be trusted.
4155
+ *
4156
+ * `transactionID` is the other half of that same case — pass it whenever the store SDK reports
4157
+ * one alongside an opaque Apple receipt: it is the only handle the server can use to ask Apple
4158
+ * about the purchase.
3932
4159
  */
3933
4160
  validatePurchase(store: IapStore, receipt: string, options?: {
3934
4161
  signature?: string;
3935
4162
  productID?: string;
4163
+ transactionID?: string;
3936
4164
  }): Promise<OperationResult<PurchaseValidationResponse>>;
3937
4165
  /**
3938
4166
  * Restores purchases after a reinstall: several receipts in one call.
@@ -4534,6 +4762,17 @@ declare class SocialService {
4534
4762
  constructor(ctx: ClientContext);
4535
4763
  getFriendsList(): Promise<OperationResult<FriendsListResponse>>;
4536
4764
  getIncomingRequests(): Promise<OperationResult<FriendsListResponse>>;
4765
+ /**
4766
+ * Requests this player has SENT and that are still unanswered.
4767
+ *
4768
+ * ⚠ The only way to know them across sessions. `OutgoingRequests` in the cache is otherwise
4769
+ * filled solely by your own `sendFriendRequest()` calls this run, so after a restart — or on a
4770
+ * second device — a player who already asked someone shows up as "not asked yet" and the UI
4771
+ * offers "Add" again. (`OutgoingCount` cannot fix that: it is a number, and the UI needs ids.)
4772
+ *
4773
+ * Call it on the screen that renders "Add friend" suggestions, next to `getRecommendedFriends()`.
4774
+ */
4775
+ getOutgoingRequests(): Promise<OperationResult<FriendsListResponse>>;
4537
4776
  getRecommendedFriends(limit?: number): Promise<OperationResult<FriendsListResponse>>;
4538
4777
  sendFriendRequest(targetUserID: string): Promise<OperationResult<FriendActionResponse>>;
4539
4778
  acceptFriendRequest(requesterUserID: string): Promise<OperationResult<FriendActionResponse>>;
@@ -4646,7 +4885,15 @@ declare class GameLoopService {
4646
4885
  boardLoopBuild(buildingIndex: number): Promise<OperationResult<BuildResponse>>;
4647
4886
  boardSpecialChoose(choiceID: string, selectedOptionID?: string): Promise<OperationResult<SpecialChooseResponse>>;
4648
4887
  boardSpecialApplyMultiplier(existingRelatedEntityID?: string): Promise<OperationResult<SpecialApplyMultiplierResponse>>;
4649
- boardSpecialClaim(): Promise<OperationResult<SpecialClaimResponse>>;
4888
+ /**
4889
+ * Claims the Timed Special reward.
4890
+ *
4891
+ * @param runStats Optional gameplay statistics of the run ({MetricID: value}), used by the server
4892
+ * to pay the run-stat reward ladders on top of the time ladder. Omit it whenever the run never
4893
+ * happened or its numbers could not be recovered — the server then pays by time alone, which is
4894
+ * the correct outcome, not a degraded one.
4895
+ */
4896
+ boardSpecialClaim(runStats?: Record<string, number>): Promise<OperationResult<SpecialClaimResponse>>;
4650
4897
  /** Fetch this player's Community Chest state (active group, if any) + seconds remaining. */
4651
4898
  getCommunityChestState(): Promise<OperationResult<CommunityChestUserStateResponse>>;
4652
4899
  /** Join an existing forming/active Community Chest group, or create one if none is open. */
@@ -4803,9 +5050,27 @@ declare class AuthenticationApi {
4803
5050
  loginWithTelegram(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
4804
5051
  loginWithEmail(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
4805
5052
  loginWithGoogle(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
4806
- loginWithPlatformToken(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
4807
5053
  loginWithSsoCode(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
4808
- registerWithEmail(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
5054
+ /**
5055
+ * Start a registration. Anonymous.
5056
+ *
5057
+ * ⚠ Success does NOT mean the account exists. This only mails a code; the player is created by
5058
+ * {@link confirmEmailRegistration}. Always move on to the code screen — there is no flag to
5059
+ * check and no title that skips this step: confirmation is platform behaviour, not a setting.
5060
+ *
5061
+ * The response carries only `CodeTtlMinutes` and `ResendCooldownSeconds`, so the screen can
5062
+ * state how long the code lives and when "send again" will do something.
5063
+ */
5064
+ registerWithEmail(request: AuthenticationRequest): Promise<OperationResult<EmailRegistrationResponse>>;
5065
+ /** Confirm the address with the code from the e-mail and create the player. Anonymous. */
5066
+ confirmEmailRegistration(request: AuthenticationRequest): Promise<OperationResult<PlatformLoginResponse>>;
5067
+ /**
5068
+ * Mail the confirmation code again. Anonymous.
5069
+ *
5070
+ * Always answers with success — whether a registration was started, whether the cooldown has
5071
+ * passed, whether the letter left. Any other answer would say something about the address.
5072
+ */
5073
+ resendVerificationCode(request: AuthenticationRequest): Promise<OperationResult<SuccessResponse>>;
4809
5074
  /** Step 1 of wallet login: fetch the challenge message the wallet must sign. Anonymous. */
4810
5075
  requestWalletChallenge(request: AuthenticationRequest): Promise<OperationResult<WalletChallengeResponse>>;
4811
5076
  /** Step 2 of wallet login: exchange the signed challenge for a session. */
@@ -5120,6 +5385,7 @@ declare class SocialApi {
5120
5385
  private send;
5121
5386
  getFriendsList(request: SocialRequest): Promise<OperationResult<FriendsListResponse>>;
5122
5387
  getIncomingRequests(request: SocialRequest): Promise<OperationResult<FriendsListResponse>>;
5388
+ getOutgoingRequests(request: SocialRequest): Promise<OperationResult<FriendsListResponse>>;
5123
5389
  getRecommendedFriends(request: SocialRequest): Promise<OperationResult<FriendsListResponse>>;
5124
5390
  sendFriendRequest(request: SocialRequest): Promise<OperationResult<FriendActionResponse>>;
5125
5391
  acceptFriendRequest(request: SocialRequest): Promise<OperationResult<FriendActionResponse>>;
@@ -5460,6 +5726,20 @@ declare function readSsoCodeFromUrl(): SsoCodeFromUrl | null;
5460
5726
  *
5461
5727
  * Top-level redirect rather than a popup: popups are blocked by default on mobile browsers and
5462
5728
  * inside standalone/PWA windows, which is exactly where games run.
5729
+ *
5730
+ * ⚠ **No PKCE here, deliberately — and the plumbing for it exists on the other side.** The /sso
5731
+ * page reads a `code_challenge` query parameter, the management backend stores it on the code, and
5732
+ * the engine verifies a `code_verifier` at exchange. Nothing in this SDK ever puts one in the URL,
5733
+ * so on the web that whole path stays inert.
5734
+ *
5735
+ * That is the intended state, not an omission: on the web the code comes back in the URL FRAGMENT,
5736
+ * which the browser never sends to a server, so there is no leg for anyone to intercept it on. PKCE
5737
+ * exists for the NATIVE flow, where the code would come back over an app URL scheme that any app on
5738
+ * the device can claim — and that flow does send one (see the Unity SDK's native-SSO manager).
5739
+ *
5740
+ * So don't "fix" this by adding a challenge here: `loginWithSsoCode` has no `CodeVerifier` field to
5741
+ * present at exchange, so a challenge added to the URL by hand would produce a code that this SDK
5742
+ * can never redeem.
5463
5743
  */
5464
5744
  declare function beginSsoRedirect(options: {
5465
5745
  titleID: string;
@@ -5469,6 +5749,70 @@ declare function beginSsoRedirect(options: {
5469
5749
  ssoUrl?: string;
5470
5750
  }): void;
5471
5751
 
5752
+ /**
5753
+ * Shape of a scalar curve: how a value changes from step to step.
5754
+ *
5755
+ * No shape reads another shape's field. A filled `PerStep` under `Shape: "Geometric"` is
5756
+ * simply ignored — the platform never validates a config semantically, because a
5757
+ * publisher's typo must not break live players.
5758
+ */
5759
+ declare const CurveShape: {
5760
+ /** Value does not change with the step. Same behaviour as an unset curve. */
5761
+ readonly Flat: "Flat";
5762
+ /** Additive in the value's own units: `base + PerStep * (step - firstStep)`. */
5763
+ readonly PerStep: "PerStep";
5764
+ /** Additive share of the base: `base * (1 + PerStepRate * (step - firstStep))`. */
5765
+ readonly PerStepRate: "PerStepRate";
5766
+ /** Compounding: `base * (1 + GrowthRate) ** (step - firstStep)`. */
5767
+ readonly Geometric: "Geometric";
5768
+ /** Table of multipliers over the base: `base * interpolate(Points, step)`. */
5769
+ readonly Table: "Table";
5770
+ /** Table of absolute values: `interpolate(Points, step)`; the base is ignored. */
5771
+ readonly TableAbsolute: "TableAbsolute";
5772
+ };
5773
+ type CurveShape = (typeof CurveShape)[keyof typeof CurveShape];
5774
+ /** How a value between two table points is computed. */
5775
+ declare const CurveInterpolation: {
5776
+ /** Hold the previous point's value until the next one. Behaviour of an unset field. */
5777
+ readonly Step: "Step";
5778
+ /** Linear between adjacent points. */
5779
+ readonly Linear: "Linear";
5780
+ /** Geometric between adjacent points: `lo * (hi / lo) ** t`. */
5781
+ readonly Geometric: "Geometric";
5782
+ };
5783
+ type CurveInterpolation = (typeof CurveInterpolation)[keyof typeof CurveInterpolation];
5784
+ type CurvePoint = { AtStep?: null | number; Value?: null | number; [key: string]: unknown; };
5785
+ type ScalarCurveSpec = { Base?: null | number; Shape?: null | 'Flat' | 'PerStep' | 'PerStepRate' | 'Geometric' | 'Table' | 'TableAbsolute'; PerStep?: null | number; PerStepRate?: null | number; GrowthRate?: null | number; Points?: null | Array<CurvePoint>; Interpolation?: null | 'Geometric' | 'Step' | 'Linear'; TailGrowthRate?: null | number; MinResult?: null | number; MaxResult?: null | number; [key: string]: unknown; };
5786
+
5787
+ /**
5788
+ * Evaluator for scalar curves — the client-side port of the backend's `CurveEvaluator`
5789
+ * (`API/Core/Formula/Services/CurveEvaluator.cs`). Pure, no allocation on the
5790
+ * non-table shapes: a curve is evaluated per stat per fighter.
5791
+ *
5792
+ * An unset curve is the IDENTITY: `evaluateCurve(null, base, n) === base`. That is not
5793
+ * null-safety, it is the rule of the module — an empty field does nothing.
5794
+ *
5795
+ * `firstStep` is supplied by the CALLING code, not by the publisher: a stat level is
5796
+ * numbered from 0 (a missing stat is level 0, worth exactly the base), while prices,
5797
+ * item levels and ranks are numbered from 1. Getting it wrong shifts every value by one
5798
+ * step of the curve.
5799
+ */
5800
+ declare function evaluateCurve(spec: ScalarCurveSpec | null | undefined, baseValue: number, step: number, firstStep?: number): number;
5801
+ /** The curve as a multiplier: the same evaluation from a base of 1. */
5802
+ declare function curveMultiplier(spec: ScalarCurveSpec | null | undefined, step: number, firstStep?: number): number;
5803
+ /** The curve is set and able to change something. */
5804
+ declare function isCurveConfigured(spec: ScalarCurveSpec | null | undefined): boolean;
5805
+ /**
5806
+ * The platform's single rounding convention, ported for values the client shows BEFORE
5807
+ * the server confirms them (an upgrade cap, a level price): UP, once, to the total.
5808
+ *
5809
+ * The value is first magnetised to the nearest integer: without it `100 * (1 - 0.1)`
5810
+ * gives `90.000000000000014` in floating point, and rounding up turns that into 91 —
5811
+ * every rate would silently overcharge by one. The threshold is relative, because on
5812
+ * large sums the floating-point step is already coarser than an absolute epsilon.
5813
+ */
5814
+ declare function roundAmount(value: number): number;
5815
+
5472
5816
  /** enum AdType — ad format. */
5473
5817
  declare const AdType: {
5474
5818
  readonly Banner: "Banner";
@@ -5497,7 +5841,20 @@ type PremiumAdReduction = { MinPremiumTier?: null | number; RequiredPremiumID?:
5497
5841
  type AdConsentSettings = { RequirePersonalizedAdsConsent?: null | boolean; RequireTrackingConsent?: null | boolean; CurrentPolicyVersion?: null | string; RegulatedRegions?: null | Array<string>; [key: string]: unknown; };
5498
5842
  type AdVerificationSettings = { RequireServerSideVerification?: null | boolean; PendingRequestTtlSeconds?: null | number; MaxPendingRequestsPerUser?: null | number; ProviderPublicKeys?: null | Record<string, string>; [key: string]: unknown; };
5499
5843
  type AdUnitConfig = { AndroidUnitID?: null | string; IosUnitID?: null | string; WebUnitID?: null | string; Type?: null | 'RewardedVideo' | 'Banner' | 'Interstitial' | 'RewardedInterstitial' | 'AppOpen' | 'Native'; [key: string]: unknown; };
5500
- type AdProviderDefinition = { ProviderID?: null | string; Enabled?: null | boolean; Priority?: null | number; AndroidAppID?: null | string; IosAppID?: null | string; WebAppID?: null | string; Units?: null | Record<string, AdUnitConfig>; [key: string]: unknown; };
5844
+ /**
5845
+ * enum AdProviderKind — which mediation vendor a provider entry describes.
5846
+ *
5847
+ * This is the one field a client actually acts on: the ProviderID is a free-form string the
5848
+ * publisher types, so a game deciding which mediation SDK to boot must switch on the Kind,
5849
+ * never on the id. Absent = AppLovinMax (the backend's enum value 0 and its migration
5850
+ * contract — titles configured before the field existed must keep working).
5851
+ */
5852
+ declare const AdProviderKind: {
5853
+ readonly AppLovinMax: "AppLovinMax";
5854
+ readonly LevelPlay: "LevelPlay";
5855
+ };
5856
+ type AdProviderKind = (typeof AdProviderKind)[keyof typeof AdProviderKind];
5857
+ type AdProviderDefinition = { ProviderID?: null | string; Kind?: null | 'AppLovinMax' | 'LevelPlay'; Enabled?: null | boolean; Priority?: null | number; AndroidAppID?: null | string; IosAppID?: null | string; WebAppID?: null | string; Units?: null | Record<string, AdUnitConfig>; [key: string]: unknown; };
5501
5858
  type AdvertisingDefinitions = { Enabled?: null | boolean; Placements?: null | Record<string, AdPlacementDefinition>; Providers?: null | Record<string, AdProviderDefinition>; RewardedVideo?: null | RewardedVideoSettings; Interstitial?: null | InterstitialSettings; Banner?: null | BannerSettings; AppOpen?: null | AppOpenSettings; FrequencyCapping?: null | AdFrequencyCappingSettings; PremiumAdReductions?: null | Array<PremiumAdReduction>; Consent?: null | AdConsentSettings; Verification?: null | AdVerificationSettings; [key: string]: unknown; };
5502
5859
  type AdCreditsData = { RewardedVideoCredit?: null | number; TotalEarned?: null | number; TotalSpent?: null | number; [key: string]: unknown; };
5503
5860
  type AdPlacementUserState = { PlacementID?: null | string; LastShownAt?: null | string; LastCompletedAt?: null | string; TotalImpressions?: null | number; TotalCompletions?: null | number; ConsecutiveFailures?: null | number; [key: string]: unknown; };
@@ -5588,4 +5945,4 @@ declare class LocalizationCache {
5588
5945
  private versionsKey;
5589
5946
  }
5590
5947
 
5591
- export { type AcceptTradeOfferResponse, type ActivateReferralCodeResponse, type ActivateTimedBoostResponse, type ActiveBoostWindowInfo, type ActiveCoopEventInfo, type ActiveDealSlotInfo, type ActiveEventInfo, type ActiveSeasonInfo, type ActiveTimedBoost, type AdConsentSettings, type AdConsentState, type AdCreditsData, type AdDailyData, type AdFraudFlags, type AdFrequencyCappingSettings, type AdPendingRequest, type AdPlacementDefinition, type AdPlacementUserState, type AdProviderDefinition, type AdSessionData, AdType, type AdUnitConfig, type AdVerificationSettings, type AddQuestProgressResponse, type AdvertisingDefinitions, type AppOpenSettings, AttackOutcome, type AttackResponse, type AttributionInput, type AuthContext, AuthType, AuthenticationAction, type AuthenticationRequest, AuthenticationService, BannerPosition, type BannerSettings, type BaseRequest, type BatchDeleteUserCustomDataResponse, type BatchGetPublicUserCustomDataResponse, type BatchItemResult, type BatchResponse, type BatchSetUserCustomDataResponse, type BattleResult, type BattleStepConfig, type BlockchainAccountSafetyPolicy, BlockchainAction, type BlockchainConfigResponse, type BlockchainDefinitions, type BlockchainNetworkDefinition, BlockchainNetworkType, type BlockchainNftCollectionBinding, BlockchainOperationCategory, type BlockchainRequest, BlockchainService, type BlockchainStats, type BlockchainSystemState, BlockchainTransactionStatus, BlockchainTransactionType, type BoardLoopDefinition, type BoardLoopState, type BoardPendingInteraction, type BoardRollResponse, BodyPart, type BoostTriggerCounter, BoostWindowKind, BroadcastStatus, type BuildResponse, type BuildingState, type CancelMatchResponse, type CancelTradeOfferResponse, type ChangeUsernameResponse, CharacterAction, type CharacterClassification, type CharacterDefinition, type CharacterDefinitions, type CharacterEquipment, type CharacterEquipmentSlot, type CharacterIdentity, type CharacterLevelDefinition, type CharacterLevelRef, type CharacterModel, type CharacterRequest, CharacterService, type CharacterStatRef, type CharacterUnequipResult, type CharacterUnlock, CheckoutService, type ClaimAllRewardsBatchResponse, type ClaimAllRewardsResult, type ClaimComebackRewardResponse, type ClaimCycleRewardResponse, type ClaimCycleRewardsBatchResponse, type ClaimDailyRewardResponse, type ClaimDealMilestoneResponse, type ClaimDealMilestonesBatchResponse, type ClaimGrandPrizeResponse, type ClaimGroupCompletionRewardResponse, type ClaimInviteRewardResponse, type ClaimInviteRewardsBatchResponse, type ClaimLeaderboardMilestoneResponse, type ClaimLeaderboardMilestonesBatchResponse, type ClaimMilestoneRewardResponse, type ClaimMilestoneRewardsBatchResponse, type ClaimMilestonesBatchResponse, type ClaimQuestRewardResponse, type ClaimQuestRewardsBatchResponse, type ClaimRewardResponse, type ClaimSetRewardResponse, type ClaimSetRewardsBatchResponse, type ClaimTierRewardResponse, type ClaimTierRewardsBatchResponse, ClientPlatform, type ClientState, CloudCodeAction, CloudCodeErrorCode, type CloudCodeLogEntry, CloudCodeLogLevel, type CloudCodeRequest, CloudCodeRevisionSelection, CloudCodeService, type CodeExecutionError, type CollectIdleAccrualResponse, CollectionAction, type CollectionDefinitions, type CollectionGlobalSettings, type CollectionRequest, CollectionService, type CollectionSetRef, type CollectionTradeOfferDocument, CommissionSink, type CommunityChestClaimResponse, type CommunityChestGroupDocument, type CommunityChestGroupStateResponse, type CommunityChestHistoryEntry, type CommunityChestLeaveResponse, type CommunityChestMember, CommunityChestMemberStatus, type CommunityChestSharedState, CommunityChestStatus, type CommunityChestUserStateResponse, type ConfirmWithdrawalResponse, type ConversionDailyCounter, ConversionRateMode, type ConversionTarget, type ConvertResponse, type CoopBuildObjectsMemberState, type CoopBuildObjectsState, type CoopClaimRewardResponse, CoopEventAction, type CoopEventDefinitions, type CoopEventRequest, CoopEventService, type CoopGroupDocument, type CoopGroupMember, type CoopGroupStateResponse, CoopGroupStatus, type CoopLeaveGroupResponse, CoopMemberStatus, type CoopPartnerObjectState, type CoopSpinResponse, type CoopUserStateResponse, CraftAction, type CraftDefinitions, type CraftDefinitionsResponse, type CraftRequest, type CraftResponse, CraftService, type CraftSingleResult, CraftType, type CreateMatchResponse, type CryptoConvertResponse, type CryptoCurrencyDefinition, type CryptoCurrencyPermissions, type CryptoLimits, type CryptoNetworkBinding, type CryptoShortfall, CurrencyAction, type CurrencyAudit, type CurrencyConversion, type CurrencyDefinitions, type CurrencyRequest, CurrencyService, CurrencyStatus, CurrencyType, CustomDataBucket, CustomDataValueType, CustomDataWriter, type CyclicSchedule, DEFAULT_BASE_URL, type DailyUsageRecord, type DealMilestoneProgressInfo, DealNodeRuntimeStatus, DealOfferAction, DealOfferActivationStatus, type DealOfferDefinitions, type DealOfferRequest, DealOfferService, type DealOffersDefinitionResponse, type DeclineTradeOfferResponse, type DepositNFTResponse, type DepositTokenResponse, type DismissDealResponse, type DonationResponse, EnvelopeType, type EquipItemsResponse, type EquipSlotPair, type EquipmentPreset, type EquipmentSlot, type EquippedItem, type EventMap, type EventMilestoneClaimResponse, type EventTokenAddress, type EventTokenConversion, type EventTokenDefinition, type EventTokenGrantResponse, type EventTokenOperation, type EventTokenSpendResponse, EventTokenType, type ExecuteCloudCodeResponse, type ExecuteNodeResponse, type ExperimentDefinition, type ExperimentDefinitions, type ExperimentVariant, type ExperimentVariantCondition, type FodderConsumedEntry, FodderSelectionMode, FodderValuationMode, type FriendActionResponse, FriendActionStatus, type FriendPublicProfile, type FriendsListResponse, GameLoopAction, type GameLoopDefinitions, type GameLoopRequest, GameLoopService, type GetActiveBoostWindowsResponse, type GetActiveDealsResponse, type GetActiveEventsResponse, type GetActiveTimedBoostsResponse, type GetCharactersResponse, type GetLeaderboardResponse, type GetLeaderboardsBatchResponse, type GetMatchDefinitionsResponse, type GetMilestoneRewardMultiplierResponse, type GetMyProgressResponse, type GetMyUserCustomDataResponse, type GetOverviewBatchResponse, type GetProgressBatchResponse, type GetPublicTitleDataResponse, type GetPublicUserCustomDataResponse, type GetTradeOffersResponse, type GetUserQuestStateResponse, type GetUserTutorialStateResponse, type GrantStatusTokensResponse, type GrantTokensBatchResponse, type GrantedCollectible, type HeistCell, IDosGamesClient, type IDosGamesClientConfig, IDosGamesData, type IDosGamesSettings, type IapProductDefinition, type IapProductPurchaseState, type IapProductRules, IapProductType, IapPurchaseStatus, type IapStore, IapStore$1 as IapStoreValues, type IceServer, type InstantBattleDefinitions, type InstantBattleResponse, type InstantBattleRule, type InterstitialSettings, type InventoryDelta, ItemAction, type ItemCatalog, type ItemDefinition, type ItemDefinitions, type ItemEquipment, type ItemMetadata, type ItemRequest, ItemService, type ItemStats, type ItemTotals, type ItemUpgrade, type ItemUpgradeFodder, type ItemUpgradeRef, type JsonValue, KeyValueStorage, KycStatus, KycTier, LeaderboardAction, type LeaderboardDefinitions, type LeaderboardMilestoneRef, type LeaderboardOverview, type LeaderboardRequest, type LeaderboardScoreRef, LeaderboardService, type LeaderboardUserEntry, type LeaveRoomResponse, type LevelsPreset, type LimitSpec, type LinkedWalletInfo, type Listener, LocalizationAction, LocalizationCache, type LocalizationDefinitions, type LocalizationLocaleDefinition, type LocalizationLocaleInfo, type LocalizationManifestResponse, LocalizationMissingKeyMode, type LocalizationParams, type LocalizationRequest, LocalizationService, type LocalizationState, type LocalizationTableRef, type LocalizationTableResponse, LootboxAction, type LootboxAmountRange, type LootboxDefinitions, type LootboxDefinitionsResponse, type LootboxGlobalSettings, type LootboxOpenResponse, type LootboxPityRule, type LootboxPityTriggerResponse, type LootboxRequest, type LootboxRewardRoll, type LootboxRewardSlot, LootboxService, type LootboxSupplyRule, type MailboxBroadcastDocument, type MailboxDefinition, type MailboxMessageDocument, MailboxMessageSource, MailboxMessageStatus, type MailboxMessageTypeDefinition, type MailboxSegmentDefinition, MarketGoodsType, MarketOfferStatus, MarketOfferType, MarketplaceAction, type MarketplaceActionCounter, type MarketplaceAuctionSettings, type MarketplaceAuctionState, type MarketplaceBidRefund, type MarketplaceBrowseResponse, type MarketplaceBuyOrderSettings, type MarketplaceCommissionOverride, type MarketplaceCommissionPolicy, type MarketplaceCreateOfferResponse, type MarketplaceDefinitions, type MarketplaceDirectTradeSettings, type MarketplaceGetDefinitionsResponse, type MarketplaceGroupedOfferView, type MarketplaceGroupedOffersResponse, type MarketplaceHistoryEntryView, type MarketplaceHistoryResponse, type MarketplaceListingSettings, type MarketplaceMatchingSettings, type MarketplaceMyStateResponse, type MarketplaceOfferResponse, type MarketplaceOfferView, type MarketplacePlaceBidResponse, type MarketplacePricePolicy, type MarketplaceRequest, MarketplaceService, type MarketplaceSettlementResponse, type MarketplaceTradabilityPolicy, MatchAction, type MatchDefinitions, type MatchRequest, MatchService, MatchStatus, type MatchesPageResponse, type MilestoneClaimRef, type MilestoneDefinition, MultiplayerAction, MultiplayerChatMode, type MultiplayerDefinitions, type MultiplayerRequest, MultiplayerService, type MultiplayerSystemState, MultiplayerTopology, type NFTModel, type NFTNetworkBinding, type NFTTransactionDocument, type NFTWithdrawalResponse, type NftCollectionStats, type NftStatsContainer, type OpenCollectionChestResponse, type OpenPackResponse, type OperationFailure, type OperationFailureReason, type OperationResult, type OperationSuccess, type PackOpenResult, type PaymentProof, type PaymentRequirement, type PendingWithdrawalRef, PlatformAdapter, type PlatformBlockchainState, type PlatformLoginResponse, type PlayerEconomyTuningState, type PollResponse, PremiumAction, type PremiumAdReduction, type PremiumDefinitions, type PremiumDefinitionsResponse, type PremiumPurchaseResponse, type PremiumRequest, PremiumService, type PremiumStateResponse, type PremiumSubscription, type PriceOption, type PriceOptions, type PublishResponse, PurchaseAction, type PurchaseBatchResponse, type PurchaseDefinitions, type PurchaseReceiptRef, type PurchaseRequest, PurchaseService, type PurchaseValidationBatchResponse, type PurchaseValidationResponse, type PvPMatch, QuestAction, type QuestAvailability, type QuestClaimRef, type QuestCycleDefinition, type QuestDefinition, type QuestDefinitions, type QuestGroupCompletionDefinition, type QuestIdentity, type QuestLinking, type QuestObjectiveDefinition, QuestObjectiveSource, type QuestPhaseDefinition, type QuestPointsTrackView, QuestPrerequisiteMode, type QuestPresetBindings, type QuestPresetRegistry, type QuestProgressUpdate, type QuestRequest, type QuestReward, QuestService, QuestStatus, RaidMode, type RaidResponse, type RealtimeEnvelope, type RechargeConfig, type RecordShowResponse, ReferralAction, type ReferralDefinitions, type ReferralDefinitionsResponse, type ReferralInviteRewardState, type ReferralRequest, ReferralService, type RelativeWindow, type ResourceBundle, type ResourceConsume, type ResourceDualPartyResult, type ResourceEntry, ResourceEntryType, type ResourceGrant, type ResourceOperation, type ResourceTransferResult, type RetryWithdrawalResponse, RewardAction, type RewardDefinitions, type RewardDefinitionsResponse, type RewardRequest, RewardService, type RewardedVideoSettings, type RollActionData, type RoomListItem, type RoomMemberView, type RoomSnapshotResponse, RoomVisibility, type RoomsPageResponse, type ScheduleChain, type ScheduleChainPhase, ScheduleMode, type ScheduleSpec, type ScheduledWindow, type SdkEvents, SeasonAction, type SeasonDefinitions, type SeasonRequest, SeasonService, type SeasonTierRewardBundle, type SeasonTierRewardMultiplier, type SeasonTierRewardSet, type SegmentGate, type SendTradeOfferResponse, type SetUserCustomDataResponse, type SettingsInput, SocialAction, type SocialCounters, type SocialRequest, SocialService, type SocialTimelineEvent, type SolanaWithdrawalSignature, type SpecialApplyMultiplierResponse, SpecialChoiceMode, type SpecialChooseResponse, type SpecialClaimResponse, type SpecialModeOfferData, type SpecialPendingState, type SpendRewardDefinition, type SpendTokensBatchResponse, type SsoCodeFromUrl, type StatDefinition, type StatRequirement, type StatsPreset, StoreAction, type StoreDefinitions, type StorePurchaseRef, type StorePurchaseResponse, type StorePurchaseState, type StoreRequest, StoreService, StoreType, type StoredLocalizationTable, type SubmitScoreResponse, type SubmitScoresBatchResponse, type SuccessResponse, TimedBoostAction, type TimedBoostDefinitions, type TimedBoostRequest, TimedBoostService, TimedBoostStackingPolicy, TimedEventAction, type TimedEventDefinitions, type TimedEventGrantRef, type TimedEventInstanceRef, type TimedEventMilestoneRef, type TimedEventRequest, TimedEventService, type TimedEventSpendRef, TimelineEventType, type TimelineResponse, TitleAction, TitleConfig, TitleCustomDataAction, type TitleCustomDataDefinitions, type TitleCustomDataKeyDefinition, type TitleCustomDataRecord, type TitleCustomDataRequest, TitleCustomDataService, TitleDataBucket, TitleDataScope, type TitlePublicConfigurationModel, type TitleRequest, TitleService, type TokenCurrencyStats, type TokenStatsContainer, type TokenTransactionDocument, type TokenWithdrawalResponse, TradeOfferStatus, TransactionDirection, type TransactionHistoryResponse, type TriggerContext, type TriggerSource, TutorialAction, type TutorialAvailability, type TutorialBlockingPolicy, TutorialBoardAction, type TutorialBoardScript, type TutorialClaimResponse, type TutorialDefinitions, type TutorialFlowBatchResponse, type TutorialFlowDefinition, type TutorialFlowPolicy, type TutorialFlowResponse, TutorialFlowStatus, type TutorialFlowView, type TutorialGateCondition, TutorialGateMode, type TutorialGlobalSettings, type TutorialIdentity, type TutorialPresetBindings, type TutorialPresetRegistry, type TutorialRequest, TutorialRestartPolicy, type TutorialReward, TutorialScriptModule, type TutorialScriptedOutcome, type TutorialStepCompletion, TutorialStepCompletionMode, type TutorialStepDefinition, type TutorialStepEffects, type TutorialStepIdentity, type TutorialStepPolicy, type TutorialStepProgress, TypedEmitter, type UnequipAllCharactersResponse, type UnequipItemsResponse, type UnlockCharacterResponse, type UnlockCharactersBatchResponse, type UnstackableItemInstanceState, type Unsubscribe, type UpdateMatchResponse, type UpgradeCharacterLevelResponse, type UpgradeCharacterLevelsBatchResponse, type UpgradeItemLevelResponse, type UpgradeLevelsBatchResponse, type UpgradeLevelsOptions, type UpgradeStatLevelResponse, type UpgradeStatLevelsBatchResponse, type UsageReactivationEvent, type UsageTimeStats, type UseCollectibleJokerResponse, UserAction, type UserAdvertisingState, type UserBlockchainState, type UserBlockchainStateResponse, type UserCharactersState, type UserClaimRewardState, type UserCollectionState, type UserComebackState, type UserCommunityChestState, type UserCoopEventState, type UserCryptoComplianceCounters, type UserCryptoCurrencyState, UserCustomDataAction, type UserCustomDataBatchDeleteItem, type UserCustomDataBatchSetItem, type UserCustomDataDefinitions, type UserCustomDataKeyDefinition, type UserCustomDataRecord, type UserCustomDataRequest, UserCustomDataService, type UserCustomDataState, type UserDailyCalendarState, type UserDailyCounters, UserData, type UserDealNodeLifetimeCounts, type UserDealNodeState, type UserDealOfferActivationState, type UserDealOfferHistory, type UserDealOffersState, type UserDealOffersStateResponse, type UserDealSlotState, type UserDealTrackState, type UserDepositAddress, type UserEventTokenProgress, type UserEventTokensState, type UserGameLoopsState, type UserIdleAccrualState, type UserInventoryState, type UserKycState, type UserLeaderboardProgress, type UserLeaderboardsState, type UserLootboxPityCounter, type UserLootboxState, type UserMailboxState, type UserMarketplaceState, type UserMatchCreationLimitState, type UserMatchState, type UserPremiumState, type UserPublicDataModel, type UserPurchaseState, type UserQuestCycleState, type UserQuestObjectiveProgress, type UserQuestProgress, type UserQuestState, type UserReferralState, type UserReferralStateResponse, type UserRequest, type UserRewardState, type UserRewardsStateResponse, type UserSeasonState, type UserSeasonStateResponse, type UserSeasonsState, UserService, type UserSocialState, type UserState, type UserStateSlice, type UserStateVersions, type UserStoreState, type UserTimedBoostsState, type UserTimedEventStateResponse, type UserTutorialFlowState, type UserTutorialState, type UserTutorialStepState, type UserUsageState, type UserVirtualCurrencyState, type VirtualCurrencyDefinition, type VirtualCurrencyEconomy, type VirtualCurrencyPermissions, type WalletChallengeResponse, WalletLinkType, type WithdrawalSignatureResponse, type WithdrawalSplit, beginSsoRedirect, createIDosGamesClient, isFail, isOk, normalizeBlockchainCategory, readSsoCodeFromUrl, zPaymentProof, zPriceOption, zPriceOptions };
5948
+ export { type AcceptTradeOfferResponse, type ActivateReferralCodeResponse, type ActivateTimedBoostResponse, type ActiveBoostWindowInfo, type ActiveCoopEventInfo, type ActiveDealSlotInfo, type ActiveEventInfo, type ActiveSeasonInfo, type ActiveTimedBoost, type AdConsentSettings, type AdConsentState, type AdCreditsData, type AdDailyData, type AdFraudFlags, type AdFrequencyCappingSettings, type AdPendingRequest, type AdPlacementDefinition, type AdPlacementUserState, type AdProviderDefinition, AdProviderKind, type AdSessionData, AdType, type AdUnitConfig, type AdVerificationSettings, type AddQuestProgressResponse, type AdvertisingDefinitions, type AppOpenSettings, AttackOutcome, type AttackResponse, type AttributionInput, type AuthContext, AuthType, AuthenticationAction, type AuthenticationRequest, AuthenticationService, BannerPosition, type BannerSettings, type BaseRequest, type BatchDeleteUserCustomDataResponse, type BatchGetPublicUserCustomDataResponse, type BatchItemResult, type BatchResponse, type BatchSetUserCustomDataResponse, type BattleResult, type BattleStepConfig, type BlockchainAccountSafetyPolicy, BlockchainAction, type BlockchainConfigResponse, type BlockchainDefinitions, type BlockchainNetworkDefinition, BlockchainNetworkType, type BlockchainNftCollectionBinding, BlockchainOperationCategory, type BlockchainRequest, BlockchainService, type BlockchainStats, type BlockchainSystemState, BlockchainTransactionStatus, BlockchainTransactionType, type BoardLoopDefinition, type BoardLoopState, type BoardPendingInteraction, type BoardRollResponse, BodyPart, type BoostTriggerCounter, BoostWindowKind, BroadcastStatus, type BuildResponse, type BuildingState, type CancelMatchResponse, type CancelTradeOfferResponse, type ChangeUsernameResponse, CharacterAction, type CharacterClassification, type CharacterDefinition, type CharacterDefinitions, type CharacterEquipment, type CharacterEquipmentSlot, type CharacterIdentity, type CharacterLevelRef, type CharacterModel, type CharacterRankLadder, type CharacterRequest, CharacterService, type CharacterStatRef, type CharacterUnequipResult, type CharacterUnlock, CheckoutService, type ClaimAllRewardsBatchResponse, type ClaimAllRewardsResult, type ClaimComebackRewardResponse, type ClaimCycleRewardResponse, type ClaimCycleRewardsBatchResponse, type ClaimDailyRewardResponse, type ClaimDealMilestoneResponse, type ClaimDealMilestonesBatchResponse, type ClaimGrandPrizeResponse, type ClaimGroupCompletionRewardResponse, type ClaimInviteRewardResponse, type ClaimInviteRewardsBatchResponse, type ClaimLeaderboardMilestoneResponse, type ClaimLeaderboardMilestonesBatchResponse, type ClaimMilestoneRewardResponse, type ClaimMilestoneRewardsBatchResponse, type ClaimMilestonesBatchResponse, type ClaimQuestRewardResponse, type ClaimQuestRewardsBatchResponse, type ClaimRewardResponse, type ClaimSetRewardResponse, type ClaimSetRewardsBatchResponse, type ClaimTierRewardResponse, type ClaimTierRewardsBatchResponse, ClientPlatform, type ClientState, CloudCodeAction, CloudCodeErrorCode, type CloudCodeLogEntry, CloudCodeLogLevel, type CloudCodeRequest, CloudCodeRevisionSelection, CloudCodeService, type CodeExecutionError, type CollectIdleAccrualResponse, CollectionAction, type CollectionDefinitions, type CollectionGlobalSettings, type CollectionRequest, CollectionService, type CollectionSetRef, type CollectionTradeOfferDocument, CommissionSink, type CommunityChestClaimResponse, type CommunityChestGroupDocument, type CommunityChestGroupStateResponse, type CommunityChestHistoryEntry, type CommunityChestLeaveResponse, type CommunityChestMember, CommunityChestMemberStatus, type CommunityChestSharedState, CommunityChestStatus, type CommunityChestUserStateResponse, type ConfirmWithdrawalResponse, type ConversionDailyCounter, ConversionRateMode, type ConversionTarget, type ConvertResponse, type CoopBuildObjectsMemberState, type CoopBuildObjectsState, type CoopClaimRewardResponse, CoopEventAction, type CoopEventDefinitions, type CoopEventRequest, CoopEventService, type CoopGroupDocument, type CoopGroupMember, type CoopGroupStateResponse, CoopGroupStatus, type CoopLeaveGroupResponse, CoopMemberStatus, type CoopPartnerObjectState, type CoopSpinResponse, type CoopUserStateResponse, CraftAction, type CraftDefinitions, type CraftDefinitionsResponse, type CraftRequest, type CraftResponse, CraftService, type CraftSingleResult, CraftType, type CreateMatchResponse, type CryptoConvertResponse, type CryptoCurrencyDefinition, type CryptoCurrencyPermissions, type CryptoLimits, type CryptoNetworkBinding, type CryptoShortfall, CurrencyAction, type CurrencyAudit, type CurrencyConversion, type CurrencyDefinitions, type CurrencyRequest, CurrencyService, CurrencyStatus, CurrencyType, CurveInterpolation, type CurvePoint, CurveShape, CustomDataBucket, CustomDataValueType, CustomDataWriter, type CyclicSchedule, DEFAULT_BASE_URL, type DailyUsageRecord, type DealMilestoneProgressInfo, DealNodeRuntimeStatus, DealOfferAction, DealOfferActivationStatus, type DealOfferDefinitions, type DealOfferRequest, DealOfferService, type DealOffersDefinitionResponse, type DeclineTradeOfferResponse, type DepositNFTResponse, type DepositTokenResponse, type DismissDealResponse, type DonationResponse, EnvelopeType, type EquipItemsResponse, type EquipSlotPair, type EquipmentPreset, type EquipmentSlot, type EquippedItem, type EventMap, type EventMilestoneClaimResponse, type EventTokenAddress, type EventTokenConversion, type EventTokenDefinition, type EventTokenGrantResponse, type EventTokenMilestoneData, type EventTokenOperation, type EventTokenSpendResponse, EventTokenType, type ExecuteCloudCodeResponse, type ExecuteNodeResponse, type ExperimentDefinition, type ExperimentDefinitions, type ExperimentVariant, type ExperimentVariantCondition, type FodderConsumedEntry, FodderSelectionMode, FodderValuationMode, type FriendActionResponse, FriendActionStatus, type FriendPublicProfile, type FriendsListResponse, GameLoopAction, type GameLoopDefinitions, type GameLoopRequest, GameLoopService, type GetActiveBoostWindowsResponse, type GetActiveDealsResponse, type GetActiveEventsResponse, type GetActiveTimedBoostsResponse, type GetCharactersResponse, type GetLeaderboardResponse, type GetLeaderboardsBatchResponse, type GetMatchDefinitionsResponse, type GetMilestoneRewardMultiplierResponse, type GetMyProgressResponse, type GetMyUserCustomDataResponse, type GetOverviewBatchResponse, type GetProgressBatchResponse, type GetPublicTitleDataResponse, type GetPublicUserCustomDataResponse, type GetTradeOffersResponse, type GetUserQuestStateResponse, type GetUserTutorialStateResponse, type GrantStatusTokensResponse, type GrantTokensBatchResponse, type GrantedCollectible, type HeistCell, IDosGamesClient, type IDosGamesClientConfig, IDosGamesData, type IDosGamesSettings, type IapProductDefinition, type IapProductPurchaseState, type IapProductRules, IapProductType, IapPurchaseStatus, type IapStore, IapStore$1 as IapStoreValues, type IceServer, type InstantBattleDefinitions, type InstantBattleResponse, type InstantBattleRule, type InterstitialSettings, type InventoryDelta, ItemAction, type ItemCatalog, type ItemDefinition, type ItemDefinitions, type ItemEquipment, type ItemMetadata, type ItemRequest, ItemService, type ItemStats, type ItemTotals, type ItemUpgrade, type ItemUpgradeFodder, type ItemUpgradeRef, type JsonValue, KeyValueStorage, KycStatus, KycTier, LeaderboardAction, type LeaderboardDefinitions, type LeaderboardMilestoneRef, type LeaderboardOverview, type LeaderboardRequest, type LeaderboardScoreRef, LeaderboardService, type LeaderboardUserEntry, type LeaveRoomResponse, type LevelsPreset, type LimitSpec, type LinkedWalletInfo, type Listener, LocalizationAction, LocalizationCache, type LocalizationDefinitions, type LocalizationLocaleDefinition, type LocalizationLocaleInfo, type LocalizationManifestResponse, LocalizationMissingKeyMode, type LocalizationParams, type LocalizationRequest, LocalizationService, type LocalizationState, type LocalizationTableRef, type LocalizationTableResponse, LootboxAction, type LootboxAmountRange, type LootboxDefinitions, type LootboxDefinitionsResponse, type LootboxGlobalSettings, type LootboxOpenResponse, type LootboxPityRule, type LootboxPityTriggerResponse, type LootboxRequest, type LootboxRewardRoll, type LootboxRewardSlot, LootboxService, type LootboxSupplyRule, type MailboxBroadcastDocument, type MailboxDefinition, type MailboxMessageDocument, MailboxMessageSource, MailboxMessageStatus, type MailboxMessageTypeDefinition, type MailboxSegmentDefinition, MarketGoodsType, MarketOfferStatus, MarketOfferType, MarketplaceAction, type MarketplaceActionCounter, type MarketplaceAuctionSettings, type MarketplaceAuctionState, type MarketplaceBidRefund, type MarketplaceBrowseResponse, type MarketplaceBuyOrderSettings, type MarketplaceCommissionOverride, type MarketplaceCommissionPolicy, type MarketplaceCreateOfferResponse, type MarketplaceDefinitions, type MarketplaceDirectTradeSettings, type MarketplaceGetDefinitionsResponse, type MarketplaceGroupedOfferView, type MarketplaceGroupedOffersResponse, type MarketplaceHistoryEntryView, type MarketplaceHistoryResponse, type MarketplaceListingSettings, type MarketplaceMatchingSettings, type MarketplaceMyStateResponse, type MarketplaceOfferResponse, type MarketplaceOfferView, type MarketplacePlaceBidResponse, type MarketplacePricePolicy, type MarketplaceRequest, MarketplaceService, type MarketplaceSettlementResponse, type MarketplaceTradabilityPolicy, MatchAction, type MatchDefinitions, type MatchRequest, MatchService, MatchStatus, type MatchesPageResponse, type MilestoneClaimEntry, type MilestoneClaimRef, type MilestoneDefinition, MultiplayerAction, MultiplayerChatMode, type MultiplayerDefinitions, type MultiplayerRequest, MultiplayerService, type MultiplayerSystemState, MultiplayerTopology, type NFTModel, type NFTNetworkBinding, type NFTTransactionDocument, type NFTWithdrawalResponse, type NftCollectionStats, type NftStatsContainer, type OpenCollectionChestResponse, type OpenPackResponse, type OperationFailure, type OperationFailureReason, type OperationResult, type OperationSuccess, type PackOpenResult, type PaymentProof, type PaymentRequirement, type PendingWithdrawalRef, PlatformAdapter, type PlatformBlockchainState, type PlatformLoginResponse, type PlayerEconomyTuningState, type PollResponse, PremiumAction, type PremiumAdReduction, type PremiumDefinitions, type PremiumDefinitionsResponse, type PremiumPurchaseResponse, type PremiumRequest, PremiumService, type PremiumStateResponse, type PremiumSubscription, type PriceOption, type PriceOptions, type PublishResponse, PurchaseAction, type PurchaseBatchResponse, type PurchaseDefinitions, type PurchaseReceiptRef, type PurchaseRequest, PurchaseService, type PurchaseValidationBatchResponse, type PurchaseValidationResponse, type PvPMatch, QuestAction, type QuestAvailability, type QuestClaimRef, type QuestCycleDefinition, type QuestDefinition, type QuestDefinitions, type QuestGroupCompletionDefinition, type QuestIdentity, type QuestLinking, type QuestObjectiveDefinition, QuestObjectiveSource, type QuestPhaseDefinition, type QuestPointsTrackView, QuestPrerequisiteMode, type QuestPresetBindings, type QuestPresetRegistry, type QuestProgressUpdate, type QuestRequest, type QuestReward, QuestService, QuestStatus, RaidMode, type RaidResponse, type RealtimeEnvelope, type RechargeConfig, type RecordShowResponse, ReferralAction, type ReferralDefinitions, type ReferralDefinitionsResponse, type ReferralInviteRewardState, type ReferralRequest, ReferralService, type RelativeWindow, type ResourceBundle, type ResourceConsume, type ResourceDualPartyResult, type ResourceEntry, ResourceEntryType, type ResourceGrant, type ResourceOperation, type ResourceTransferResult, type RetryWithdrawalResponse, RewardAction, type RewardDefinitions, type RewardDefinitionsResponse, type RewardRequest, RewardService, type RewardedVideoSettings, type RollActionData, type RoomListItem, type RoomMemberView, type RoomSnapshotResponse, RoomVisibility, type RoomsPageResponse, type ScalarCurveSpec, type ScheduleChain, type ScheduleChainPhase, ScheduleMode, type ScheduleSpec, type ScheduledWindow, type SdkEvents, SeasonAction, type SeasonDefinitions, type SeasonRequest, SeasonService, type SeasonTierRewardBundle, type SeasonTierRewardMultiplier, type SeasonTierRewardSet, type SegmentGate, type SendTradeOfferResponse, type SetUserCustomDataResponse, type SettingsInput, SocialAction, type SocialCounters, type SocialRequest, SocialService, type SocialTimelineEvent, type SolanaWithdrawalSignature, type SpecialApplyMultiplierResponse, SpecialChoiceMode, type SpecialChooseResponse, type SpecialClaimResponse, type SpecialModeOfferData, type SpecialPendingState, type SpendRewardDefinition, type SpendTokensBatchResponse, type SsoCodeFromUrl, type StatDefinition, type StatRequirement, type StatsPreset, StoreAction, type StoreDefinitions, type StorePurchaseRef, type StorePurchaseResponse, type StorePurchaseState, type StoreRequest, StoreService, StoreType, type StoredLocalizationTable, type SubmitScoreResponse, type SubmitScoresBatchResponse, type SuccessResponse, TimedBoostAction, type TimedBoostDefinitions, type TimedBoostRequest, TimedBoostService, TimedBoostStackingPolicy, TimedEventAction, type TimedEventDefinitions, type TimedEventGrantRef, type TimedEventInstanceRef, type TimedEventMilestoneRef, type TimedEventRequest, TimedEventService, type TimedEventSpendRef, TimelineEventType, type TimelineResponse, TitleAction, TitleConfig, TitleCustomDataAction, type TitleCustomDataDefinitions, type TitleCustomDataKeyDefinition, type TitleCustomDataRecord, type TitleCustomDataRequest, TitleCustomDataService, TitleDataBucket, TitleDataScope, type TitlePublicConfigurationModel, type TitleRequest, TitleService, type TokenCurrencyStats, type TokenStatsContainer, type TokenTransactionDocument, type TokenWithdrawalResponse, TradeOfferStatus, TransactionDirection, type TransactionHistoryResponse, type TriggerContext, type TriggerSource, TutorialAction, type TutorialAvailability, type TutorialBlockingPolicy, TutorialBoardAction, type TutorialBoardScript, type TutorialClaimResponse, type TutorialDefinitions, type TutorialFlowBatchResponse, type TutorialFlowDefinition, type TutorialFlowPolicy, type TutorialFlowResponse, TutorialFlowStatus, type TutorialFlowView, type TutorialGateCondition, TutorialGateMode, type TutorialGlobalSettings, type TutorialIdentity, type TutorialPresetBindings, type TutorialPresetRegistry, type TutorialRequest, TutorialRestartPolicy, type TutorialReward, TutorialScriptModule, type TutorialScriptedOutcome, type TutorialStepCompletion, TutorialStepCompletionMode, type TutorialStepDefinition, type TutorialStepEffects, type TutorialStepIdentity, type TutorialStepPolicy, type TutorialStepProgress, TypedEmitter, type UnequipAllCharactersResponse, type UnequipItemsResponse, type UnlockCharacterResponse, type UnlockCharactersBatchResponse, type UnstackableItemInstanceState, type Unsubscribe, type UpdateMatchResponse, type UpgradeCharacterLevelResponse, type UpgradeCharacterLevelsBatchResponse, type UpgradeItemLevelResponse, type UpgradeLevelsBatchResponse, type UpgradeLevelsOptions, type UpgradeStatLevelResponse, type UpgradeStatLevelsBatchResponse, type UsagePeriodRecord, type UsageReactivationEvent, type UsageTimeStats, type UseCollectibleJokerResponse, UserAction, type UserAdvertisingState, type UserBlockchainState, type UserBlockchainStateResponse, type UserCharactersState, type UserClaimRewardState, type UserCollectionState, type UserComebackState, type UserCommunityChestState, type UserCoopEventState, type UserCryptoComplianceCounters, type UserCryptoCurrencyState, UserCustomDataAction, type UserCustomDataBatchDeleteItem, type UserCustomDataBatchSetItem, type UserCustomDataDefinitions, type UserCustomDataKeyDefinition, type UserCustomDataRecord, type UserCustomDataRequest, UserCustomDataService, type UserCustomDataState, type UserDailyCalendarState, type UserDailyCounters, UserData, type UserDealNodeLifetimeCounts, type UserDealNodeState, type UserDealOfferActivationState, type UserDealOfferHistory, type UserDealOffersState, type UserDealOffersStateResponse, type UserDealSlotState, type UserDealTrackState, type UserDepositAddress, type UserEventTokenProgress, type UserEventTokensState, type UserGameLoopsState, type UserIdleAccrualState, type UserInventoryState, type UserKycState, type UserLeaderboardProgress, type UserLeaderboardsState, type UserLootboxPityCounter, type UserLootboxState, type UserMailboxState, type UserMarketplaceState, type UserMatchCreationLimitState, type UserMatchState, type UserPremiumState, type UserPublicDataModel, type UserPurchaseState, type UserQuestCycleState, type UserQuestObjectiveProgress, type UserQuestProgress, type UserQuestState, type UserReferralState, type UserReferralStateResponse, type UserRequest, type UserRewardState, type UserRewardsStateResponse, type UserSeasonState, type UserSeasonStateResponse, type UserSeasonsState, UserService, type UserSocialState, type UserState, type UserStateSlice, type UserStateVersions, type UserStoreState, type UserTimedBoostsState, type UserTimedEventStateResponse, type UserTutorialFlowState, type UserTutorialState, type UserTutorialStepState, type UserUsageState, type UserVirtualCurrencyState, type VirtualCurrencyDefinition, type VirtualCurrencyEconomy, type VirtualCurrencyPermissions, type WalletChallengeResponse, WalletLinkType, type WithdrawalSignatureResponse, type WithdrawalSplit, beginSsoRedirect, claimedMilestoneIDs, createIDosGamesClient, curveMultiplier, evaluateCurve, grantedPremiumTiers, isCurveConfigured, isFail, isMilestoneClaimed, isOk, normalizeBlockchainCategory, readSsoCodeFromUrl, roundAmount, zPaymentProof, zPriceOption, zPriceOptions };