@bluebottle_gg/league-broadcast-client 1.3.1 → 1.4.1

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
@@ -2,7 +2,7 @@
2
2
  * This is an auto-generated file.
3
3
  * Any changes made to this file can be lost when this file is regenerated.
4
4
  */
5
- declare enum GameState$1 {
5
+ declare enum GameState {
6
6
  OutOfGame = 0,
7
7
  Loading = 1,
8
8
  Running = 2,
@@ -173,7 +173,7 @@ declare class itemWithAsset {
173
173
  * This is an auto-generated file.
174
174
  * Any changes made to this file can be lost when this file is regenerated.
175
175
  */
176
- declare class simpleChampionData$1 {
176
+ declare class simpleChampionData {
177
177
  id: number;
178
178
  alias: string;
179
179
  name: string;
@@ -188,7 +188,7 @@ declare class simpleChampionData$1 {
188
188
  * This is an auto-generated file.
189
189
  * Any changes made to this file can be lost when this file is regenerated.
190
190
  */
191
- declare enum Team$1 {
191
+ declare enum Team {
192
192
  None = 0,
193
193
  Order = 1,
194
194
  Chaos = 2,
@@ -202,10 +202,10 @@ declare enum Team$1 {
202
202
 
203
203
  declare class championDetailData {
204
204
  playerIndex: number;
205
- team: Team$1;
205
+ team: Team;
206
206
  name: string;
207
207
  displayName: string;
208
- championAssets?: simpleChampionData$1;
208
+ championAssets?: simpleChampionData;
209
209
  level: number;
210
210
  health: ingameHealthData;
211
211
  resource: ingameResourceData;
@@ -230,7 +230,7 @@ declare class championDetailData {
230
230
  */
231
231
 
232
232
  declare class damageCompositionPlayer {
233
- champion?: simpleChampionData$1;
233
+ champion?: simpleChampionData;
234
234
  name: string;
235
235
  displayName: string;
236
236
  physical: number;
@@ -283,7 +283,7 @@ declare class damageFlowEdge {
283
283
  */
284
284
 
285
285
  declare class damageFlowNode {
286
- champion?: simpleChampionData$1;
286
+ champion?: simpleChampionData;
287
287
  name: string;
288
288
  displayName: string;
289
289
  team?: number;
@@ -319,7 +319,7 @@ declare class ingameExperienceData {
319
319
  */
320
320
 
321
321
  declare class damageGraphEntry {
322
- champion?: simpleChampionData$1;
322
+ champion?: simpleChampionData;
323
323
  abilities?: ingameAbilityInfo[];
324
324
  activeItems?: itemWithAsset[];
325
325
  name: string;
@@ -387,7 +387,7 @@ declare class damageRecapSpellEntry {
387
387
  */
388
388
 
389
389
  declare class damageRecapEntry {
390
- source?: simpleChampionData$1;
390
+ source?: simpleChampionData;
391
391
  sourceName: string;
392
392
  sourceDisplayName: string;
393
393
  team?: number;
@@ -432,7 +432,7 @@ declare enum ObjectiveRecapDisplayMode {
432
432
  */
433
433
 
434
434
  declare class smiteReactionResult {
435
- junglerChampion?: simpleChampionData$1;
435
+ junglerChampion?: simpleChampionData;
436
436
  junglerName: string;
437
437
  junglerDisplayName: string;
438
438
  junglerTeam: number;
@@ -451,7 +451,7 @@ declare class smiteReactionResult {
451
451
  */
452
452
 
453
453
  declare class ingameDamageRecapData {
454
- victim?: simpleChampionData$1;
454
+ victim?: simpleChampionData;
455
455
  victimName: string;
456
456
  victimDisplayName: string;
457
457
  deathTime: number;
@@ -459,7 +459,7 @@ declare class ingameDamageRecapData {
459
459
  totalDamageReceived: number;
460
460
  timeline?: damageRecapTimelineEntry[];
461
461
  sourceLookup?: {
462
- [key: string]: simpleChampionData$1;
462
+ [key: string]: simpleChampionData;
463
463
  };
464
464
  spellLookup?: {
465
465
  [key: string]: iSpellObjectResource;
@@ -495,7 +495,7 @@ declare class damageSplitSpellEntry {
495
495
  */
496
496
 
497
497
  declare class damageSplitTargetEntry {
498
- target?: simpleChampionData$1;
498
+ target?: simpleChampionData;
499
499
  targetName: string;
500
500
  targetDisplayName: string;
501
501
  team?: number;
@@ -513,7 +513,7 @@ declare class damageSplitTargetEntry {
513
513
 
514
514
  declare class ingameDamageSplitData {
515
515
  mode: DamageSplitMode;
516
- source?: simpleChampionData$1;
516
+ source?: simpleChampionData;
517
517
  sourceName: string;
518
518
  sourceDisplayName: string;
519
519
  targets: damageSplitTargetEntry[];
@@ -529,7 +529,7 @@ declare class ingameDamageSplitData {
529
529
  */
530
530
 
531
531
  declare class goldEfficiencyEntry {
532
- champion?: simpleChampionData$1;
532
+ champion?: simpleChampionData;
533
533
  name: string;
534
534
  displayName: string;
535
535
  team: number;
@@ -596,7 +596,7 @@ declare class killParticipationLink {
596
596
  */
597
597
 
598
598
  declare class killParticipationPlayer {
599
- champion?: simpleChampionData$1;
599
+ champion?: simpleChampionData;
600
600
  name: string;
601
601
  displayName: string;
602
602
  team: number;
@@ -656,7 +656,7 @@ declare class cDragonPerkInfo {
656
656
  */
657
657
 
658
658
  declare class ingameSingleRuneData {
659
- champion?: simpleChampionData$1;
659
+ champion?: simpleChampionData;
660
660
  perks: cDragonPerkInfo[];
661
661
  name: string;
662
662
  team: number;
@@ -677,7 +677,7 @@ declare class ingameRuneData {
677
677
  */
678
678
 
679
679
  declare class ingameScoreboardBottomPlayerData {
680
- champion?: simpleChampionData$1;
680
+ champion?: simpleChampionData;
681
681
  name: string;
682
682
  displayName?: string;
683
683
  kills: number;
@@ -719,7 +719,7 @@ declare class ingameScoreboardBottomData {
719
719
  * This is an auto-generated file.
720
720
  * Any changes made to this file can be lost when this file is regenerated.
721
721
  */
722
- declare enum BestOfType$1 {
722
+ declare enum BestOfType {
723
723
  BestOf1 = 1,
724
724
  BestOf2 = 2,
725
725
  BestOf3 = 3,
@@ -778,7 +778,7 @@ declare class ingameScoreboardTeamData {
778
778
  declare class ingameScoreboardData {
779
779
  teams: ingameScoreboardTeamData[];
780
780
  gameTime: number;
781
- bestOf: BestOfType$1;
781
+ bestOf: BestOfType;
782
782
  }
783
783
 
784
784
  /**
@@ -799,7 +799,7 @@ declare class ingameSideInfoPageDisplayData {
799
799
  */
800
800
 
801
801
  declare class ingameSideInfoPageRow {
802
- champion?: simpleChampionData$1;
802
+ champion?: simpleChampionData;
803
803
  playerName?: string;
804
804
  displayName?: string;
805
805
  team?: number;
@@ -846,7 +846,7 @@ declare class ingameSkinDisplayPlayerData {
846
846
  name: string;
847
847
  playerName: string;
848
848
  displayName: string;
849
- champion?: simpleChampionData$1;
849
+ champion?: simpleChampionData;
850
850
  skinName: string;
851
851
  splashCenteredUrl: string;
852
852
  splashUrl: string;
@@ -884,9 +884,9 @@ declare class teamfightKillEvent {
884
884
  killerDisplayName: string;
885
885
  victimName: string;
886
886
  victimDisplayName: string;
887
- killerChampion?: simpleChampionData$1;
888
- victimChampion?: simpleChampionData$1;
889
- killerTeam: Team$1;
887
+ killerChampion?: simpleChampionData;
888
+ victimChampion?: simpleChampionData;
889
+ killerTeam: Team;
890
890
  assisterNames: string[];
891
891
  assisterDisplayNames: string[];
892
892
  }
@@ -897,10 +897,10 @@ declare class teamfightKillEvent {
897
897
  */
898
898
 
899
899
  declare class teamfightTimelinePlayer {
900
- champion?: simpleChampionData$1;
900
+ champion?: simpleChampionData;
901
901
  name: string;
902
902
  displayName: string;
903
- team: Team$1;
903
+ team: Team;
904
904
  totalDamage: number;
905
905
  died: boolean;
906
906
  }
@@ -949,14 +949,14 @@ declare class perkInfoV2 {
949
949
  * Any changes made to this file can be lost when this file is regenerated.
950
950
  */
951
951
 
952
- declare class tabPlayer$1 {
952
+ declare class tabPlayer {
953
953
  id: string;
954
954
  playerName: string;
955
955
  playerHashtag: string;
956
956
  displayName: string;
957
957
  givenName: string;
958
958
  familyName: string;
959
- championAssets?: simpleChampionData$1;
959
+ championAssets?: simpleChampionData;
960
960
  abilities: ingameAbilityInfo[];
961
961
  perks: perkInfoV2[];
962
962
  health: ingameHealthData;
@@ -976,7 +976,7 @@ declare class tabPlayer$1 {
976
976
 
977
977
  declare class tabTeam {
978
978
  id: number;
979
- players: tabPlayer$1[];
979
+ players: tabPlayer[];
980
980
  }
981
981
 
982
982
  /**
@@ -1073,7 +1073,7 @@ declare class teamMember {
1073
1073
  * Any changes made to this file can be lost when this file is regenerated.
1074
1074
  */
1075
1075
 
1076
- declare class teamWithMembers$1 {
1076
+ declare class teamWithMembers {
1077
1077
  members: teamMember[];
1078
1078
  teamId: number;
1079
1079
  name: string;
@@ -1092,15 +1092,15 @@ declare class teamWithMembers$1 {
1092
1092
  * Any changes made to this file can be lost when this file is regenerated.
1093
1093
  */
1094
1094
 
1095
- declare class ingameFrontendData$1 {
1095
+ declare class ingameFrontendData {
1096
1096
  gameTime: number;
1097
1097
  utcTime?: number;
1098
1098
  playbackSpeed: number;
1099
1099
  isTestingEnvironment?: boolean;
1100
1100
  gameVersion: string;
1101
1101
  patch?: string;
1102
- teams?: teamWithMembers$1[];
1103
- gameStatus: GameState$1;
1102
+ teams?: teamWithMembers[];
1103
+ gameStatus: GameState;
1104
1104
  scoreboard?: ingameScoreboardData;
1105
1105
  tabs?: {
1106
1106
  [key: string]: tabTeam;
@@ -1129,20 +1129,6 @@ declare class ingameFrontendData$1 {
1129
1129
  championDetail: championDetailData | null;
1130
1130
  }
1131
1131
 
1132
- /**
1133
- * This is an auto-generated file.
1134
- * Any changes made to this file can be lost when this file is regenerated.
1135
- */
1136
- declare enum GameState {
1137
- OutOfGame = 0,
1138
- Loading = 1,
1139
- Running = 2,
1140
- Paused = 3,
1141
- Mocking = 4,
1142
- GameOver = 5,
1143
- ChampionSelect = 6
1144
- }
1145
-
1146
1132
  /**
1147
1133
  * A subscribable slice of state produced by `select()`.
1148
1134
  *
@@ -1202,7 +1188,7 @@ declare class GameStateStore {
1202
1188
  private listeners;
1203
1189
  /** Monotonically increasing version — used for cheap stale checks. */
1204
1190
  private version;
1205
- constructor(initialState: ingameFrontendData$1, initialGameState: GameState);
1191
+ constructor(initialState: ingameFrontendData, initialGameState: GameState);
1206
1192
  /** Return the current full snapshot. */
1207
1193
  getSnapshot(): GameStateSnapshot;
1208
1194
  /** Return the current version number. */
@@ -1247,15 +1233,15 @@ declare class GameStateStore {
1247
1233
  */
1248
1234
  watchImmediate<S>(selector: (snapshot: GameStateSnapshot) => S, callback: (value: S, prev: S | undefined) => void, equalityFn?: EqualityFn<S>): () => void;
1249
1235
  /** @internal Replace game data snapshot and notify listeners. */
1250
- _setGameData(data: ingameFrontendData$1): void;
1236
+ _setGameData(data: ingameFrontendData): void;
1251
1237
  /** @internal Replace game state and notify listeners. */
1252
1238
  _setGameState(state: GameState): void;
1253
1239
  /** @internal Replace entire snapshot (used on game end / reset). */
1254
- _reset(data: ingameFrontendData$1, state: GameState): void;
1240
+ _reset(data: ingameFrontendData, state: GameState): void;
1255
1241
  private emit;
1256
1242
  }
1257
1243
  interface GameStateSnapshot {
1258
- readonly gameData: ingameFrontendData$1;
1244
+ readonly gameData: ingameFrontendData;
1259
1245
  readonly gameState: GameState;
1260
1246
  /** Monotonic version counter — useful for cheap stale checks. */
1261
1247
  readonly version: number;
@@ -1398,7 +1384,7 @@ declare class timelineEntry {
1398
1384
  */
1399
1385
 
1400
1386
  declare class championSelectTeam {
1401
- metaData?: teamWithMembers$1;
1387
+ metaData?: teamWithMembers;
1402
1388
  bans: banSlot[];
1403
1389
  slots: pickSlot[];
1404
1390
  timeline: timelineEntry[];
@@ -1406,7 +1392,7 @@ declare class championSelectTeam {
1406
1392
  scoreMatch: teamScore;
1407
1393
  scoreSeason: teamScore;
1408
1394
  fearlessBans?: {
1409
- [key: number]: simpleChampionData$1[];
1395
+ [key: number]: simpleChampionData[];
1410
1396
  };
1411
1397
  }
1412
1398
 
@@ -1422,7 +1408,7 @@ declare class champSelectStatePerformanceData {
1422
1408
  * This is an auto-generated file.
1423
1409
  * Any changes made to this file can be lost when this file is regenerated.
1424
1410
  */
1425
- declare enum MatchRuleSet$1 {
1411
+ declare enum MatchRuleSet {
1426
1412
  Standard = 0,
1427
1413
  PartialFearless = 1,
1428
1414
  Fearless = 2
@@ -1433,18 +1419,18 @@ declare enum MatchRuleSet$1 {
1433
1419
  * Any changes made to this file can be lost when this file is regenerated.
1434
1420
  */
1435
1421
 
1436
- declare class matchData$1 {
1422
+ declare class matchData {
1437
1423
  matchId: number;
1438
1424
  seasonId: number;
1439
1425
  winnerId?: number;
1440
1426
  isActive: boolean;
1441
- type: BestOfType$1;
1427
+ type: BestOfType;
1442
1428
  nextMatchId?: number;
1443
1429
  winnerNextMatchId?: number;
1444
1430
  loserNextMatchId?: number;
1445
1431
  name?: string;
1446
1432
  date?: Date;
1447
- ruleSet: MatchRuleSet$1;
1433
+ ruleSet: MatchRuleSet;
1448
1434
  onStage: boolean;
1449
1435
  }
1450
1436
 
@@ -1454,10 +1440,10 @@ declare class matchData$1 {
1454
1440
  */
1455
1441
 
1456
1442
  declare class champSelectStateMetaData {
1457
- bestOfType: BestOfType$1;
1443
+ bestOfType: BestOfType;
1458
1444
  patch: string;
1459
1445
  performanceData: champSelectStatePerformanceData;
1460
- matchData?: matchData$1;
1446
+ matchData?: matchData;
1461
1447
  }
1462
1448
 
1463
1449
  /**
@@ -1465,7 +1451,7 @@ declare class champSelectStateMetaData {
1465
1451
  * Any changes made to this file can be lost when this file is regenerated.
1466
1452
  */
1467
1453
 
1468
- declare class champSelectStateData$1 {
1454
+ declare class champSelectStateData {
1469
1455
  isActive: boolean;
1470
1456
  isConnected: boolean;
1471
1457
  isTestingEnvironment: boolean;
@@ -1507,7 +1493,7 @@ declare class ChampSelectStateStore {
1507
1493
  private listeners;
1508
1494
  /** Monotonically increasing version — used for cheap stale checks. */
1509
1495
  private version;
1510
- constructor(initialState: champSelectStateData$1);
1496
+ constructor(initialState: champSelectStateData);
1511
1497
  /** Return the current full snapshot. */
1512
1498
  getSnapshot(): ChampSelectSnapshot;
1513
1499
  /** Return the current version number. */
@@ -1533,13 +1519,13 @@ declare class ChampSelectStateStore {
1533
1519
  */
1534
1520
  watchImmediate<S>(selector: (snapshot: ChampSelectSnapshot) => S, callback: (value: S, prev: S | undefined) => void, equalityFn?: EqualityFn<S>): () => void;
1535
1521
  /** @internal Replace champ-select data snapshot and notify listeners. */
1536
- _setChampSelectData(data: champSelectStateData$1): void;
1522
+ _setChampSelectData(data: champSelectStateData): void;
1537
1523
  /** @internal Replace entire snapshot (used on champ select end / reset). */
1538
- _reset(data: champSelectStateData$1): void;
1524
+ _reset(data: champSelectStateData): void;
1539
1525
  private emit;
1540
1526
  }
1541
1527
  interface ChampSelectSnapshot {
1542
- readonly champSelectData: champSelectStateData$1;
1528
+ readonly champSelectData: champSelectStateData;
1543
1529
  /** Whether champ select is currently active. */
1544
1530
  readonly isActive: boolean;
1545
1531
  /** Monotonic version counter — useful for cheap stale checks. */
@@ -1551,41 +1537,213 @@ interface ChampSelectSnapshot {
1551
1537
  * Any changes made to this file can be lost when this file is regenerated.
1552
1538
  */
1553
1539
 
1554
- declare class ingameFrontendData {
1540
+ declare class postGameDamageGraphEntry {
1541
+ champion?: simpleChampionData;
1542
+ damage: number;
1543
+ magicDamage: number;
1544
+ physicalDamage: number;
1545
+ trueDamage: number;
1546
+ }
1547
+
1548
+ /**
1549
+ * This is an auto-generated file.
1550
+ * Any changes made to this file can be lost when this file is regenerated.
1551
+ */
1552
+
1553
+ declare class postGameDamageGraphByTeam {
1554
+ entries: postGameDamageGraphEntry[];
1555
+ team: teamWithMembers;
1556
+ }
1557
+
1558
+ /**
1559
+ * This is an auto-generated file.
1560
+ * Any changes made to this file can be lost when this file is regenerated.
1561
+ */
1562
+
1563
+ declare class postGameDamageGraph {
1564
+ damageByTeam: {
1565
+ [key: number]: postGameDamageGraphByTeam;
1566
+ };
1567
+ }
1568
+
1569
+ /**
1570
+ * This is an auto-generated file.
1571
+ * Any changes made to this file can be lost when this file is regenerated.
1572
+ */
1573
+ declare class singleGameGoldGraph {
1574
+ goldAtTime: {
1575
+ [key: number]: {
1576
+ [key: number]: number;
1577
+ };
1578
+ };
1579
+ winner?: number;
1580
+ }
1581
+
1582
+ /**
1583
+ * This is an auto-generated file.
1584
+ * Any changes made to this file can be lost when this file is regenerated.
1585
+ */
1586
+ declare class teamData {
1587
+ teamId: number;
1588
+ name: string;
1589
+ tag: string;
1590
+ description?: string;
1591
+ iconUri?: string;
1592
+ isActive: boolean;
1593
+ primaryColor?: number;
1594
+ secondaryColor?: number;
1595
+ tertiaryColor?: number;
1596
+ backgroundColor?: number;
1597
+ }
1598
+
1599
+ /**
1600
+ * This is an auto-generated file.
1601
+ * Any changes made to this file can be lost when this file is regenerated.
1602
+ */
1603
+
1604
+ declare class postGameGoldGraph {
1605
+ current: singleGameGoldGraph;
1606
+ previousGames?: singleGameGoldGraph[];
1607
+ title?: string;
1608
+ teams: {
1609
+ [key: number]: teamData;
1610
+ };
1611
+ }
1612
+
1613
+ /**
1614
+ * This is an auto-generated file.
1615
+ * Any changes made to this file can be lost when this file is regenerated.
1616
+ */
1617
+
1618
+ declare class postGameTeamOverview {
1619
+ kills: number;
1620
+ deaths: number;
1621
+ assists: number;
1622
+ gold: number;
1623
+ towers: number;
1624
+ grubs: number;
1625
+ heralds: number;
1626
+ dragons: string[];
1627
+ elderDragons: number;
1628
+ baronNashors: number;
1629
+ bans: simpleChampionData[];
1630
+ metaData?: teamWithMembers;
1631
+ }
1632
+
1633
+ /**
1634
+ * This is an auto-generated file.
1635
+ * Any changes made to this file can be lost when this file is regenerated.
1636
+ */
1637
+
1638
+ declare class postGameOverview {
1555
1639
  gameTime: number;
1556
- utcTime?: number;
1557
- playbackSpeed: number;
1558
- isTestingEnvironment?: boolean;
1559
- gameVersion: string;
1560
- patch?: string;
1561
- teams?: teamWithMembers$1[];
1562
- gameStatus: GameState$1;
1563
- scoreboard?: ingameScoreboardData;
1564
- tabs?: {
1565
- [key: string]: tabTeam;
1640
+ gameDate?: Date;
1641
+ patch: string;
1642
+ winnerSide?: number;
1643
+ teamInfoBySide: {
1644
+ [key: number]: teamData;
1566
1645
  };
1567
- scoreboardBottom?: ingameScoreboardBottomData;
1568
- baronPitTimer?: iObjectiveRespawnData;
1569
- dragonPitTimer?: iObjectiveRespawnData;
1570
- inhibitors?: teamInhibitorData[];
1571
- showTwitchPrediction: boolean;
1572
- showTwitchPoll: boolean;
1573
- showTwitchChatVote: boolean;
1574
- sideInfoPage?: ingameSideInfoPage;
1575
- goldGraph?: ingameGoldGraphData;
1576
- runes?: ingameRuneData;
1577
- damageGraph?: ingameDamageGraphData;
1578
- teamfightDamageOverview?: ingameDamageGraphData;
1579
- damageRecap?: ingameDamageRecapData;
1580
- damageSplit?: ingameDamageSplitData;
1581
- goldEfficiency?: ingameGoldEfficiencyData;
1582
- teamfightTimeline?: ingameTeamfightTimelineData;
1583
- objectiveDps?: ingameObjectiveDpsData;
1584
- killParticipation?: ingameKillParticipationData;
1585
- damageComposition?: ingameDamageCompositionData;
1586
- damageFlow?: ingameDamageFlowData;
1587
- skinDisplay?: ingameSkinDisplayData;
1588
- championDetail: championDetailData | null;
1646
+ teamOverviewBySide: {
1647
+ [key: number]: postGameTeamOverview;
1648
+ };
1649
+ goldGraph?: postGameGoldGraph;
1650
+ damageGraph?: postGameDamageGraph;
1651
+ }
1652
+
1653
+ /**
1654
+ * This is an auto-generated file.
1655
+ * Any changes made to this file can be lost when this file is regenerated.
1656
+ */
1657
+
1658
+ declare class activeComponentChangedEventArgs {
1659
+ componentName?: string;
1660
+ gameId?: number;
1661
+ matchId?: number;
1662
+ playerIndex?: number;
1663
+ team?: Team;
1664
+ componentSettings?: {
1665
+ [key: string]: string;
1666
+ };
1667
+ }
1668
+
1669
+ declare class postGameStateData {
1670
+ isActive: boolean;
1671
+ isConnected: boolean;
1672
+ isMocking: boolean;
1673
+ gameId?: number;
1674
+ overview: postGameOverview | null;
1675
+ activeComponent?: activeComponentChangedEventArgs | null;
1676
+ }
1677
+
1678
+ /**
1679
+ * Reactive store for League Broadcast post-game state.
1680
+ *
1681
+ * Follows the same selector-based model as {@link GameStateStore} but holds
1682
+ * `postGameStateData` instead of ingame data.
1683
+ *
1684
+ * @example Vanilla JS
1685
+ * ```ts
1686
+ * const overview = store.select(s => s.postGameData.overview);
1687
+ * overview.subscribe(() => {
1688
+ * console.log('Overview changed:', overview.getSnapshot());
1689
+ * });
1690
+ * ```
1691
+ *
1692
+ * @example React 18+
1693
+ * ```tsx
1694
+ * function Winner() {
1695
+ * const overview = useSyncExternalStore(
1696
+ * store.select(s => s.postGameData.overview).subscribe,
1697
+ * store.select(s => s.postGameData.overview).getSnapshot,
1698
+ * );
1699
+ * return <div>{overview?.winnerSide}</div>;
1700
+ * }
1701
+ * ```
1702
+ */
1703
+ declare class PostGameStateStore {
1704
+ /** Current immutable snapshot. Replaced (never mutated) on every update. */
1705
+ private snapshot;
1706
+ /** Global listeners — called on every state change regardless of selector. */
1707
+ private listeners;
1708
+ /** Monotonically increasing version — used for cheap stale checks. */
1709
+ private version;
1710
+ constructor(initialState: postGameStateData);
1711
+ /** Return the current full snapshot. */
1712
+ getSnapshot(): PostGameSnapshot;
1713
+ /** Return the current version number. */
1714
+ getVersion(): number;
1715
+ /**
1716
+ * Subscribe to **all** state changes (unfiltered).
1717
+ * Returns an unsubscribe function.
1718
+ */
1719
+ subscribe(listener: () => void): () => void;
1720
+ /**
1721
+ * Create a **subscribable slice** that only triggers when the selected
1722
+ * value changes according to `equalityFn` (defaults to `===`).
1723
+ */
1724
+ select<S>(selector: (snapshot: PostGameSnapshot) => S, equalityFn?: EqualityFn<S>): Subscribable<S>;
1725
+ /**
1726
+ * Watch a derived value and invoke `callback` whenever it changes.
1727
+ * Returns an unsubscribe function.
1728
+ */
1729
+ watch<S>(selector: (snapshot: PostGameSnapshot) => S, callback: (value: S, prev: S) => void, equalityFn?: EqualityFn<S>): () => void;
1730
+ /**
1731
+ * Watch a derived value and invoke `callback` whenever it changes,
1732
+ * **and** invoke it immediately with the current value.
1733
+ */
1734
+ watchImmediate<S>(selector: (snapshot: PostGameSnapshot) => S, callback: (value: S, prev: S | undefined) => void, equalityFn?: EqualityFn<S>): () => void;
1735
+ /** @internal Replace post-game data snapshot and notify listeners. */
1736
+ _setPostGameData(data: postGameStateData): void;
1737
+ /** @internal Replace entire snapshot (used on post-game hide / reset). */
1738
+ _reset(data: postGameStateData): void;
1739
+ private emit;
1740
+ }
1741
+ interface PostGameSnapshot {
1742
+ readonly postGameData: postGameStateData;
1743
+ /** Whether post-game is currently active. */
1744
+ readonly isActive: boolean;
1745
+ /** Monotonic version counter — useful for cheap stale checks. */
1746
+ readonly version: number;
1589
1747
  }
1590
1748
 
1591
1749
  /**
@@ -1633,7 +1791,7 @@ declare class ingameObjectiveEvent {
1633
1791
  */
1634
1792
 
1635
1793
  declare class announcementParameter {
1636
- champion?: simpleChampionData$1;
1794
+ champion?: simpleChampionData;
1637
1795
  member?: teamMember;
1638
1796
  asset?: string;
1639
1797
  team: number;
@@ -1697,35 +1855,9 @@ declare class announcerEvent {
1697
1855
 
1698
1856
  declare class killFeedEvent {
1699
1857
  ingameTeamId: number;
1700
- killer?: simpleChampionData$1;
1701
- victim: simpleChampionData$1;
1702
- assisters?: simpleChampionData$1[];
1703
- }
1704
-
1705
- /**
1706
- * This is an auto-generated file.
1707
- * Any changes made to this file can be lost when this file is regenerated.
1708
- */
1709
- declare enum Team {
1710
- None = 0,
1711
- Order = 1,
1712
- Chaos = 2,
1713
- Neutral = 3
1714
- }
1715
-
1716
- /**
1717
- * This is an auto-generated file.
1718
- * Any changes made to this file can be lost when this file is regenerated.
1719
- */
1720
-
1721
- declare class champSelectStateData {
1722
- isActive: boolean;
1723
- isConnected: boolean;
1724
- isTestingEnvironment: boolean;
1725
- blueTeam: championSelectTeam;
1726
- redTeam: championSelectTeam;
1727
- metaData: champSelectStateMetaData;
1728
- timer: pickBanTimer;
1858
+ killer?: simpleChampionData;
1859
+ victim: simpleChampionData;
1860
+ assisters?: simpleChampionData[];
1729
1861
  }
1730
1862
 
1731
1863
  /**
@@ -1733,7 +1865,7 @@ declare class champSelectStateData {
1733
1865
  * Any changes made to this file can be lost when this file is regenerated.
1734
1866
  */
1735
1867
 
1736
- declare class pickBanActionEventArgs$1 {
1868
+ declare class pickBanActionEventArgs {
1737
1869
  type: string;
1738
1870
  subType: string;
1739
1871
  actorId: number;
@@ -1789,21 +1921,6 @@ declare class ApiError extends Error {
1789
1921
  constructor(status: number, statusText: string, body: string, url: string);
1790
1922
  }
1791
1923
 
1792
- /**
1793
- * This is an auto-generated file.
1794
- * Any changes made to this file can be lost when this file is regenerated.
1795
- */
1796
- declare class simpleChampionData {
1797
- id: number;
1798
- alias: string;
1799
- name: string;
1800
- splashCenteredImg: string;
1801
- splashImg: string;
1802
- loadingImg: string;
1803
- squareImg: string;
1804
- tileImg: string;
1805
- }
1806
-
1807
1924
  /**
1808
1925
  * Auto-generated REST API client for Champion select (pre-game) endpoints.
1809
1926
  * Do not edit manually. Changes will be lost.
@@ -1984,7 +2101,7 @@ declare class optionalGameData {
1984
2101
  isActive?: boolean;
1985
2102
  isComplete?: boolean;
1986
2103
  gameDate?: Date;
1987
- ruleSet?: MatchRuleSet$1;
2104
+ ruleSet?: MatchRuleSet;
1988
2105
  patch?: string;
1989
2106
  }
1990
2107
 
@@ -1993,8 +2110,8 @@ declare class optionalGameData {
1993
2110
  * Any changes made to this file can be lost when this file is regenerated.
1994
2111
  */
1995
2112
 
1996
- declare class gameWithTeams$1 {
1997
- teams: teamWithMembers$1[];
2113
+ declare class gameWithTeams {
2114
+ teams: teamWithMembers[];
1998
2115
  gameId: number;
1999
2116
  matchId: number;
2000
2117
  gameNumber: number;
@@ -2003,7 +2120,7 @@ declare class gameWithTeams$1 {
2003
2120
  isComplete: boolean;
2004
2121
  gameTime?: number;
2005
2122
  gameDate?: Date;
2006
- ruleSet: MatchRuleSet$1;
2123
+ ruleSet: MatchRuleSet;
2007
2124
  patch: string;
2008
2125
  gameVersion: string;
2009
2126
  assetPatch: string;
@@ -2020,66 +2137,41 @@ declare class GameApi {
2020
2137
  private readonly client;
2021
2138
  constructor(client: ApiClient);
2022
2139
  /** `GET game/current` */
2023
- getCurrentGame(): Promise<gameWithTeams$1>;
2140
+ getCurrentGame(): Promise<gameWithTeams>;
2024
2141
  /** `POST game/current/start` */
2025
- startCurrentOrScheduledGame(): Promise<gameWithTeams$1>;
2142
+ startCurrentOrScheduledGame(): Promise<gameWithTeams>;
2026
2143
  /** `GET game/previous` */
2027
2144
  getPreviousGame(): Promise<number>;
2028
2145
  /** `GET game/{gameid}` */
2029
- getGame(gameid: number): Promise<gameWithTeams$1>;
2146
+ getGame(gameid: number): Promise<gameWithTeams>;
2030
2147
  /** `PATCH game/{gameid}` */
2031
2148
  updateGame(gameid: number, game: optionalGameData): Promise<void>;
2032
2149
  /** `PUT game/{gameid}/teams` */
2033
2150
  setSideSelection(gameid: number, teams: number[]): Promise<void>;
2034
2151
  /** `GET game/{gameid}/teams` */
2035
- getTeamsInGame(gameid: number): Promise<teamWithMembers$1[]>;
2152
+ getTeamsInGame(gameid: number): Promise<teamWithMembers[]>;
2036
2153
  /** `DELETE game/{gameid}/winner` */
2037
2154
  removeGameWinner(gameid: number): Promise<void>;
2038
2155
  /** `PUT game/{gameid}/winner/{teamid}` */
2039
2156
  setGameWinner(gameid: number, teamid: number): Promise<void>;
2040
2157
  /** `GET game/{gameid}/bans` */
2041
- getBans(gameid: number): Promise<simpleChampionData$1[]>;
2158
+ getBans(gameid: number): Promise<simpleChampionData[]>;
2042
2159
  /** `GET game/{gameid}/bans/{teamid}` */
2043
- getBansForTeam(gameid: number, teamid: number): Promise<simpleChampionData$1[]>;
2160
+ getBansForTeam(gameid: number, teamid: number): Promise<simpleChampionData[]>;
2044
2161
  /** `PUT game/{gameid}/bans` */
2045
2162
  setBans(gameid: number, bans: Record<number, (string | null)[]>): Promise<void>;
2046
2163
  /** `PUT game/{gameid}/bans/{teamid}` */
2047
2164
  setBansForTeam(gameid: number, teamid: number, bans: (string | null)[]): Promise<void>;
2048
2165
  /** `GET game/{gameid}/picks` */
2049
- getPicks(gameid: number): Promise<Record<number, simpleChampionData$1[]>>;
2166
+ getPicks(gameid: number): Promise<Record<number, simpleChampionData[]>>;
2050
2167
  /** `GET game/{gameid}/picks/{teamid}` */
2051
- getPicksForTeam(gameid: number, teamid: number): Promise<simpleChampionData$1[]>;
2168
+ getPicksForTeam(gameid: number, teamid: number): Promise<simpleChampionData[]>;
2052
2169
  /** `PUT game/{gameid}/picks` */
2053
2170
  setPicks(gameid: number, picks: Record<number, (string | null)[]>): Promise<void>;
2054
2171
  /** `PUT game/{gameid}/picks/{teamid}` */
2055
2172
  setPicksForTeam(gameid: number, teamid: number, picks: (string | null)[]): Promise<void>;
2056
2173
  /** `GET game/{gameid}/teams/players` */
2057
- getPlayersInGame(gameid: number): Promise<Record<Team$1, teamMember[]>>;
2058
- }
2059
-
2060
- /**
2061
- * This is an auto-generated file.
2062
- * Any changes made to this file can be lost when this file is regenerated.
2063
- */
2064
-
2065
- declare class tabPlayer {
2066
- id: string;
2067
- playerName: string;
2068
- playerHashtag: string;
2069
- displayName: string;
2070
- givenName: string;
2071
- familyName: string;
2072
- championAssets?: simpleChampionData$1;
2073
- abilities: ingameAbilityInfo[];
2074
- perks: perkInfoV2[];
2075
- health: ingameHealthData;
2076
- resource: ingameResourceData;
2077
- stacksData?: number;
2078
- hasBaron: boolean;
2079
- hasElder: boolean;
2080
- level: number;
2081
- experience: ingameExperienceData;
2082
- respawnAt?: number;
2174
+ getPlayersInGame(gameid: number): Promise<Record<Team, teamMember[]>>;
2083
2175
  }
2084
2176
 
2085
2177
  /**
@@ -2115,29 +2207,9 @@ declare class GameStateApi {
2115
2207
  * Any changes made to this file can be lost when this file is regenerated.
2116
2208
  */
2117
2209
 
2118
- declare class matchData {
2119
- matchId: number;
2120
- seasonId: number;
2121
- winnerId?: number;
2122
- isActive: boolean;
2123
- type: BestOfType$1;
2124
- nextMatchId?: number;
2125
- winnerNextMatchId?: number;
2126
- loserNextMatchId?: number;
2127
- name?: string;
2128
- date?: Date;
2129
- ruleSet: MatchRuleSet$1;
2130
- onStage: boolean;
2131
- }
2132
-
2133
- /**
2134
- * This is an auto-generated file.
2135
- * Any changes made to this file can be lost when this file is regenerated.
2136
- */
2137
-
2138
- declare class addMatchRequestArgs$1 {
2210
+ declare class addMatchRequestArgs {
2139
2211
  name?: string;
2140
- type: BestOfType$1;
2212
+ type: BestOfType;
2141
2213
  teams: number[];
2142
2214
  isCurrent: boolean;
2143
2215
  onStage?: boolean;
@@ -2155,96 +2227,34 @@ declare class addMatchRequestArgs$1 {
2155
2227
  * Any changes made to this file can be lost when this file is regenerated.
2156
2228
  */
2157
2229
 
2158
- declare class optionalMatchData$1 {
2230
+ declare class optionalMatchData {
2159
2231
  date?: Date;
2160
- ruleSet?: MatchRuleSet$1;
2232
+ ruleSet?: MatchRuleSet;
2161
2233
  onStage?: boolean;
2162
2234
  }
2163
2235
 
2164
- /**
2165
- * This is an auto-generated file.
2166
- * Any changes made to this file can be lost when this file is regenerated.
2167
- */
2168
- declare enum BestOfType {
2169
- BestOf1 = 1,
2170
- BestOf2 = 2,
2171
- BestOf3 = 3,
2172
- BestOf5 = 5,
2173
- BestOf7 = 7
2174
- }
2175
-
2176
- /**
2177
- * This is an auto-generated file.
2178
- * Any changes made to this file can be lost when this file is regenerated.
2179
- */
2180
-
2181
- declare class gameWithTeams {
2182
- teams: teamWithMembers$1[];
2183
- gameId: number;
2184
- matchId: number;
2185
- gameNumber: number;
2186
- gameWinnerId?: number;
2187
- isActive: boolean;
2188
- isComplete: boolean;
2189
- gameTime?: number;
2190
- gameDate?: Date;
2191
- ruleSet: MatchRuleSet$1;
2192
- patch: string;
2193
- gameVersion: string;
2194
- assetPatch: string;
2195
- }
2196
-
2197
- /**
2198
- * This is an auto-generated file.
2199
- * Any changes made to this file can be lost when this file is regenerated.
2200
- */
2201
- declare enum MatchRuleSet {
2202
- Standard = 0,
2203
- PartialFearless = 1,
2204
- Fearless = 2
2205
- }
2206
-
2207
2236
  /**
2208
2237
  * This is an auto-generated file.
2209
2238
  * Any changes made to this file can be lost when this file is regenerated.
2210
2239
  */
2211
2240
 
2212
- declare class matchWithGamesAndTeams$1 {
2213
- games: gameWithTeams$1[];
2214
- teams: teamWithMembers$1[];
2241
+ declare class matchWithGamesAndTeams {
2242
+ games: gameWithTeams[];
2243
+ teams: teamWithMembers[];
2215
2244
  matchId: number;
2216
2245
  seasonId: number;
2217
2246
  winnerId?: number;
2218
2247
  isActive: boolean;
2219
- type: BestOfType$1;
2248
+ type: BestOfType;
2220
2249
  nextMatchId?: number;
2221
2250
  winnerNextMatchId?: number;
2222
2251
  loserNextMatchId?: number;
2223
2252
  name?: string;
2224
2253
  date?: Date;
2225
- ruleSet: MatchRuleSet$1;
2254
+ ruleSet: MatchRuleSet;
2226
2255
  onStage: boolean;
2227
2256
  }
2228
2257
 
2229
- /**
2230
- * This is an auto-generated file.
2231
- * Any changes made to this file can be lost when this file is regenerated.
2232
- */
2233
-
2234
- declare class teamWithMembers {
2235
- members: teamMember[];
2236
- teamId: number;
2237
- name: string;
2238
- tag: string;
2239
- description?: string;
2240
- iconUri?: string;
2241
- isActive: boolean;
2242
- primaryColor?: number;
2243
- secondaryColor?: number;
2244
- tertiaryColor?: number;
2245
- backgroundColor?: number;
2246
- }
2247
-
2248
2258
  /**
2249
2259
  * Auto-generated REST API client for Match (series) management endpoints.
2250
2260
  * Do not edit manually. Changes will be lost.
@@ -2258,13 +2268,13 @@ declare class MatchApi {
2258
2268
  /** `GET match/season/{seasonId}/simple` */
2259
2269
  getSimpleMatches(seasonId: number): Promise<matchData[]>;
2260
2270
  /** `GET match/season/{seasonId}` */
2261
- getMatches(seasonId: number): Promise<matchWithGamesAndTeams$1[]>;
2271
+ getMatches(seasonId: number): Promise<matchWithGamesAndTeams[]>;
2262
2272
  /** `GET match/simple` */
2263
2273
  getAllSimpleMatches(): Promise<matchData[]>;
2264
2274
  /** `GET match` */
2265
- getAllMatches(): Promise<matchWithGamesAndTeams$1[]>;
2275
+ getAllMatches(): Promise<matchWithGamesAndTeams[]>;
2266
2276
  /** `GET match/current` */
2267
- getCurrentMatch(): Promise<matchWithGamesAndTeams$1>;
2277
+ getCurrentMatch(): Promise<matchWithGamesAndTeams>;
2268
2278
  /** `POST match/current` */
2269
2279
  completeCurrentMatch(): Promise<void>;
2270
2280
  /** `GET match/current/id` */
@@ -2292,7 +2302,7 @@ declare class MatchApi {
2292
2302
  /** `GET match/current/onstage` */
2293
2303
  getCurrentMatchOnStage(): Promise<boolean>;
2294
2304
  /** `GET match/{matchid}` */
2295
- getMatch(matchid: number): Promise<matchWithGamesAndTeams$1>;
2305
+ getMatch(matchid: number): Promise<matchWithGamesAndTeams>;
2296
2306
  /** `DELETE match/{matchid}` */
2297
2307
  deleteMatch(matchid: number): Promise<boolean>;
2298
2308
  /** `GET match/{matchid}/teams` */
@@ -2320,13 +2330,13 @@ declare class MatchApi {
2320
2330
  /** `PATCH match/{matchid}/name/{matchName}` */
2321
2331
  setMatchName(matchid: number, matchName: string): Promise<void>;
2322
2332
  /** `PATCH match/{matchid}` */
2323
- updateMatch(matchid: number, matchUpdate: optionalMatchData$1): Promise<void>;
2333
+ updateMatch(matchid: number, matchUpdate: optionalMatchData): Promise<void>;
2324
2334
  /** `GET match/{matchid}/fearless/bans` */
2325
2335
  getMatchBans(matchid: number): Promise<Record<number, Record<number, simpleChampionData[]>>>;
2326
2336
  /** `GET match/{seriesid}/onstage` */
2327
2337
  getMatchOnStage(seriesid: number): Promise<boolean>;
2328
2338
  /** `PUT match` */
2329
- addMatch(match: addMatchRequestArgs$1): Promise<number>;
2339
+ addMatch(match: addMatchRequestArgs): Promise<number>;
2330
2340
  /** `GET match/{matchId}/stage/team/{stageSide}` */
2331
2341
  getTeamOnStageSide(matchId: number, stageSide: number): Promise<teamWithMembers>;
2332
2342
  /** `GET match/current/stage/team/{stageSide}` */
@@ -2337,7 +2347,7 @@ declare class MatchApi {
2337
2347
  * This is an auto-generated file.
2338
2348
  * Any changes made to this file can be lost when this file is regenerated.
2339
2349
  */
2340
- declare class seasonData$1 {
2350
+ declare class seasonData {
2341
2351
  seasonId: number;
2342
2352
  seasonName: string;
2343
2353
  isActive: boolean;
@@ -2346,23 +2356,6 @@ declare class seasonData$1 {
2346
2356
  iconUri?: string;
2347
2357
  }
2348
2358
 
2349
- /**
2350
- * This is an auto-generated file.
2351
- * Any changes made to this file can be lost when this file is regenerated.
2352
- */
2353
- declare class teamData$1 {
2354
- teamId: number;
2355
- name: string;
2356
- tag: string;
2357
- description?: string;
2358
- iconUri?: string;
2359
- isActive: boolean;
2360
- primaryColor?: number;
2361
- secondaryColor?: number;
2362
- tertiaryColor?: number;
2363
- backgroundColor?: number;
2364
- }
2365
-
2366
2359
  /**
2367
2360
  * Auto-generated REST API client for Season management endpoints.
2368
2361
  * Do not edit manually. Changes will be lost.
@@ -2374,15 +2367,15 @@ declare class SeasonApi {
2374
2367
  private readonly client;
2375
2368
  constructor(client: ApiClient);
2376
2369
  /** `GET season/current` */
2377
- getCurrentSeason(): Promise<seasonData$1>;
2370
+ getCurrentSeason(): Promise<seasonData>;
2378
2371
  /** `GET season/current/match` */
2379
- getCurrentSeasonScheduledMatch(): Promise<matchWithGamesAndTeams$1>;
2372
+ getCurrentSeasonScheduledMatch(): Promise<matchWithGamesAndTeams>;
2380
2373
  /** `GET season/current/id` */
2381
2374
  getCurrentSeasonId(): Promise<number>;
2382
2375
  /** `POST season/current` */
2383
2376
  setCurrentSeason(newCurrentSeasonId: number): Promise<void>;
2384
2377
  /** `GET season/current/teams` */
2385
- getCurrentSeasonTeams(): Promise<teamData$1[]>;
2378
+ getCurrentSeasonTeams(): Promise<teamData[]>;
2386
2379
  /** `GET season/current/teamswithmembers` */
2387
2380
  getCurrentSeasonTeamsWithMembers(): Promise<teamWithMembers[]>;
2388
2381
  /** `GET season/current/icon` */
@@ -2390,21 +2383,21 @@ declare class SeasonApi {
2390
2383
  /** `PUT season/current/icon` */
2391
2384
  setCurrentSeasonIcon(): Promise<string>;
2392
2385
  /** `GET season` */
2393
- getAllSeasons(): Promise<seasonData$1[]>;
2386
+ getAllSeasons(): Promise<seasonData[]>;
2394
2387
  /** `GET season/{seasonId}` */
2395
- getSeasonById(seasonId: number): Promise<seasonData$1>;
2388
+ getSeasonById(seasonId: number): Promise<seasonData>;
2396
2389
  /** `GET season/{seasonId}/matches` */
2397
- getMatchesInSeason(seasonId: number): Promise<matchWithGamesAndTeams$1[]>;
2390
+ getMatchesInSeason(seasonId: number): Promise<matchWithGamesAndTeams[]>;
2398
2391
  /** `GET season/{seasonId}/matches/count` */
2399
2392
  getMatchesInSeasonCount(seasonId: number): Promise<number>;
2400
2393
  /** `GET season/{seasonId}/matches/day/{day}` */
2401
- getMatchesInSeasonOnDay(seasonId: number, day: string): Promise<matchWithGamesAndTeams$1[]>;
2394
+ getMatchesInSeasonOnDay(seasonId: number, day: string): Promise<matchWithGamesAndTeams[]>;
2402
2395
  /** `GET season/{seasonId}/teams` */
2403
- getTeamsInSeason(seasonId: number): Promise<teamData$1[]>;
2396
+ getTeamsInSeason(seasonId: number): Promise<teamData[]>;
2404
2397
  /** `GET season/{seasonId}/teamswithmembers` */
2405
2398
  getTeamsWithMembersInSeason(seasonId: number): Promise<teamWithMembers[]>;
2406
2399
  /** `POST season` */
2407
- createOrUpdateSeason(seasonData: seasonData$1): Promise<number>;
2400
+ createOrUpdateSeason(seasonData: seasonData): Promise<number>;
2408
2401
  /** `GET season/{seasonId}/icon` */
2409
2402
  getSeasonIcon(seasonId: number): Promise<string>;
2410
2403
  /** `PUT season/{seasonId}/icon` */
@@ -2432,9 +2425,9 @@ declare class damageEventHistoryEntry {
2432
2425
  id: number;
2433
2426
  eventType: DamageEventType;
2434
2427
  gameTime: number;
2435
- victimChampion?: simpleChampionData$1;
2428
+ victimChampion?: simpleChampionData;
2436
2429
  victimName: string;
2437
- killerChampion?: simpleChampionData$1;
2430
+ killerChampion?: simpleChampionData;
2438
2431
  killerName: string;
2439
2432
  totalDamage: number;
2440
2433
  victimTeam?: number;
@@ -2443,173 +2436,79 @@ declare class damageEventHistoryEntry {
2443
2436
  }
2444
2437
 
2445
2438
  /**
2446
- * Auto-generated REST API client for In-game overlay and serialization endpoints.
2447
- * Do not edit manually. Changes will be lost.
2448
- *
2449
- * @generated 2026-04-27
2450
- */
2451
-
2452
- declare class IngameApi {
2453
- private readonly client;
2454
- constructor(client: ApiClient);
2455
- /** `GET ingame/status` */
2456
- getGameState(): Promise<number>;
2457
- /** `POST ingame/enable` */
2458
- enableComponent(): Promise<void>;
2459
- /** `POST ingame/disable` */
2460
- disableComponent(): Promise<void>;
2461
- /** `POST ingame/mock/{doMocking}` */
2462
- mockIngame(doMocking: boolean): Promise<void>;
2463
- /** `GET ingame/mock` */
2464
- getMockingStatus(): Promise<boolean>;
2465
- /** `GET ingame/frontend` */
2466
- getFrontendUrl(): Promise<string>;
2467
- /** `GET ingame/showing` */
2468
- getCurrentCommonSerializationOptions(): Promise<Record<string, unknown>>;
2469
- /** `POST ingame/showing` */
2470
- setCurrentCommonSerializationOptions(data: Record<string, unknown>): Promise<void>;
2471
- /** `GET ingame/showing/{socketid}` */
2472
- getCurrentFrontendSerializationOptions(socketid: string): Promise<Record<string, unknown>>;
2473
- /** `POST ingame/showing/{socketid}` */
2474
- setCurrentFrontendSerializationOptions(socketid: string, data: Record<string, unknown>): Promise<void>;
2475
- /** `GET ingame/stage/{stageSide}/{playerSlot}/networkId` */
2476
- getPlayerPUUIDInSlot(stageSide: number, playerSlot: number): Promise<number>;
2477
- /** `GET ingame/stage/{stageSide}/ingameteamid` */
2478
- getIngameTeamOnStageSide(stageSide: number): Promise<number>;
2479
- /** `GET ingame/state/activeOverlays` */
2480
- getActiveOverlays(): Promise<string[]>;
2481
- /** `GET ingame/damage/history` */
2482
- getDamageEventHistory(): Promise<damageEventHistoryEntry[]>;
2483
- /** `POST ingame/damage/select/{eventId}` */
2484
- selectDamageEvent(eventId: number, displayMode?: ObjectiveRecapDisplayMode | null): Promise<damageEventHistoryEntry>;
2485
- /** `POST ingame/damage/deselect` */
2486
- deselectDamageEvent(): Promise<void>;
2487
- /** `POST ingame/objective/select/{eventId}` */
2488
- selectObjectiveForDps(eventId: number): Promise<damageEventHistoryEntry>;
2489
- /** `POST ingame/objective/deselect` */
2490
- deselectObjectiveForDps(): Promise<void>;
2491
- /** `POST ingame/teamfight/start` */
2492
- startTeamfightTracking(): Promise<unknown>;
2493
- /** `POST ingame/teamfight/stop` */
2494
- stopTeamfightTracking(): Promise<damageEventHistoryEntry>;
2495
- /** `GET ingame/teamfight/active` */
2496
- getActiveTeamfight(): Promise<unknown>;
2497
- /** `POST ingame/teamfight/select/{eventId}` */
2498
- selectTeamfightTimeline(eventId: number): Promise<damageEventHistoryEntry>;
2499
- /** `POST ingame/teamfight/deselect` */
2500
- deselectTeamfightTimeline(): Promise<void>;
2501
- /** `POST ingame/damage/select/latest` */
2502
- selectLatestDamageEvent(displayMode?: ObjectiveRecapDisplayMode | null): Promise<damageEventHistoryEntry>;
2503
- /** `POST ingame/objective/select/latest` */
2504
- selectLatestObjectiveEvent(displayMode?: ObjectiveRecapDisplayMode | null, dps?: boolean): Promise<damageEventHistoryEntry>;
2505
- /** `POST ingame/teamfight/select/latest` */
2506
- selectLatestTeamfightTimeline(): Promise<damageEventHistoryEntry>;
2507
- }
2508
-
2509
- /**
2510
- * This is an auto-generated file.
2511
- * Any changes made to this file can be lost when this file is regenerated.
2512
- */
2513
- declare enum Lane {
2514
- Top = 0,
2515
- Jungle = 1,
2516
- Mid = 2,
2517
- ADC = 3,
2518
- Support = 4
2519
- }
2520
-
2521
- /**
2522
- * This is an auto-generated file.
2523
- * Any changes made to this file can be lost when this file is regenerated.
2524
- */
2525
-
2526
- declare class activeComponentChangedEventArgs {
2527
- componentName?: string;
2528
- gameId?: number;
2529
- matchId?: number;
2530
- playerIndex?: number;
2531
- team?: Team$1;
2532
- componentSettings?: {
2533
- [key: string]: string;
2534
- };
2535
- }
2536
-
2537
- /**
2538
- * This is an auto-generated file.
2539
- * Any changes made to this file can be lost when this file is regenerated.
2540
- */
2541
-
2542
- declare class postGameDamageGraphEntry {
2543
- champion?: simpleChampionData$1;
2544
- damage: number;
2545
- magicDamage: number;
2546
- physicalDamage: number;
2547
- trueDamage: number;
2548
- }
2549
-
2550
- /**
2551
- * This is an auto-generated file.
2552
- * Any changes made to this file can be lost when this file is regenerated.
2553
- */
2554
-
2555
- declare class postGameDamageGraphByTeam {
2556
- entries: postGameDamageGraphEntry[];
2557
- team: teamWithMembers$1;
2558
- }
2559
-
2560
- /**
2561
- * This is an auto-generated file.
2562
- * Any changes made to this file can be lost when this file is regenerated.
2563
- */
2564
-
2565
- declare class postGameDamageGraph {
2566
- damageByTeam: {
2567
- [key: number]: postGameDamageGraphByTeam;
2568
- };
2569
- }
2570
-
2571
- /**
2572
- * This is an auto-generated file.
2573
- * Any changes made to this file can be lost when this file is regenerated.
2574
- */
2575
- declare class singleGameGoldGraph {
2576
- goldAtTime: {
2577
- [key: number]: {
2578
- [key: number]: number;
2579
- };
2580
- };
2581
- winner?: number;
2582
- }
2583
-
2584
- /**
2585
- * This is an auto-generated file.
2586
- * Any changes made to this file can be lost when this file is regenerated.
2587
- */
2588
- declare class teamData {
2589
- teamId: number;
2590
- name: string;
2591
- tag: string;
2592
- description?: string;
2593
- iconUri?: string;
2594
- isActive: boolean;
2595
- primaryColor?: number;
2596
- secondaryColor?: number;
2597
- tertiaryColor?: number;
2598
- backgroundColor?: number;
2599
- }
2600
-
2601
- /**
2439
+ * Auto-generated REST API client for In-game overlay and serialization endpoints.
2440
+ * Do not edit manually. Changes will be lost.
2441
+ *
2442
+ * @generated 2026-04-27
2443
+ */
2444
+
2445
+ declare class IngameApi {
2446
+ private readonly client;
2447
+ constructor(client: ApiClient);
2448
+ /** `GET ingame/status` */
2449
+ getGameState(): Promise<number>;
2450
+ /** `POST ingame/enable` */
2451
+ enableComponent(): Promise<void>;
2452
+ /** `POST ingame/disable` */
2453
+ disableComponent(): Promise<void>;
2454
+ /** `POST ingame/mock/{doMocking}` */
2455
+ mockIngame(doMocking: boolean): Promise<void>;
2456
+ /** `GET ingame/mock` */
2457
+ getMockingStatus(): Promise<boolean>;
2458
+ /** `GET ingame/frontend` */
2459
+ getFrontendUrl(): Promise<string>;
2460
+ /** `GET ingame/showing` */
2461
+ getCurrentCommonSerializationOptions(): Promise<Record<string, unknown>>;
2462
+ /** `POST ingame/showing` */
2463
+ setCurrentCommonSerializationOptions(data: Record<string, unknown>): Promise<void>;
2464
+ /** `GET ingame/showing/{socketid}` */
2465
+ getCurrentFrontendSerializationOptions(socketid: string): Promise<Record<string, unknown>>;
2466
+ /** `POST ingame/showing/{socketid}` */
2467
+ setCurrentFrontendSerializationOptions(socketid: string, data: Record<string, unknown>): Promise<void>;
2468
+ /** `GET ingame/stage/{stageSide}/{playerSlot}/networkId` */
2469
+ getPlayerPUUIDInSlot(stageSide: number, playerSlot: number): Promise<number>;
2470
+ /** `GET ingame/stage/{stageSide}/ingameteamid` */
2471
+ getIngameTeamOnStageSide(stageSide: number): Promise<number>;
2472
+ /** `GET ingame/state/activeOverlays` */
2473
+ getActiveOverlays(): Promise<string[]>;
2474
+ /** `GET ingame/damage/history` */
2475
+ getDamageEventHistory(): Promise<damageEventHistoryEntry[]>;
2476
+ /** `POST ingame/damage/select/{eventId}` */
2477
+ selectDamageEvent(eventId: number, displayMode?: ObjectiveRecapDisplayMode | null): Promise<damageEventHistoryEntry>;
2478
+ /** `POST ingame/damage/deselect` */
2479
+ deselectDamageEvent(): Promise<void>;
2480
+ /** `POST ingame/objective/select/{eventId}` */
2481
+ selectObjectiveForDps(eventId: number): Promise<damageEventHistoryEntry>;
2482
+ /** `POST ingame/objective/deselect` */
2483
+ deselectObjectiveForDps(): Promise<void>;
2484
+ /** `POST ingame/teamfight/start` */
2485
+ startTeamfightTracking(): Promise<unknown>;
2486
+ /** `POST ingame/teamfight/stop` */
2487
+ stopTeamfightTracking(): Promise<damageEventHistoryEntry>;
2488
+ /** `GET ingame/teamfight/active` */
2489
+ getActiveTeamfight(): Promise<unknown>;
2490
+ /** `POST ingame/teamfight/select/{eventId}` */
2491
+ selectTeamfightTimeline(eventId: number): Promise<damageEventHistoryEntry>;
2492
+ /** `POST ingame/teamfight/deselect` */
2493
+ deselectTeamfightTimeline(): Promise<void>;
2494
+ /** `POST ingame/damage/select/latest` */
2495
+ selectLatestDamageEvent(displayMode?: ObjectiveRecapDisplayMode | null): Promise<damageEventHistoryEntry>;
2496
+ /** `POST ingame/objective/select/latest` */
2497
+ selectLatestObjectiveEvent(displayMode?: ObjectiveRecapDisplayMode | null, dps?: boolean): Promise<damageEventHistoryEntry>;
2498
+ /** `POST ingame/teamfight/select/latest` */
2499
+ selectLatestTeamfightTimeline(): Promise<damageEventHistoryEntry>;
2500
+ }
2501
+
2502
+ /**
2602
2503
  * This is an auto-generated file.
2603
2504
  * Any changes made to this file can be lost when this file is regenerated.
2604
2505
  */
2605
-
2606
- declare class postGameGoldGraph {
2607
- current: singleGameGoldGraph;
2608
- previousGames?: singleGameGoldGraph[];
2609
- title?: string;
2610
- teams: {
2611
- [key: number]: teamData;
2612
- };
2506
+ declare enum Lane {
2507
+ Top = 0,
2508
+ Jungle = 1,
2509
+ Mid = 2,
2510
+ ADC = 3,
2511
+ Support = 4
2613
2512
  }
2614
2513
 
2615
2514
  /**
@@ -2622,7 +2521,7 @@ declare class matchOverviewTeamSummary {
2622
2521
  kills: number;
2623
2522
  deaths: number;
2624
2523
  assists: number;
2625
- picks: simpleChampionData$1[];
2524
+ picks: simpleChampionData[];
2626
2525
  }
2627
2526
 
2628
2527
  /**
@@ -2651,46 +2550,6 @@ declare class matchOverviewData {
2651
2550
  games: matchOverviewGameSummary[];
2652
2551
  }
2653
2552
 
2654
- /**
2655
- * This is an auto-generated file.
2656
- * Any changes made to this file can be lost when this file is regenerated.
2657
- */
2658
-
2659
- declare class postGameTeamOverview {
2660
- kills: number;
2661
- deaths: number;
2662
- assists: number;
2663
- gold: number;
2664
- towers: number;
2665
- grubs: number;
2666
- heralds: number;
2667
- dragons: string[];
2668
- elderDragons: number;
2669
- baronNashors: number;
2670
- bans: simpleChampionData$1[];
2671
- metaData?: teamWithMembers$1;
2672
- }
2673
-
2674
- /**
2675
- * This is an auto-generated file.
2676
- * Any changes made to this file can be lost when this file is regenerated.
2677
- */
2678
-
2679
- declare class postGameOverview {
2680
- gameTime: number;
2681
- gameDate?: Date;
2682
- patch: string;
2683
- winnerSide?: number;
2684
- teamInfoBySide: {
2685
- [key: number]: teamData;
2686
- };
2687
- teamOverviewBySide: {
2688
- [key: number]: postGameTeamOverview;
2689
- };
2690
- goldGraph?: postGameGoldGraph;
2691
- damageGraph?: postGameDamageGraph;
2692
- }
2693
-
2694
2553
  /**
2695
2554
  * This is an auto-generated file.
2696
2555
  * Any changes made to this file can be lost when this file is regenerated.
@@ -2731,11 +2590,11 @@ declare class perkData {
2731
2590
  declare class postGamePlayerRunesAndItems {
2732
2591
  perks: perkData;
2733
2592
  items: itemAsset[];
2734
- champion: simpleChampionData$1;
2593
+ champion: simpleChampionData;
2735
2594
  nameWithTag: string;
2736
2595
  displayName: string;
2737
2596
  description?: string;
2738
- team?: teamWithMembers$1;
2597
+ team?: teamWithMembers;
2739
2598
  }
2740
2599
 
2741
2600
  /**
@@ -2754,33 +2613,11 @@ declare class infoRow {
2754
2613
 
2755
2614
  declare class postGamePlayerStats {
2756
2615
  infoRows: infoRow[];
2757
- champion: simpleChampionData$1;
2616
+ champion: simpleChampionData;
2758
2617
  nameWithTag: string;
2759
2618
  displayName: string;
2760
2619
  description?: string;
2761
- team?: teamWithMembers$1;
2762
- }
2763
-
2764
- /**
2765
- * This is an auto-generated file.
2766
- * Any changes made to this file can be lost when this file is regenerated.
2767
- */
2768
-
2769
- declare class matchWithGamesAndTeams {
2770
- games: gameWithTeams$1[];
2771
- teams: teamWithMembers$1[];
2772
- matchId: number;
2773
- seasonId: number;
2774
- winnerId?: number;
2775
- isActive: boolean;
2776
- type: BestOfType$1;
2777
- nextMatchId?: number;
2778
- winnerNextMatchId?: number;
2779
- loserNextMatchId?: number;
2780
- name?: string;
2781
- date?: Date;
2782
- ruleSet: MatchRuleSet$1;
2783
- onStage: boolean;
2620
+ team?: teamWithMembers;
2784
2621
  }
2785
2622
 
2786
2623
  /**
@@ -2828,13 +2665,13 @@ declare class PostGameApi {
2828
2665
  /** `GET postgame/items_and_runes/{gameId}/{playerIndex}` */
2829
2666
  getItemsAndRunes(gameId: number, playerIndex: number): Promise<postGamePlayerRunesAndItems>;
2830
2667
  /** `GET postgame/items_and_runes/{gameId}/{teamSide}/{lane}` */
2831
- getItemsAndRunesByTeamAndLane(gameId: number, teamSide: Team$1, lane: Lane): Promise<postGamePlayerRunesAndItems>;
2668
+ getItemsAndRunesByTeamAndLane(gameId: number, teamSide: Team, lane: Lane): Promise<postGamePlayerRunesAndItems>;
2832
2669
  /** `GET postgame/items_and_runes/mock` */
2833
2670
  getMockItemAndRunes(): Promise<postGamePlayerRunesAndItems>;
2834
2671
  /** `GET postgame/player_stats/{gameId}/{playerIndex}` */
2835
2672
  getPlayerStats(gameId: number, playerIndex: number): Promise<postGamePlayerStats>;
2836
2673
  /** `GET postgame/player_stats/{gameId}/{teamSide}/{lane}` */
2837
- getPlayerStatsByTeamAndLane(gameId: number, teamSide: Team$1, lane: Lane): Promise<postGamePlayerStats>;
2674
+ getPlayerStatsByTeamAndLane(gameId: number, teamSide: Team, lane: Lane): Promise<postGamePlayerStats>;
2838
2675
  /** `GET postgame/player_stats/mock` */
2839
2676
  getMockPlayerStats(): Promise<postGamePlayerStats>;
2840
2677
  /** `GET postgame/gold/{gameId}` */
@@ -2852,7 +2689,7 @@ declare class PostGameApi {
2852
2689
  /** `POST postgame/active/{componentType}/current` */
2853
2690
  setActiveCurrentPostGameAnalysis(componentType: string, body: unknown): Promise<void>;
2854
2691
  /** `POST postgame/active/{componentType}/current/team/{teamSide}` */
2855
- setActiveCurrentPostGameAnalysisWithTeam(componentType: string, teamSide: Team$1, body: unknown): Promise<void>;
2692
+ setActiveCurrentPostGameAnalysisWithTeam(componentType: string, teamSide: Team, body: unknown): Promise<void>;
2856
2693
  /** `POST postgame/active/{componentType}/current/player/{playerIndex}` */
2857
2694
  setActiveCurrentPostGameAnalysisWithPlayer(componentType: string, playerIndex: number, body: unknown): Promise<void>;
2858
2695
  /** `POST postgame/active/{componentType}/{gameId}` */
@@ -2860,11 +2697,11 @@ declare class PostGameApi {
2860
2697
  /** `POST postgame/active/{componentType}/match/{matchId}` */
2861
2698
  setActivePostGameAnalysisWithMatch(componentType: string, matchId: number, body: unknown): Promise<void>;
2862
2699
  /** `POST postgame/active/{componentType}/{gameId}/team/{teamSide}` */
2863
- setActivePostGameAnalysisWithTeam(componentType: string, gameId: number, teamSide: Team$1, body: unknown): Promise<void>;
2700
+ setActivePostGameAnalysisWithTeam(componentType: string, gameId: number, teamSide: Team, body: unknown): Promise<void>;
2864
2701
  /** `POST postgame/active/{componentType}/{gameId}/player/{playerIndex}` */
2865
2702
  setActivePostGameAnalysisWithPlayer(componentType: string, gameId: number, playerIndex: number, body: unknown): Promise<void>;
2866
2703
  /** `POST postgame/active/{componentType}/{gameId}/player/{teamSide}/{lane}` */
2867
- setActivePostGameAnalysisWithPlayerTeamAndLane(componentType: string, gameId: number, teamSide: Team$1, lane: Lane, body: unknown): Promise<void>;
2704
+ setActivePostGameAnalysisWithPlayerTeamAndLane(componentType: string, gameId: number, teamSide: Team, lane: Lane, body: unknown): Promise<void>;
2868
2705
  /** `GET postgame/active-component` */
2869
2706
  getActivePostGameAnalysis(): Promise<activeComponentChangedEventArgs>;
2870
2707
  /** `DELETE postgame/active-component` */
@@ -2986,11 +2823,11 @@ declare function getItemCooldownFraction(item: itemWithAsset | null | undefined,
2986
2823
  * Seconds remaining until a tab-player respawns.
2987
2824
  * Returns `0` when the player is alive.
2988
2825
  */
2989
- declare function getRespawnRemaining(player: tabPlayer$1 | ingameScoreboardBottomPlayerData | null | undefined, gameTime: number): number;
2826
+ declare function getRespawnRemaining(player: tabPlayer | ingameScoreboardBottomPlayerData | null | undefined, gameTime: number): number;
2990
2827
  /**
2991
2828
  * Whether a player is currently dead.
2992
2829
  */
2993
- declare function isPlayerDead(player: tabPlayer$1 | ingameScoreboardBottomPlayerData | null | undefined, gameTime: number): boolean;
2830
+ declare function isPlayerDead(player: tabPlayer | ingameScoreboardBottomPlayerData | null | undefined, gameTime: number): boolean;
2994
2831
  interface BoundIngameTimerUtils {
2995
2832
  /** Seconds remaining until `readyAt`. Returns `0` when expired or unset. */
2996
2833
  getRemaining(readyAt: number | undefined): number;
@@ -3002,8 +2839,8 @@ interface BoundIngameTimerUtils {
3002
2839
  getItemCooldownRemaining(item: itemWithAsset | null | undefined): number;
3003
2840
  isItemOnCooldown(item: itemWithAsset | null | undefined): boolean;
3004
2841
  getItemCooldownFraction(item: itemWithAsset | null | undefined): number;
3005
- getRespawnRemaining(player: tabPlayer$1 | ingameScoreboardBottomPlayerData | null | undefined): number;
3006
- isPlayerDead(player: tabPlayer$1 | ingameScoreboardBottomPlayerData | null | undefined): boolean;
2842
+ getRespawnRemaining(player: tabPlayer | ingameScoreboardBottomPlayerData | null | undefined): number;
2843
+ isPlayerDead(player: tabPlayer | ingameScoreboardBottomPlayerData | null | undefined): boolean;
3007
2844
  }
3008
2845
  /**
3009
2846
  * Create a set of timer utilities pre-bound to a `gameTime` source.
@@ -3028,6 +2865,11 @@ interface LeagueBroadcastClientConfig {
3028
2865
  ingameWsRoute?: string;
3029
2866
  /** Pre-game (champion select) WebSocket route. @default "/ws/pre" */
3030
2867
  preGameWsRoute?: string;
2868
+ /**
2869
+ * Post-game (analysis) WebSocket route. @default "/ws/post"
2870
+ * Set to `false` to disable the post-game WebSocket connection entirely.
2871
+ */
2872
+ postGameWsRoute?: string | false;
3031
2873
  apiRoute?: string;
3032
2874
  cacheRoute?: string;
3033
2875
  useHttps?: boolean;
@@ -3048,7 +2890,7 @@ interface IngameEventHandlers {
3048
2890
  }
3049
2891
  interface ChampSelectEventHandlers {
3050
2892
  /** Fired for every pick/ban action (hover, lock, ban reveal, phase transition). */
3051
- onAction?: (action: pickBanActionEventArgs$1) => void;
2893
+ onAction?: (action: pickBanActionEventArgs) => void;
3052
2894
  /** Fired when champ select becomes active (first state update with `isActive === true`). */
3053
2895
  onChampSelectStart?: () => void;
3054
2896
  /** Fired when champ select ends (backend sends `isActive === false`). */
@@ -3056,15 +2898,29 @@ interface ChampSelectEventHandlers {
3056
2898
  /** Fired when the frontend route changes (e.g. navigating between pre-game views). */
3057
2899
  onRouteUpdate?: (uri: string) => void;
3058
2900
  }
2901
+ interface PostGameEventHandlers {
2902
+ /** Fired when the backend broadcasts a postgame route change ("postgame-route-change" or "frontend-route-update"). */
2903
+ onRouteUpdate?: (uri: string) => void;
2904
+ /** Fired when postgame mocking is toggled on the backend. */
2905
+ onMockingUpdate?: (mocking: boolean) => void;
2906
+ /** Fired when the active postgame analysis component changes. */
2907
+ onActiveComponentChanged?: (args: activeComponentChangedEventArgs) => void;
2908
+ /** Fired when postgame becomes active via showPostGame(). */
2909
+ onPostGameShow?: (overview: postGameOverview) => void;
2910
+ /** Fired when postgame is hidden/reset. */
2911
+ onPostGameHide?: () => void;
2912
+ }
3059
2913
  /**
3060
2914
  * Main client for connecting to the League Broadcast backend.
3061
2915
  *
3062
- * Internally manages **two** WebSocket connections:
3063
- * - `/ws/in` — real-time in-game data
3064
- * - `/ws/pre` — champion-select (pre-game) data
2916
+ * Internally manages **three** WebSocket connections:
2917
+ * - `/ws/in` — real-time in-game data
2918
+ * - `/ws/pre` — champion-select (pre-game) data
2919
+ * - `/ws/post` — post-game (analysis) data
3065
2920
  *
3066
- * Both connections are opened on {@link connect} (or automatically if
3067
- * `autoConnect` is `true`) and share the same host / port.
2921
+ * All connections are opened on {@link connect} (or automatically if
2922
+ * `autoConnect` is `true`) and share the same host / port. The post-game
2923
+ * connection can be disabled by setting `postGameWsRoute` to `false`.
3068
2924
  *
3069
2925
  * @example
3070
2926
  * ```ts
@@ -3084,11 +2940,18 @@ interface ChampSelectEventHandlers {
3084
2940
  * client.onChampSelectUpdate(data => console.log("Phase:", data.timer.phaseName));
3085
2941
  * client.onChampSelectEvents({ onAction: a => console.log(a) });
3086
2942
  * client.selectChampSelect(s => s.champSelectData.timer);
2943
+ *
2944
+ * // Post-game
2945
+ * const overview = await client.showPostGame();
2946
+ * client.onPostGameUpdate(data => console.log("Winner:", data.overview?.winnerSide));
2947
+ * client.onPostGameEvents({ onActiveComponentChanged: a => console.log(a) });
2948
+ * client.selectPostGame(s => s.postGameData.overview);
3087
2949
  * ```
3088
2950
  */
3089
2951
  declare class LeagueBroadcastClient {
3090
2952
  private ingameWs;
3091
2953
  private preGameWs;
2954
+ private postGameWs;
3092
2955
  private config;
3093
2956
  private _overlayHealth;
3094
2957
  private gameData;
@@ -3096,10 +2959,14 @@ declare class LeagueBroadcastClient {
3096
2959
  private _isTestingEnvironment;
3097
2960
  private champSelectData;
3098
2961
  private champSelectWasActive;
2962
+ private postGameData;
2963
+ private postGameSeedPromise;
3099
2964
  /** Reactive store for **in-game** state. */
3100
2965
  readonly ingameStore: GameStateStore;
3101
2966
  /** Reactive store for **pre-game** (champion select) state. */
3102
2967
  readonly preGameStore: ChampSelectStateStore;
2968
+ /** Reactive store for **post-game** (analysis) state. */
2969
+ readonly postGameStore: PostGameStateStore;
3103
2970
  /**
3104
2971
  * Timer utilities pre-bound to this client's current game time.
3105
2972
  * No need to pass `gameTime` manually — it is read from the latest
@@ -3130,14 +2997,22 @@ declare class LeagueBroadcastClient {
3130
2997
  private ingameEventHandlers;
3131
2998
  private champSelectUpdateHandlers;
3132
2999
  private champSelectEventHandlers;
3000
+ private postGameUpdateHandlers;
3001
+ private postGameEventHandlers;
3133
3002
  constructor(config: LeagueBroadcastClientConfig);
3134
3003
  private _startClock;
3135
3004
  private _stopClock;
3136
3005
  /**
3137
- * Connect to both in-game and pre-game WebSocket endpoints.
3006
+ * Connect to the in-game, pre-game, and (unless disabled) post-game
3007
+ * WebSocket endpoints.
3008
+ *
3009
+ * All connections are attempted in parallel. If any fails the returned
3010
+ * promise rejects, but the other connections may still succeed.
3138
3011
  *
3139
- * Both connections are attempted in parallel. If either fails the returned
3140
- * promise rejects, but the other connection may still succeed.
3012
+ * On a successful post-game connection the current post-game state
3013
+ * (`isMocking`, `activeComponent`) is seeded from the REST API before the
3014
+ * promise resolves, so pages that connect mid-session see the live backend
3015
+ * state instead of stale defaults.
3141
3016
  */
3142
3017
  connect(): Promise<void>;
3143
3018
  /**
@@ -3157,26 +3032,38 @@ declare class LeagueBroadcastClient {
3157
3032
  * Whether the pre-game WebSocket is connected.
3158
3033
  */
3159
3034
  isPreGameConnected(): boolean;
3035
+ /**
3036
+ * Whether the post-game WebSocket is connected.
3037
+ */
3038
+ isPostGameConnected(): boolean;
3160
3039
  /** Get the current in-game data. */
3161
3040
  getIngameData(): ingameFrontendData;
3162
3041
  /** Get the current game state. */
3163
- getIngameState(): GameState$1;
3042
+ getIngameState(): GameState;
3164
3043
  /** Whether the backend is in a testing / replay environment. */
3165
3044
  isInTestingEnvironment(): boolean;
3166
3045
  /** Get the current champion-select state. */
3167
3046
  getChampSelectData(): champSelectStateData;
3168
3047
  /** Whether champion select is currently active. */
3169
3048
  isChampSelectActive(): boolean;
3049
+ /** Get the current post-game state. */
3050
+ getPostGameData(): postGameStateData;
3051
+ /** Whether post-game is currently active. */
3052
+ isPostGameActive(): boolean;
3170
3053
  /** Register a handler for in-game state updates. */
3171
3054
  onIngameStateUpdate(handler: (state: ingameFrontendData) => void): () => void;
3172
3055
  /** Register a handler for in-game status changes (running, paused, out of game). */
3173
- onIngameStatusChange(handler: (status: GameState$1, isTestingEnv: boolean) => void): () => void;
3056
+ onIngameStatusChange(handler: (status: GameState, isTestingEnv: boolean) => void): () => void;
3174
3057
  /** Register handlers for in-game events (kills, objectives, etc.). Returns an unsubscribe function. */
3175
3058
  onIngameEvents(handlers: IngameEventHandlers): () => void;
3176
3059
  /** Register a handler for champ-select state updates. */
3177
3060
  onChampSelectUpdate(handler: (state: champSelectStateData) => void): () => void;
3178
3061
  /** Register handlers for champ-select lifecycle and action events. Returns an unsubscribe function. */
3179
3062
  onChampSelectEvents(handlers: ChampSelectEventHandlers): () => void;
3063
+ /** Register a handler for post-game state updates. */
3064
+ onPostGameUpdate(handler: (state: postGameStateData) => void): () => void;
3065
+ /** Register handlers for post-game lifecycle and analysis events. Returns an unsubscribe function. */
3066
+ onPostGameEvents(handlers: PostGameEventHandlers): () => void;
3180
3067
  /** Register a handler for in-game connection. */
3181
3068
  onIngameConnect(handler: () => void): () => void;
3182
3069
  /** Register a handler for in-game disconnection. */
@@ -3189,6 +3076,12 @@ declare class LeagueBroadcastClient {
3189
3076
  onPreGameDisconnect(handler: () => void): () => void;
3190
3077
  /** Register a handler for pre-game connection errors. */
3191
3078
  onPreGameError(handler: (error: Event) => void): () => void;
3079
+ /** Register a handler for post-game connection. */
3080
+ onPostGameConnect(handler: () => void): () => void;
3081
+ /** Register a handler for post-game disconnection. */
3082
+ onPostGameDisconnect(handler: () => void): () => void;
3083
+ /** Register a handler for post-game connection errors. */
3084
+ onPostGameError(handler: (error: Event) => void): () => void;
3192
3085
  /**
3193
3086
  * Create a subscribable slice of **in-game** state.
3194
3087
  * The slice only notifies listeners when the selected value actually changes.
@@ -3239,6 +3132,30 @@ declare class LeagueBroadcastClient {
3239
3132
  * ```
3240
3133
  */
3241
3134
  watchChampSelect<S>(selector: (snapshot: ChampSelectSnapshot) => S, callback: (value: S, prev: S) => void, equalityFn?: EqualityFn<S>): () => void;
3135
+ /**
3136
+ * Create a subscribable slice of **post-game** (analysis) state.
3137
+ *
3138
+ * ```tsx
3139
+ * const overview = client.selectPostGame(s => s.postGameData.overview);
3140
+ * function Winner() {
3141
+ * const value = useSyncExternalStore(overview.subscribe, overview.getSnapshot);
3142
+ * return <span>{value?.winnerSide}</span>;
3143
+ * }
3144
+ * ```
3145
+ */
3146
+ selectPostGame<S>(selector: (snapshot: PostGameSnapshot) => S, equalityFn?: EqualityFn<S>): Subscribable<S>;
3147
+ /**
3148
+ * Watch a derived **post-game** value and invoke `callback` whenever it
3149
+ * changes. Returns an unsubscribe function.
3150
+ *
3151
+ * ```ts
3152
+ * client.watchPostGame(
3153
+ * s => s.postGameData.overview?.winnerSide,
3154
+ * (winner, prev) => console.log(`Winner: ${prev} → ${winner}`),
3155
+ * );
3156
+ * ```
3157
+ */
3158
+ watchPostGame<S>(selector: (snapshot: PostGameSnapshot) => S, callback: (value: S, prev: S) => void, equalityFn?: EqualityFn<S>): () => void;
3242
3159
  /** Get the base HTTP URL for API requests. */
3243
3160
  getApiUrl(): string;
3244
3161
  /** Get the base URL for cache requests (optionally resolve a path). */
@@ -3253,6 +3170,26 @@ declare class LeagueBroadcastClient {
3253
3170
  private handleChampSelectAction;
3254
3171
  private handleRouteUpdate;
3255
3172
  private endChampSelect;
3173
+ private setupPostGameMessageHandler;
3174
+ /**
3175
+ * Seed `isMocking` and `activeComponent` from the REST API.
3176
+ *
3177
+ * The post-game WebSocket only broadcasts changes, so a client that
3178
+ * connects while mocking is already enabled or a component is already
3179
+ * active would keep the stale defaults until the next broadcast. Runs on
3180
+ * every (re)connect; event handlers fire only for values that actually
3181
+ * changed. Never rejects — a failed request leaves that field untouched.
3182
+ */
3183
+ private seedPostGameState;
3184
+ private handlePostGameRouteUpdate;
3185
+ private handlePostGameMockingUpdate;
3186
+ private handleActiveComponentChanged;
3187
+ /** Fetch the postgame overview (current game, a specific game, or the mock overview when mocking) and activate the postgame state. */
3188
+ showPostGame(gameId?: number): Promise<postGameOverview>;
3189
+ /** Re-fetch the postgame overview using the stored game id / mocking state. No-op when postgame is not active. */
3190
+ refreshPostGame(): Promise<void>;
3191
+ /** Hide / reset the postgame state (preserves `isMocking` and `isConnected`). */
3192
+ hidePostGame(): void;
3256
3193
  }
3257
3194
 
3258
3195
  /**
@@ -3458,7 +3395,7 @@ declare enum Feature {
3458
3395
  */
3459
3396
 
3460
3397
  declare class playerHotkeyDto {
3461
- team?: Team$1;
3398
+ team?: Team;
3462
3399
  role?: Lane;
3463
3400
  }
3464
3401
 
@@ -3476,7 +3413,7 @@ declare class singleIngameHotkeyConfigDto {
3476
3413
  hotkeyModifiers?: string[];
3477
3414
  overlayName: string;
3478
3415
  timePeriod: number;
3479
- team?: Team$1;
3416
+ team?: Team;
3480
3417
  players?: playerHotkeyDto[];
3481
3418
  backgroundColor: string;
3482
3419
  hasSettings: boolean;
@@ -3501,7 +3438,7 @@ declare class singlePostgameHotkeyConfigDto {
3501
3438
  hotkeyCode?: string;
3502
3439
  hotkeyModifiers?: string[];
3503
3440
  backgroundColor: string;
3504
- team?: Team$1;
3441
+ team?: Team;
3505
3442
  playerIndex?: number;
3506
3443
  allowPlayers: boolean;
3507
3444
  allowTeams: boolean;
@@ -3529,7 +3466,7 @@ declare class casterModeConfigDto {
3529
3466
  declare class ingameStateSettingsWrapper {
3530
3467
  timePeriod?: number;
3531
3468
  show: boolean;
3532
- team?: Team$1;
3469
+ team?: Team;
3533
3470
  players?: playerHotkeyDto[];
3534
3471
  overlaysToDisable: number[];
3535
3472
  customSettings: {
@@ -3644,7 +3581,7 @@ declare enum TeamColorType {
3644
3581
  declare class colorStyle {
3645
3582
  color: string;
3646
3583
  useTeamColor?: TeamColorType;
3647
- useSideColor?: Team$1;
3584
+ useSideColor?: Team;
3648
3585
  image?: colorImageData;
3649
3586
  gradient?: colorGradientData;
3650
3587
  }
@@ -5801,21 +5738,6 @@ declare class ingameStateMessage {
5801
5738
  events?: transitionEvents;
5802
5739
  }
5803
5740
 
5804
- /**
5805
- * This is an auto-generated file.
5806
- * Any changes made to this file can be lost when this file is regenerated.
5807
- */
5808
-
5809
- declare class pickBanActionEventArgs {
5810
- type: string;
5811
- subType: string;
5812
- actorId: number;
5813
- id: number;
5814
- gameTeamId: number;
5815
- champion?: championData;
5816
- puuid?: string;
5817
- }
5818
-
5819
5741
  /**
5820
5742
  * This is an auto-generated file.
5821
5743
  * Any changes made to this file can be lost when this file is regenerated.
@@ -5856,7 +5778,7 @@ declare class activeComponentChangedMessage {
5856
5778
  gameId?: number;
5857
5779
  matchId?: number;
5858
5780
  playerIndex?: number;
5859
- team?: Team$1;
5781
+ team?: Team;
5860
5782
  componentSettings?: {
5861
5783
  [key: string]: string;
5862
5784
  };
@@ -6064,7 +5986,7 @@ declare enum DatabaseUpdateType {
6064
5986
 
6065
5987
  declare class gameDatabaseUpdateMessage {
6066
5988
  type: string;
6067
- game: gameWithTeams$1;
5989
+ game: gameWithTeams;
6068
5990
  updateType: DatabaseUpdateType;
6069
5991
  }
6070
5992
 
@@ -6075,7 +5997,7 @@ declare class gameDatabaseUpdateMessage {
6075
5997
 
6076
5998
  declare class gameStatusMessage {
6077
5999
  type: string;
6078
- gameState: GameState$1;
6000
+ gameState: GameState;
6079
6001
  isTestingEnvironment?: boolean;
6080
6002
  }
6081
6003
 
@@ -6086,7 +6008,7 @@ declare class gameStatusMessage {
6086
6008
 
6087
6009
  declare class gameTeamSidesSwappedMessage {
6088
6010
  type: string;
6089
- game: gameWithTeams$1;
6011
+ game: gameWithTeams;
6090
6012
  }
6091
6013
 
6092
6014
  /**
@@ -6190,19 +6112,6 @@ declare class partialStrokeProperties {
6190
6112
  lineStyle?: StrokeLineStyle;
6191
6113
  }
6192
6114
 
6193
- /**
6194
- * This is an auto-generated file.
6195
- * Any changes made to this file can be lost when this file is regenerated.
6196
- */
6197
- declare class seasonData {
6198
- seasonId: number;
6199
- seasonName: string;
6200
- isActive: boolean;
6201
- startDate?: Date;
6202
- endDate?: Date;
6203
- iconUri?: string;
6204
- }
6205
-
6206
6115
  /**
6207
6116
  * This is an auto-generated file.
6208
6117
  * Any changes made to this file can be lost when this file is regenerated.
@@ -6264,7 +6173,7 @@ declare class styleVariantUpdateMessage {
6264
6173
 
6265
6174
  declare class teamDatabaseUpdateMessage {
6266
6175
  type: string;
6267
- team: teamWithMembers$1;
6176
+ team: teamWithMembers;
6268
6177
  updateType: DatabaseUpdateType;
6269
6178
  }
6270
6179
 
@@ -6378,11 +6287,11 @@ declare class postGamePlayerInfo {
6378
6287
  */
6379
6288
 
6380
6289
  declare class postGamePlayerPage {
6381
- champion: simpleChampionData$1;
6290
+ champion: simpleChampionData;
6382
6291
  nameWithTag: string;
6383
6292
  displayName: string;
6384
6293
  description?: string;
6385
- team?: teamWithMembers$1;
6294
+ team?: teamWithMembers;
6386
6295
  }
6387
6296
 
6388
6297
  /**
@@ -7733,37 +7642,6 @@ declare enum Interval {
7733
7642
  year = 3
7734
7643
  }
7735
7644
 
7736
- /**
7737
- * This is an auto-generated file.
7738
- * Any changes made to this file can be lost when this file is regenerated.
7739
- */
7740
-
7741
- declare class addMatchRequestArgs {
7742
- name?: string;
7743
- type: BestOfType$1;
7744
- teams: number[];
7745
- isCurrent: boolean;
7746
- onStage?: boolean;
7747
- seasonId?: number;
7748
- nextMatchId?: number;
7749
- winnerNextMatchId?: number;
7750
- loserNextMatchId?: number;
7751
- matchDate?: string;
7752
- timePerGame?: number;
7753
- ruleSet: string;
7754
- }
7755
-
7756
- /**
7757
- * This is an auto-generated file.
7758
- * Any changes made to this file can be lost when this file is regenerated.
7759
- */
7760
-
7761
- declare class optionalMatchData {
7762
- date?: Date;
7763
- ruleSet?: MatchRuleSet$1;
7764
- onStage?: boolean;
7765
- }
7766
-
7767
7645
  /**
7768
7646
  * This is an auto-generated file.
7769
7647
  * Any changes made to this file can be lost when this file is regenerated.
@@ -8169,4 +8047,85 @@ interface NormalizedDamageEntry {
8169
8047
  */
8170
8048
  declare function normalizeDamageEntries(entries: damageRecapEntry[], limit?: number): NormalizedDamageEntry[];
8171
8049
 
8172
- export { ActionSubType, ActionType, type AggregatedSpellEntry, AnnouncementType, ApiClient, ApiError, AppTheme, AssetType, BestOfType$1 as BestOfType, type BoundIngameTimerUtils, CacheOperation, CampLocation, type ChampSelectEventHandlers, type ChampSelectSnapshot, ChampSelectStateStore, ChampionIconType, CombinedViewTransitionType, ContentAlign, CustomOverlayMode, type DamageBarSegment, DamageEventType, DamageSplitMode, DamageType, DatabaseUpdateType, DevServerStatus, type EntityType, type EqualityFn, Feature, GameApi, GameState$1 as GameState, GameStateApi, type GameStateSnapshot, GameStateStore, GradientType, HeroStatsDisplayMode, IngameApi, type IngameEventHandlers, IngameObjectiveType, IngameSideInfoPageType, Interval, Lane, LeagueBroadcastClient, type LeagueBroadcastClientConfig, MAGIC_COLOR, MatchApi, MatchRuleSet$1 as MatchRuleSet, type NormalizedDamageEntry, ObjectFit, ObjectiveEventType, ObjectiveRecapDisplayMode, PHYS_COLOR, PaymentInterval, PickBanPhase, PostGameApi, PostGameDataType, damageBarStyle as PostgameDamageBarStyle, PreGameApi, divider as PregameDivider, ResourceType, RestApi, ScoreDisplayMode, ScoreDotBorderMode, SeasonApi, SetPhaseType, SpellClassification, SpellSlotIndex, StrokeLayer, StrokeLineStyle, StrokeTipStyle, type Subscribable, TRUE_COLOR, Team$1 as Team, TeamColorType, TeamMemberRole, TextOrientation, Tier, TimeLineActionType, TransitionType, WebSocketManager, WindowType, WritingMode, activeComponentChangedEventArgs, activeComponentChangedMessage, addMatchRequestArgs, aggregateSpellEntries, announcementParameter, announcerColors, announcerEvent, announcerUniversalStyle, applicationLifetimeMessage, applicationNotificationCompletedMessage, applicationNotificationMessage, authHelloMessage, authHelloOkMessage, banSlot, banSlotLayoutStyling, banStyle, barStyle, billingCycle, borderStyle, bottomRowPickBanStyle, bottomRowSizeStyle, bottomRowTeamStyle, bottomRowTournamentData, brushPresetsChangedMessage, cDragonPerkInfo, casterModeConfigDto, centerContent, centerContentLayoutStyling, centerContentStyling, champSelectActionMessage, champSelectStateData, champSelectStateMessage, champSelectStateMetaData, champSelectStatePerformanceData, championAbilityData, championCombatStats, championContainer, championData, championDetailData, championIamgeStyle, championIconStyle, championImage, championImageStyle, championRuneStat, championSelectEUStyle, championSelectTeam, championSkinInfo, championSlot, championStackStyle, championStatistics, championStats, championStatsContainer, championStatusStyle, championTabContainerStyle, championTabNameStyle, championTabsStyle, championUltimateStyle, championsSlot, changeDetectionResponse, changeEmailRequest, changeEmailResponse, changePasswordRequest, chatVoteOption, chatVoteResultDto, checkoutCompleteResponse, checkoutRequestDTO, choiceBar, choiceTitel, choiceVotes, cloudOverlayDownloadResponse, cloudOverlayMetadata, cloudOverlayUploadRequest, cloudOverlayUploadResponse, cloudOverlaysResponse, cloudStyleSetDownloadResponse, cloudStyleSetMetadata, cloudStyleSetUploadRequest, cloudStyleSetUploadResponse, cloudStyleSetsResponse, cloudSyncConfig, cloudSyncResult, coachSlot, colorByDamageType, colorComponentStyling, colorGradientData, colorImageData, colorRGBA, colorStop, colorStyle, colorStyling, combinedViewStyle, combinedViewTransitionStyle, communityDragonCacheProgressMessage, communityDragonV2ProgressMessage, communityDragonV2StatusMessage, componentStyle, contentContainerStyle, createChoice, createIngameTimerUtils, createPollDto, createPredictionDto, creepScore, curveStyle, customOverlay, customOverlayDescriptor, customOverlayUpdateMessage, damageBarSegments, damageBarStyle$1 as damageBarStyle, damageCompositionBarStyle, damageCompositionColors, damageCompositionDonutStyle, damageCompositionPlayer, damageCompositionStyle, damageCompositionTeam, damageDealtStyle, damageEventHistoryEntry, damageEventHistoryUpdateMessage, damageFlow, damageFlowEdge, damageFlowNode, damageFlowNodeStyle, damageFlowRibbonStyle, damageGraphEntry, damageGraphSide, damageRecapDamageBarStyle, damageRecapEntry, damageRecapEntryStyle, damageRecapSpellEntry, damageRecapStyle, damageRecapTimelineEntry, damageSplitBarStyle, damageSplitEntryStyle, damageSplitSpellEntry, damageSplitStyle, damageSplitTargetEntry, damageStatsStyle, devServerState, displayColorData, divider$1 as divider, dmgTypeColor, drawingEventMessage, drawingStateMessage, drawingStateRequestMessage, drawingStrokeDto, emailConfirmRequest, emailForgotPasswordRequest, emailLoginRequest, emailResendCodeRequest, emailResetPasswordRequest, emailSignUpRequest, endPollDto, endPredictionDto, fearLessByGame, fearLessSingleRow, fearlessChampionImage, fearlessDraftStyle, fearlessDraftStylePregame, fearlessTree, fearlessTreeBanRowStyle, fearlessTreeConnectorStyle, fearlessTreeGameNodeStyle, fearlessTreeHeaderStyle, fontsChangedMessage, formatDamage, frontendRouteUpdateMessage, fullPlayerScoreboardSlots, gameAnalysis, gameDatabaseUpdateMessage, gameInfoRotation, gameStatusMessage, gameTeamSidesSwappedMessage, gameTimer, gameTimerStyle, gameWithTeams$1 as gameWithTeams, getAbilityCooldownFraction, getAbilityCooldownRemaining, getDamageByType, getItemCooldownFraction, getItemCooldownRemaining, getRemaining, getRespawnRemaining, getRoleQuest, getSortedInventory, getTrinket, globalPosition, globalScoreboard, globalScoreboardBooleanIndicator, globalScoreboardSection, globalStyleProperties, goldAdvantage, goldEfficiencyEntry, goldEfficiencyHeaderStyle, goldEfficiencyHeatStyle, goldEfficiencyPlayerRowStyle, goldEfficiencyStyle, goldGraph, goldGraphStyle, gridLineStyle, headline, healthBarStyle, hotkeyFiredMessage, hubErrorMessage, hubMemberDto, hubPingMessage, hubPongMessage, type iApplicationNotification, type iApplicationNotificationResponse, type iHeroNamed, type iObjectiveRespawnData, type iSpellObjectResource, type iWebsocketMessage, imageComponentStyle, imageStyle, infoContentColorStyling, infoContentLayoutStyling, infoContentTextStyle, infoRow, ingameAbilityInfo, ingameDamageCompositionData, ingameDamageFlowData, ingameDamageGraphData, ingameDamageRecapData, ingameDamageSplitData, ingameExperienceData, ingameFrontendData, ingameGoldEfficiencyData, ingameGoldGraphData, ingameHealthData, ingameKillParticipationData, ingameObjectiveDpsData, ingameObjectiveEvent, ingameObjectivePowerPlay, ingameResourceData, ingameRewindMessage, ingameRuneData, ingameScoreboardBottomData, ingameScoreboardBottomPlayerData, ingameScoreboardBottomTeamData, ingameScoreboardData, ingameScoreboardTeamData, ingameSideInfoPage, ingameSideInfoPageDisplayData, ingameSideInfoPageRow, ingameSingleRuneData, ingameSkinDisplayData, ingameSkinDisplayPlayerData, ingameSkinDisplayTeamData, ingameStateMessage, ingameStateSettingsWrapper, ingameTeamfightTimelineData, ingameTelemetry, ingameTelemetryMessage, inhibitorRespawnData, inhibitorTimer, inhibitorTimerContainer, inhibitorTimerDual, inhibitorTimerIconContainer, inhibitorTimerSingle, inhibitorTimerTimerContainer, isAbilityOnCooldown, isActive, isItemOnCooldown, isPlayerDead, itemAsset, itemIcon, itemSlot, itemStats, itemWithAsset, killFeed, killFeedAssistersStyle, killFeedContainerStyle, killFeedEntryStyle, killFeedEvent, killFeedIconStyle, killFeedKillIconStyle, killParticipationLink, killParticipationPlayer, killParticipationStyle, lFrameRotation, laneIconStyle, laneRowLayoutStyle, layoutComponentStyling, layoutStyle, legacyPickBanStyle, levelXpTrackerStyle, lineStyle, localSyncState, localizedPriceData, matchCardStyle, matchData$1 as matchData, matchDatabaseUpdateMessage, matchOverviewData, matchOverviewGameSummary, matchOverviewTeamSummary, matchSummaryStyle, matchWithGamesAndTeams, matchupGridStyle, matchupHeaderStyle, matchupOverview, matchupOverviewGameRowStyle, matchupOverviewHeaderStyle, matchupOverviewTeamBarStyle, matchupScoreStyle, matchupTable, matchupTableContentStyle, matchupVersusStyle, normalizeDamageEntries, numberContainerStyle, objectiveDamagePerTeamStyle, objectiveDpsBarStyle, objectiveDpsHeaderStyle, objectiveDpsSample, objectiveDpsSmiteStrip, objectiveDpsTeamNumbersStyle, objectiveList, objectiveRecapCardStyle, objectiveRecapHeaderStyle, objectiveRecapSmiteBarStyle, objectiveRecapStyle, objectiveTimer, optionBar, optionTitel, optionVotes, optionalGameData, optionalMatchData, optionalTextStyle, partialStrokeProperties, perkData, perkInfoV2, perkStyleInfoV2, phaseTimer, phaseTimerColorStyling, phaseTimerLayoutStyling, pickBanActionEventArgs, pickBanTimer, pickBans, pickSlot, planDescriptorRecord, planDetails, playerDeath, playerHotkeyDto, playerKDA, playerScoreboard, playerScoreboardContainer, playerScoreboardGoldComparison, playerScoreboardSlot, playerSlot, playerSlotColorStyling, playerSlotLayoutStyling, playerSlotPickingStyle, playerSlotStyle, playerUpdateEvent, playerXpLevelStyle, pollChoice, pollWrapper, portalSessionResponse, postGameDamageGraph, postGameDamageGraphByTeam, postGameDamageGraphEntry, postGameGoldGraph, postGameOverview, postGamePlayerInfo, postGamePlayerPage, postGamePlayerRunesAndItems, postGamePlayerStats, postGameTeamInfo, postGameTeamOverview, predictionBar, predictionOutcome, predictionOutcomeRequest, predictionPoints, predictionWrapper, profileResponse, progressBarStyle, registerOverlayRequest, respawnTimer, roleQuestSlot, roomJoinMessage, roomJoinedMessage, roomLeaveMessage, roomMemberJoinedMessage, roomMemberLeftMessage, runeContainer, runeDisplayPerkStyle, runeDisplayStyle, runeDisplayTeamStyle, runeIcon, runeStyle, scoreStyle, scoreboardChampionSlot, scoreboardDamageGraphStyle, seasonData, seasonDatabaseUpdateMessage, shallowEqual, simpleChampionData$1 as simpleChampionData, singleChampionDetailHotkeyConfigDto, singleGameGoldGraph, singleGameGoldGraphData, singleIngameHotkeyConfigDto, singlePostgameHotkeyConfigDto, skinDisplayInfoStyle, skinDisplayPoweredByStyle, skinDisplayRoleIconStyle, skinDisplayStyle, smiteReactionBadgeStyle, smiteReactionPoweredByStyle, smiteReactionResult, smiteReactionRingStyle, smiteReactionStyle, smiteReactionTextStyle, spawnTimer, spawnTimerIconContainerStyle, spawnTimerInfoContainerStyle, spawnTimerStyle, startChatVoteDto, startCheckoutResponse, strokePropertiesChangedMessage, styleSet, styleSetEntry, styleSetNameCollection, styleSetUpdatedMessage, styleVariantUpdateMessage, styleVariantUpdatedEventArgs, summonerSpellData, summonerSpellInfoV2, tabLevelUpStyle, tabPlayer$1 as tabPlayer, tabTeam, tabsStyle, teamColorStyling, teamDamageStyle, teamData, teamDatabaseUpdateMessage, teamFightDamageStyle, teamIconStyle, teamInfo, teamInfoStyle, teamInhibitorData, teamLayoutStyling, teamMember, teamName, teamScore, teamScores, teamSummaryStyle, teamTextStyle, teamUpdateResults, teamWithMembers$1 as teamWithMembers, teamfightDamageEntryStyle, teamfightDeathIconStyle, teamfightKillEvent, teamfightTimelinePlayer, teamfightTimelineSample, teamfightTimelineStyle, teamsAndTimerStyle, textComponentStyling, textContentWithStyle, textOutline, textStyle, textStyleWithBorder, textWithContent, timelineEntry, timerBadgePoll, timerBadgePrediction, timerBarStyle, timerTeamStyle, totalBadge, totalVotes, tournamentData, tournamentLogo, transitionEvents, transitionStyle, turretPlatingFallEvent, twitchChatVote, twitchPoll, twitchPollDto, twitchPrediction, twitchPredictionDto, twitchStatusDTO, ultiAbilityStyle, updateNameRequest, updateOverlayRequest, userFeaturesUpdatedMessage, userTierUpdatedMessage, vector3, verifyEmailRequest, voteWrapper, websocketMessageTypes };
8050
+ /**
8051
+ * Returns the sorted numeric side keys present in a post-game overview.
8052
+ *
8053
+ * Prefers the keys of `teamOverviewBySide`; falls back to `teamInfoBySide`
8054
+ * when no overview-by-side data is present.
8055
+ *
8056
+ * @example
8057
+ * ```ts
8058
+ * getPostGameSides(overview); // [100, 200]
8059
+ * ```
8060
+ */
8061
+ declare function getPostGameSides(overview: postGameOverview): number[];
8062
+ /**
8063
+ * Flattens a `singleGameGoldGraph.goldAtTime` map into a chronological series.
8064
+ *
8065
+ * Each entry pairs a numeric `time` with the per-side gold map at that time.
8066
+ * Entries are sorted ascending by numeric time.
8067
+ *
8068
+ * @example
8069
+ * ```ts
8070
+ * buildGoldSeries(graph);
8071
+ * // [{ time: 0, goldBySide: { 100: 2500, 200: 2500 } }, ...]
8072
+ * ```
8073
+ */
8074
+ declare function buildGoldSeries(graph: singleGameGoldGraph): {
8075
+ time: number;
8076
+ goldBySide: Record<number, number>;
8077
+ }[];
8078
+ /**
8079
+ * Builds a gold-difference series relative to a reference side.
8080
+ *
8081
+ * For each timestamp the value is `referenceSide gold - other side gold`.
8082
+ * A positive value means the reference side is ahead. When more than two
8083
+ * sides are present, all non-reference sides are summed as "other".
8084
+ * `referenceSide` defaults to the lowest numeric side key in the series.
8085
+ *
8086
+ * @example
8087
+ * ```ts
8088
+ * buildGoldDiffSeries(graph); // reference = lowest side
8089
+ * buildGoldDiffSeries(graph, 200); // reference = side 200
8090
+ * ```
8091
+ */
8092
+ declare function buildGoldDiffSeries(graph: singleGameGoldGraph, referenceSide?: number): {
8093
+ time: number;
8094
+ diff: number;
8095
+ }[];
8096
+ /**
8097
+ * Formats a duration in seconds as a game clock string.
8098
+ *
8099
+ * Renders `M:SS` (or `MM:SS`) below an hour and `H:MM:SS` from one hour up.
8100
+ * Negative inputs are clamped to `0`.
8101
+ *
8102
+ * @example
8103
+ * ```ts
8104
+ * formatGameClock(75); // "1:15"
8105
+ * formatGameClock(605); // "10:05"
8106
+ * formatGameClock(3661); // "1:01:01"
8107
+ * formatGameClock(-5); // "0:00"
8108
+ * ```
8109
+ */
8110
+ declare function formatGameClock(seconds: number): string;
8111
+ /**
8112
+ * Sums the damage across all entries of a team's damage graph.
8113
+ *
8114
+ * @example
8115
+ * ```ts
8116
+ * damageGraphTeamTotal(team); // 84210
8117
+ * ```
8118
+ */
8119
+ declare function damageGraphTeamTotal(team: postGameDamageGraphByTeam): number;
8120
+ /**
8121
+ * Returns a new array of damage entries sorted by total damage descending.
8122
+ * Non-mutating — the input array is left untouched.
8123
+ *
8124
+ * @example
8125
+ * ```ts
8126
+ * sortDamageEntries(team.entries); // highest-damage entry first
8127
+ * ```
8128
+ */
8129
+ declare function sortDamageEntries(entries: postGameDamageGraphEntry[]): postGameDamageGraphEntry[];
8130
+
8131
+ export { ActionSubType, ActionType, type AggregatedSpellEntry, AnnouncementType, ApiClient, ApiError, AppTheme, AssetType, BestOfType, type BoundIngameTimerUtils, CacheOperation, CampLocation, type ChampSelectEventHandlers, type ChampSelectSnapshot, ChampSelectStateStore, ChampionIconType, CombinedViewTransitionType, ContentAlign, CustomOverlayMode, type DamageBarSegment, DamageEventType, DamageSplitMode, DamageType, DatabaseUpdateType, DevServerStatus, type EntityType, type EqualityFn, Feature, GameApi, GameState, GameStateApi, type GameStateSnapshot, GameStateStore, GradientType, HeroStatsDisplayMode, IngameApi, type IngameEventHandlers, IngameObjectiveType, IngameSideInfoPageType, Interval, Lane, LeagueBroadcastClient, type LeagueBroadcastClientConfig, MAGIC_COLOR, MatchApi, MatchRuleSet, type NormalizedDamageEntry, ObjectFit, ObjectiveEventType, ObjectiveRecapDisplayMode, PHYS_COLOR, PaymentInterval, PickBanPhase, PostGameApi, PostGameDataType, type PostGameEventHandlers, type PostGameSnapshot, PostGameStateStore, damageBarStyle as PostgameDamageBarStyle, PreGameApi, divider as PregameDivider, ResourceType, RestApi, ScoreDisplayMode, ScoreDotBorderMode, SeasonApi, SetPhaseType, SpellClassification, SpellSlotIndex, StrokeLayer, StrokeLineStyle, StrokeTipStyle, type Subscribable, TRUE_COLOR, Team, TeamColorType, TeamMemberRole, TextOrientation, Tier, TimeLineActionType, TransitionType, WebSocketManager, WindowType, WritingMode, activeComponentChangedEventArgs, activeComponentChangedMessage, addMatchRequestArgs, aggregateSpellEntries, announcementParameter, announcerColors, announcerEvent, announcerUniversalStyle, applicationLifetimeMessage, applicationNotificationCompletedMessage, applicationNotificationMessage, authHelloMessage, authHelloOkMessage, banSlot, banSlotLayoutStyling, banStyle, barStyle, billingCycle, borderStyle, bottomRowPickBanStyle, bottomRowSizeStyle, bottomRowTeamStyle, bottomRowTournamentData, brushPresetsChangedMessage, buildGoldDiffSeries, buildGoldSeries, cDragonPerkInfo, casterModeConfigDto, centerContent, centerContentLayoutStyling, centerContentStyling, champSelectActionMessage, champSelectStateData, champSelectStateMessage, champSelectStateMetaData, champSelectStatePerformanceData, championAbilityData, championCombatStats, championContainer, championData, championDetailData, championIamgeStyle, championIconStyle, championImage, championImageStyle, championRuneStat, championSelectEUStyle, championSelectTeam, championSkinInfo, championSlot, championStackStyle, championStatistics, championStats, championStatsContainer, championStatusStyle, championTabContainerStyle, championTabNameStyle, championTabsStyle, championUltimateStyle, championsSlot, changeDetectionResponse, changeEmailRequest, changeEmailResponse, changePasswordRequest, chatVoteOption, chatVoteResultDto, checkoutCompleteResponse, checkoutRequestDTO, choiceBar, choiceTitel, choiceVotes, cloudOverlayDownloadResponse, cloudOverlayMetadata, cloudOverlayUploadRequest, cloudOverlayUploadResponse, cloudOverlaysResponse, cloudStyleSetDownloadResponse, cloudStyleSetMetadata, cloudStyleSetUploadRequest, cloudStyleSetUploadResponse, cloudStyleSetsResponse, cloudSyncConfig, cloudSyncResult, coachSlot, colorByDamageType, colorComponentStyling, colorGradientData, colorImageData, colorRGBA, colorStop, colorStyle, colorStyling, combinedViewStyle, combinedViewTransitionStyle, communityDragonCacheProgressMessage, communityDragonV2ProgressMessage, communityDragonV2StatusMessage, componentStyle, contentContainerStyle, createChoice, createIngameTimerUtils, createPollDto, createPredictionDto, creepScore, curveStyle, customOverlay, customOverlayDescriptor, customOverlayUpdateMessage, damageBarSegments, damageBarStyle$1 as damageBarStyle, damageCompositionBarStyle, damageCompositionColors, damageCompositionDonutStyle, damageCompositionPlayer, damageCompositionStyle, damageCompositionTeam, damageDealtStyle, damageEventHistoryEntry, damageEventHistoryUpdateMessage, damageFlow, damageFlowEdge, damageFlowNode, damageFlowNodeStyle, damageFlowRibbonStyle, damageGraphEntry, damageGraphSide, damageGraphTeamTotal, damageRecapDamageBarStyle, damageRecapEntry, damageRecapEntryStyle, damageRecapSpellEntry, damageRecapStyle, damageRecapTimelineEntry, damageSplitBarStyle, damageSplitEntryStyle, damageSplitSpellEntry, damageSplitStyle, damageSplitTargetEntry, damageStatsStyle, devServerState, displayColorData, divider$1 as divider, dmgTypeColor, drawingEventMessage, drawingStateMessage, drawingStateRequestMessage, drawingStrokeDto, emailConfirmRequest, emailForgotPasswordRequest, emailLoginRequest, emailResendCodeRequest, emailResetPasswordRequest, emailSignUpRequest, endPollDto, endPredictionDto, fearLessByGame, fearLessSingleRow, fearlessChampionImage, fearlessDraftStyle, fearlessDraftStylePregame, fearlessTree, fearlessTreeBanRowStyle, fearlessTreeConnectorStyle, fearlessTreeGameNodeStyle, fearlessTreeHeaderStyle, fontsChangedMessage, formatDamage, formatGameClock, frontendRouteUpdateMessage, fullPlayerScoreboardSlots, gameAnalysis, gameDatabaseUpdateMessage, gameInfoRotation, gameStatusMessage, gameTeamSidesSwappedMessage, gameTimer, gameTimerStyle, gameWithTeams, getAbilityCooldownFraction, getAbilityCooldownRemaining, getDamageByType, getItemCooldownFraction, getItemCooldownRemaining, getPostGameSides, getRemaining, getRespawnRemaining, getRoleQuest, getSortedInventory, getTrinket, globalPosition, globalScoreboard, globalScoreboardBooleanIndicator, globalScoreboardSection, globalStyleProperties, goldAdvantage, goldEfficiencyEntry, goldEfficiencyHeaderStyle, goldEfficiencyHeatStyle, goldEfficiencyPlayerRowStyle, goldEfficiencyStyle, goldGraph, goldGraphStyle, gridLineStyle, headline, healthBarStyle, hotkeyFiredMessage, hubErrorMessage, hubMemberDto, hubPingMessage, hubPongMessage, type iApplicationNotification, type iApplicationNotificationResponse, type iHeroNamed, type iObjectiveRespawnData, type iSpellObjectResource, type iWebsocketMessage, imageComponentStyle, imageStyle, infoContentColorStyling, infoContentLayoutStyling, infoContentTextStyle, infoRow, ingameAbilityInfo, ingameDamageCompositionData, ingameDamageFlowData, ingameDamageGraphData, ingameDamageRecapData, ingameDamageSplitData, ingameExperienceData, ingameFrontendData, ingameGoldEfficiencyData, ingameGoldGraphData, ingameHealthData, ingameKillParticipationData, ingameObjectiveDpsData, ingameObjectiveEvent, ingameObjectivePowerPlay, ingameResourceData, ingameRewindMessage, ingameRuneData, ingameScoreboardBottomData, ingameScoreboardBottomPlayerData, ingameScoreboardBottomTeamData, ingameScoreboardData, ingameScoreboardTeamData, ingameSideInfoPage, ingameSideInfoPageDisplayData, ingameSideInfoPageRow, ingameSingleRuneData, ingameSkinDisplayData, ingameSkinDisplayPlayerData, ingameSkinDisplayTeamData, ingameStateMessage, ingameStateSettingsWrapper, ingameTeamfightTimelineData, ingameTelemetry, ingameTelemetryMessage, inhibitorRespawnData, inhibitorTimer, inhibitorTimerContainer, inhibitorTimerDual, inhibitorTimerIconContainer, inhibitorTimerSingle, inhibitorTimerTimerContainer, isAbilityOnCooldown, isActive, isItemOnCooldown, isPlayerDead, itemAsset, itemIcon, itemSlot, itemStats, itemWithAsset, killFeed, killFeedAssistersStyle, killFeedContainerStyle, killFeedEntryStyle, killFeedEvent, killFeedIconStyle, killFeedKillIconStyle, killParticipationLink, killParticipationPlayer, killParticipationStyle, lFrameRotation, laneIconStyle, laneRowLayoutStyle, layoutComponentStyling, layoutStyle, legacyPickBanStyle, levelXpTrackerStyle, lineStyle, localSyncState, localizedPriceData, matchCardStyle, matchData, matchDatabaseUpdateMessage, matchOverviewData, matchOverviewGameSummary, matchOverviewTeamSummary, matchSummaryStyle, matchWithGamesAndTeams, matchupGridStyle, matchupHeaderStyle, matchupOverview, matchupOverviewGameRowStyle, matchupOverviewHeaderStyle, matchupOverviewTeamBarStyle, matchupScoreStyle, matchupTable, matchupTableContentStyle, matchupVersusStyle, normalizeDamageEntries, numberContainerStyle, objectiveDamagePerTeamStyle, objectiveDpsBarStyle, objectiveDpsHeaderStyle, objectiveDpsSample, objectiveDpsSmiteStrip, objectiveDpsTeamNumbersStyle, objectiveList, objectiveRecapCardStyle, objectiveRecapHeaderStyle, objectiveRecapSmiteBarStyle, objectiveRecapStyle, objectiveTimer, optionBar, optionTitel, optionVotes, optionalGameData, optionalMatchData, optionalTextStyle, partialStrokeProperties, perkData, perkInfoV2, perkStyleInfoV2, phaseTimer, phaseTimerColorStyling, phaseTimerLayoutStyling, pickBanActionEventArgs, pickBanTimer, pickBans, pickSlot, planDescriptorRecord, planDetails, playerDeath, playerHotkeyDto, playerKDA, playerScoreboard, playerScoreboardContainer, playerScoreboardGoldComparison, playerScoreboardSlot, playerSlot, playerSlotColorStyling, playerSlotLayoutStyling, playerSlotPickingStyle, playerSlotStyle, playerUpdateEvent, playerXpLevelStyle, pollChoice, pollWrapper, portalSessionResponse, postGameDamageGraph, postGameDamageGraphByTeam, postGameDamageGraphEntry, postGameGoldGraph, postGameOverview, postGamePlayerInfo, postGamePlayerPage, postGamePlayerRunesAndItems, postGamePlayerStats, postGameStateData, postGameTeamInfo, postGameTeamOverview, predictionBar, predictionOutcome, predictionOutcomeRequest, predictionPoints, predictionWrapper, profileResponse, progressBarStyle, registerOverlayRequest, respawnTimer, roleQuestSlot, roomJoinMessage, roomJoinedMessage, roomLeaveMessage, roomMemberJoinedMessage, roomMemberLeftMessage, runeContainer, runeDisplayPerkStyle, runeDisplayStyle, runeDisplayTeamStyle, runeIcon, runeStyle, scoreStyle, scoreboardChampionSlot, scoreboardDamageGraphStyle, seasonData, seasonDatabaseUpdateMessage, shallowEqual, simpleChampionData, singleChampionDetailHotkeyConfigDto, singleGameGoldGraph, singleGameGoldGraphData, singleIngameHotkeyConfigDto, singlePostgameHotkeyConfigDto, skinDisplayInfoStyle, skinDisplayPoweredByStyle, skinDisplayRoleIconStyle, skinDisplayStyle, smiteReactionBadgeStyle, smiteReactionPoweredByStyle, smiteReactionResult, smiteReactionRingStyle, smiteReactionStyle, smiteReactionTextStyle, sortDamageEntries, spawnTimer, spawnTimerIconContainerStyle, spawnTimerInfoContainerStyle, spawnTimerStyle, startChatVoteDto, startCheckoutResponse, strokePropertiesChangedMessage, styleSet, styleSetEntry, styleSetNameCollection, styleSetUpdatedMessage, styleVariantUpdateMessage, styleVariantUpdatedEventArgs, summonerSpellData, summonerSpellInfoV2, tabLevelUpStyle, tabPlayer, tabTeam, tabsStyle, teamColorStyling, teamDamageStyle, teamData, teamDatabaseUpdateMessage, teamFightDamageStyle, teamIconStyle, teamInfo, teamInfoStyle, teamInhibitorData, teamLayoutStyling, teamMember, teamName, teamScore, teamScores, teamSummaryStyle, teamTextStyle, teamUpdateResults, teamWithMembers, teamfightDamageEntryStyle, teamfightDeathIconStyle, teamfightKillEvent, teamfightTimelinePlayer, teamfightTimelineSample, teamfightTimelineStyle, teamsAndTimerStyle, textComponentStyling, textContentWithStyle, textOutline, textStyle, textStyleWithBorder, textWithContent, timelineEntry, timerBadgePoll, timerBadgePrediction, timerBarStyle, timerTeamStyle, totalBadge, totalVotes, tournamentData, tournamentLogo, transitionEvents, transitionStyle, turretPlatingFallEvent, twitchChatVote, twitchPoll, twitchPollDto, twitchPrediction, twitchPredictionDto, twitchStatusDTO, ultiAbilityStyle, updateNameRequest, updateOverlayRequest, userFeaturesUpdatedMessage, userTierUpdatedMessage, vector3, verifyEmailRequest, voteWrapper, websocketMessageTypes };