@wise-old-man/utils 2.0.0-beta.1 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +436 -100
  2. package/dist/index.js +826 -499
  3. package/package.json +4 -1
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type Achievement$1 = {
1
+ export type Prisma_Base_Achievement = {
2
2
  playerId: number
3
3
  name: string
4
4
  metric: Metric
@@ -22,7 +22,7 @@ export type Competition = {
22
22
  }
23
23
 
24
24
 
25
- export type Delta$1 = {
25
+ export type Prisma_Base_Delta = {
26
26
  id: number
27
27
  playerId: number
28
28
  period: Period
@@ -93,6 +93,8 @@ export type Delta$1 = {
93
93
  theatre_of_blood: number
94
94
  theatre_of_blood_hard_mode: number
95
95
  thermonuclear_smoke_devil: number
96
+ tombs_of_amascut: number
97
+ tombs_of_amascut_expert: number
96
98
  tzkal_zuk: number
97
99
  tztok_jad: number
98
100
  venenatis: number
@@ -166,7 +168,7 @@ export type Participation = {
166
168
  }
167
169
 
168
170
 
169
- export type Player$1 = {
171
+ export type Prisma_Base_Player = {
170
172
  id: number
171
173
  username: string
172
174
  displayName: string
@@ -186,7 +188,7 @@ export type Player$1 = {
186
188
  }
187
189
 
188
190
 
189
- export type Record$1 = {
191
+ export type Prisma_Base_Record = {
190
192
  id: number
191
193
  playerId: number
192
194
  period: Period
@@ -196,7 +198,7 @@ export type Record$1 = {
196
198
  }
197
199
 
198
200
 
199
- export type Snapshot$1 = {
201
+ export type Prisma_Base_Snapshot = {
200
202
  id: number
201
203
  playerId: number
202
204
  importedAt: Date | null
@@ -345,6 +347,10 @@ export type Snapshot$1 = {
345
347
  theatre_of_bloodKills: number
346
348
  thermonuclear_smoke_devilRank: number
347
349
  thermonuclear_smoke_devilKills: number
350
+ tombs_of_amascutRank: number
351
+ tombs_of_amascutKills: number
352
+ tombs_of_amascut_expertRank: number
353
+ tombs_of_amascut_expertKills: number
348
354
  tzkal_zukRank: number
349
355
  tzkal_zukKills: number
350
356
  tztok_jadRank: number
@@ -509,6 +515,8 @@ declare const Boss: {
509
515
  readonly THEATRE_OF_BLOOD: "theatre_of_blood";
510
516
  readonly THEATRE_OF_BLOOD_HARD_MODE: "theatre_of_blood_hard_mode";
511
517
  readonly THERMONUCLEAR_SMOKE_DEVIL: "thermonuclear_smoke_devil";
518
+ readonly TOMBS_OF_AMASCUT: "tombs_of_amascut";
519
+ readonly TOMBS_OF_AMASCUT_EXPERT: "tombs_of_amascut_expert";
512
520
  readonly TZKAL_ZUK: "tzkal_zuk";
513
521
  readonly TZTOK_JAD: "tztok_jad";
514
522
  readonly VENENATIS: "venenatis";
@@ -567,6 +575,8 @@ declare const Metric: {
567
575
  readonly THEATRE_OF_BLOOD: "theatre_of_blood";
568
576
  readonly THEATRE_OF_BLOOD_HARD_MODE: "theatre_of_blood_hard_mode";
569
577
  readonly THERMONUCLEAR_SMOKE_DEVIL: "thermonuclear_smoke_devil";
578
+ readonly TOMBS_OF_AMASCUT: "tombs_of_amascut";
579
+ readonly TOMBS_OF_AMASCUT_EXPERT: "tombs_of_amascut_expert";
570
580
  readonly TZKAL_ZUK: "tzkal_zuk";
571
581
  readonly TZTOK_JAD: "tztok_jad";
572
582
  readonly VENENATIS: "venenatis";
@@ -1211,22 +1221,6 @@ declare function findCountry(countryIdentifier: string): CountryDetails | undefi
1211
1221
  declare function findCountryByName(countryName: string): CountryDetails | undefined;
1212
1222
  declare function findCountryByCode(countryCode: string): CountryDetails | undefined;
1213
1223
 
1214
- declare type Achievement = Omit<Achievement$1, 'threshold'> & {
1215
- threshold: number;
1216
- };
1217
- declare type Record = Omit<Record$1, 'value'> & {
1218
- value: number;
1219
- };
1220
- declare type Delta = Omit<Delta$1, 'overall'> & {
1221
- overall: number;
1222
- };
1223
- declare type Snapshot = Omit<Snapshot$1, 'overallExperience'> & {
1224
- overallExperience: number;
1225
- };
1226
- declare type Player = Omit<Player$1, 'exp'> & {
1227
- exp: number;
1228
- };
1229
-
1230
1224
  declare const MAX_LEVEL = 99;
1231
1225
  declare const MAX_VIRTUAL_LEVEL = 126;
1232
1226
  declare const MAX_SKILL_EXP = 200000000;
@@ -1234,17 +1228,7 @@ declare const SKILL_EXP_AT_99 = 13034431;
1234
1228
  declare const CAPPED_MAX_TOTAL_XP: number;
1235
1229
  declare function getExpForLevel(level: number): number;
1236
1230
  declare function getLevel(exp: number, virtual?: boolean): number;
1237
- declare function getCombatLevelFromExp(attack: number, strength: number, defence: number, ranged: number, magic: number, hitpoints: number, prayer: number): number;
1238
- declare function getCombatLevel(snapshot: Snapshot): number;
1239
- declare function get200msCount(snapshot: any): number;
1240
- declare function getMinimumExp(snapshot: Snapshot): number;
1241
- declare function getCappedExp(snapshot: Snapshot, max: number): number;
1242
- declare function getTotalLevel(snapshot: Snapshot): number;
1243
- declare function isF2p(snapshot: Snapshot): boolean;
1244
- declare function isLvl3(snapshot: Snapshot): boolean;
1245
- declare function is1Def(snapshot: Snapshot): boolean;
1246
- declare function is10HP(snapshot: Snapshot): boolean;
1247
- declare function isZerker(snapshot: Snapshot): boolean;
1231
+ declare function getCombatLevel(attack: number, strength: number, defence: number, ranged: number, magic: number, hitpoints: number, prayer: number): number;
1248
1232
 
1249
1233
  declare const GROUP_ROLES: ("magic" | "slayer" | "hunter" | "achiever" | "adamant" | "adept" | "administrator" | "admiral" | "adventurer" | "air" | "anchor" | "apothecary" | "archer" | "armadylean" | "artillery" | "artisan" | "asgarnian" | "assassin" | "assistant" | "astral" | "athlete" | "attacker" | "bandit" | "bandosian" | "barbarian" | "battlemage" | "beast" | "berserker" | "blisterwood" | "blood" | "blue" | "bob" | "body" | "brassican" | "brawler" | "brigadier" | "brigand" | "bronze" | "bruiser" | "bulwark" | "burglar" | "burnt" | "cadet" | "captain" | "carry" | "champion" | "chaos" | "cleric" | "collector" | "colonel" | "commander" | "competitor" | "completionist" | "constructor" | "cook" | "coordinator" | "corporal" | "cosmic" | "councillor" | "crafter" | "crew" | "crusader" | "cutpurse" | "death" | "defender" | "defiler" | "deputy_owner" | "destroyer" | "diamond" | "diseased" | "doctor" | "dogsbody" | "dragon" | "dragonstone" | "druid" | "duellist" | "earth" | "elite" | "emerald" | "enforcer" | "epic" | "executive" | "expert" | "explorer" | "farmer" | "feeder" | "fighter" | "fire" | "firemaker" | "firestarter" | "fisher" | "fletcher" | "forager" | "fremennik" | "gamer" | "gatherer" | "general" | "gnome_child" | "gnome_elder" | "goblin" | "gold" | "goon" | "green" | "grey" | "guardian" | "guthixian" | "harpoon" | "healer" | "hellcat" | "helper" | "herbologist" | "hero" | "holy" | "hoarder" | "ignitor" | "illusionist" | "imp" | "infantry" | "inquisitor" | "iron" | "jade" | "justiciar" | "kandarin" | "karamjan" | "kharidian" | "kitten" | "knight" | "labourer" | "law" | "leader" | "learner" | "legacy" | "legend" | "legionnaire" | "lieutenant" | "looter" | "lumberjack" | "magician" | "major" | "maple" | "marshal" | "master" | "maxed" | "mediator" | "medic" | "mentor" | "member" | "merchant" | "mind" | "miner" | "minion" | "misthalinian" | "mithril" | "moderator" | "monarch" | "morytanian" | "mystic" | "myth" | "natural" | "nature" | "necromancer" | "ninja" | "noble" | "novice" | "nurse" | "oak" | "officer" | "onyx" | "opal" | "oracle" | "orange" | "owner" | "page" | "paladin" | "pawn" | "pilgrim" | "pine" | "pink" | "prefect" | "priest" | "private" | "prodigy" | "proselyte" | "prospector" | "protector" | "pure" | "purple" | "pyromancer" | "quester" | "racer" | "raider" | "ranger" | "record_chaser" | "recruit" | "recruiter" | "red_topaz" | "red" | "rogue" | "ruby" | "rune" | "runecrafter" | "sage" | "sapphire" | "saradominist" | "saviour" | "scavenger" | "scholar" | "scourge" | "scout" | "scribe" | "seer" | "senator" | "sentry" | "serenist" | "sergeant" | "shaman" | "sheriff" | "short_green_guy" | "skiller" | "skulled" | "smiter" | "smith" | "smuggler" | "sniper" | "soul" | "specialist" | "speed_runner" | "spellcaster" | "squire" | "staff" | "steel" | "strider" | "striker" | "summoner" | "superior" | "supervisor" | "teacher" | "templar" | "therapist" | "thief" | "tirannian" | "trialist" | "trickster" | "tzkal" | "tztok" | "unholy" | "vagrant" | "vanguard" | "walker" | "wanderer" | "warden" | "warlock" | "warrior" | "water" | "wild" | "willow" | "wily" | "wintumber" | "witch" | "wizard" | "worker" | "wrath" | "xerician" | "yellow" | "yew" | "zamorakian" | "zarosian" | "zealot" | "zenyte")[];
1250
1234
  declare const PRIVELEGED_GROUP_ROLES: GroupRole[];
@@ -1331,6 +1315,8 @@ declare const MetricProps: {
1331
1315
  theatre_of_blood: BossProperties;
1332
1316
  theatre_of_blood_hard_mode: BossProperties;
1333
1317
  thermonuclear_smoke_devil: BossProperties;
1318
+ tombs_of_amascut: BossProperties;
1319
+ tombs_of_amascut_expert: BossProperties;
1334
1320
  tzkal_zuk: BossProperties;
1335
1321
  tztok_jad: BossProperties;
1336
1322
  venenatis: BossProperties;
@@ -1366,11 +1352,11 @@ declare const MetricProps: {
1366
1352
  };
1367
1353
  declare const METRICS: string[];
1368
1354
  declare const SKILLS: ("overall" | "attack" | "defence" | "strength" | "hitpoints" | "ranged" | "prayer" | "magic" | "cooking" | "woodcutting" | "fletching" | "fishing" | "firemaking" | "crafting" | "smithing" | "mining" | "herblore" | "agility" | "thieving" | "slayer" | "farming" | "runecrafting" | "hunter" | "construction")[];
1369
- declare const BOSSES: ("abyssal_sire" | "alchemical_hydra" | "barrows_chests" | "bryophyta" | "callisto" | "cerberus" | "chambers_of_xeric" | "chambers_of_xeric_challenge_mode" | "chaos_elemental" | "chaos_fanatic" | "commander_zilyana" | "corporeal_beast" | "crazy_archaeologist" | "dagannoth_prime" | "dagannoth_rex" | "dagannoth_supreme" | "deranged_archaeologist" | "general_graardor" | "giant_mole" | "grotesque_guardians" | "hespori" | "kalphite_queen" | "king_black_dragon" | "kraken" | "kreearra" | "kril_tsutsaroth" | "mimic" | "nex" | "nightmare" | "phosanis_nightmare" | "obor" | "sarachnis" | "scorpia" | "skotizo" | "tempoross" | "the_gauntlet" | "the_corrupted_gauntlet" | "theatre_of_blood" | "theatre_of_blood_hard_mode" | "thermonuclear_smoke_devil" | "tzkal_zuk" | "tztok_jad" | "venenatis" | "vetion" | "vorkath" | "wintertodt" | "zalcano" | "zulrah")[];
1355
+ declare const BOSSES: ("abyssal_sire" | "alchemical_hydra" | "barrows_chests" | "bryophyta" | "callisto" | "cerberus" | "chambers_of_xeric" | "chambers_of_xeric_challenge_mode" | "chaos_elemental" | "chaos_fanatic" | "commander_zilyana" | "corporeal_beast" | "crazy_archaeologist" | "dagannoth_prime" | "dagannoth_rex" | "dagannoth_supreme" | "deranged_archaeologist" | "general_graardor" | "giant_mole" | "grotesque_guardians" | "hespori" | "kalphite_queen" | "king_black_dragon" | "kraken" | "kreearra" | "kril_tsutsaroth" | "mimic" | "nex" | "nightmare" | "phosanis_nightmare" | "obor" | "sarachnis" | "scorpia" | "skotizo" | "tempoross" | "the_gauntlet" | "the_corrupted_gauntlet" | "theatre_of_blood" | "theatre_of_blood_hard_mode" | "thermonuclear_smoke_devil" | "tombs_of_amascut" | "tombs_of_amascut_expert" | "tzkal_zuk" | "tztok_jad" | "venenatis" | "vetion" | "vorkath" | "wintertodt" | "zalcano" | "zulrah")[];
1370
1356
  declare const ACTIVITIES: string[];
1371
1357
  declare const VIRTUALS: ("ehp" | "ehb")[];
1372
1358
  declare const REAL_SKILLS: ("overall" | "attack" | "defence" | "strength" | "hitpoints" | "ranged" | "prayer" | "magic" | "cooking" | "woodcutting" | "fletching" | "fishing" | "firemaking" | "crafting" | "smithing" | "mining" | "herblore" | "agility" | "thieving" | "slayer" | "farming" | "runecrafting" | "hunter" | "construction")[];
1373
- declare const F2P_BOSSES: ("abyssal_sire" | "alchemical_hydra" | "barrows_chests" | "bryophyta" | "callisto" | "cerberus" | "chambers_of_xeric" | "chambers_of_xeric_challenge_mode" | "chaos_elemental" | "chaos_fanatic" | "commander_zilyana" | "corporeal_beast" | "crazy_archaeologist" | "dagannoth_prime" | "dagannoth_rex" | "dagannoth_supreme" | "deranged_archaeologist" | "general_graardor" | "giant_mole" | "grotesque_guardians" | "hespori" | "kalphite_queen" | "king_black_dragon" | "kraken" | "kreearra" | "kril_tsutsaroth" | "mimic" | "nex" | "nightmare" | "phosanis_nightmare" | "obor" | "sarachnis" | "scorpia" | "skotizo" | "tempoross" | "the_gauntlet" | "the_corrupted_gauntlet" | "theatre_of_blood" | "theatre_of_blood_hard_mode" | "thermonuclear_smoke_devil" | "tzkal_zuk" | "tztok_jad" | "venenatis" | "vetion" | "vorkath" | "wintertodt" | "zalcano" | "zulrah")[];
1359
+ declare const F2P_BOSSES: ("abyssal_sire" | "alchemical_hydra" | "barrows_chests" | "bryophyta" | "callisto" | "cerberus" | "chambers_of_xeric" | "chambers_of_xeric_challenge_mode" | "chaos_elemental" | "chaos_fanatic" | "commander_zilyana" | "corporeal_beast" | "crazy_archaeologist" | "dagannoth_prime" | "dagannoth_rex" | "dagannoth_supreme" | "deranged_archaeologist" | "general_graardor" | "giant_mole" | "grotesque_guardians" | "hespori" | "kalphite_queen" | "king_black_dragon" | "kraken" | "kreearra" | "kril_tsutsaroth" | "mimic" | "nex" | "nightmare" | "phosanis_nightmare" | "obor" | "sarachnis" | "scorpia" | "skotizo" | "tempoross" | "the_gauntlet" | "the_corrupted_gauntlet" | "theatre_of_blood" | "theatre_of_blood_hard_mode" | "thermonuclear_smoke_devil" | "tombs_of_amascut" | "tombs_of_amascut_expert" | "tzkal_zuk" | "tztok_jad" | "venenatis" | "vetion" | "vorkath" | "wintertodt" | "zalcano" | "zulrah")[];
1374
1360
  declare const MEMBER_SKILLS: ("overall" | "attack" | "defence" | "strength" | "hitpoints" | "ranged" | "prayer" | "magic" | "cooking" | "woodcutting" | "fletching" | "fishing" | "firemaking" | "crafting" | "smithing" | "mining" | "herblore" | "agility" | "thieving" | "slayer" | "farming" | "runecrafting" | "hunter" | "construction")[];
1375
1361
  declare const COMBAT_SKILLS: ("overall" | "attack" | "defence" | "strength" | "hitpoints" | "ranged" | "prayer" | "magic" | "cooking" | "woodcutting" | "fletching" | "fishing" | "firemaking" | "crafting" | "smithing" | "mining" | "herblore" | "agility" | "thieving" | "slayer" | "farming" | "runecrafting" | "hunter" | "construction")[];
1376
1362
  declare function findMetric(metricName: string): Metric | null;
@@ -1421,6 +1407,19 @@ declare function formatNumber(num: number, withLetters?: boolean): string | -1;
1421
1407
  declare function padNumber(value: number): string;
1422
1408
  declare function round(num: number, cases: number): number;
1423
1409
 
1410
+ declare type Achievement = Omit<Prisma_Base_Achievement, 'threshold'> & {
1411
+ threshold: number;
1412
+ };
1413
+ declare type Record = Omit<Prisma_Base_Record, 'value'> & {
1414
+ value: number;
1415
+ };
1416
+ declare type Snapshot = Omit<Prisma_Base_Snapshot, 'overallExperience'> & {
1417
+ overallExperience: number;
1418
+ };
1419
+ declare type Player = Omit<Prisma_Base_Player, 'exp'> & {
1420
+ exp: number;
1421
+ };
1422
+
1424
1423
  interface AchievementTemplate {
1425
1424
  name: string;
1426
1425
  metric: Metric;
@@ -1493,6 +1492,13 @@ interface PlayerDeltasMap {
1493
1492
  [virtual in Virtual]?: VirtualDelta;
1494
1493
  };
1495
1494
  }
1495
+ interface DeltaLeaderboardEntry {
1496
+ player: Player;
1497
+ playerId: number;
1498
+ startDate: Date;
1499
+ endDate: Date;
1500
+ gained: number;
1501
+ }
1496
1502
 
1497
1503
  declare type SnapshotFragment = Omit<Snapshot, 'id'>;
1498
1504
  declare enum SnapshotDataSource {
@@ -1577,7 +1583,7 @@ interface VirtualHiscoresItem {
1577
1583
  value: number;
1578
1584
  }
1579
1585
  interface GroupHiscoresEntry {
1580
- membership: MembershipWithPlayer;
1586
+ player: Player;
1581
1587
  data: SkillHiscoresItem | BossHiscoresItem | ActivityHiscoresItem | VirtualHiscoresItem;
1582
1588
  }
1583
1589
  interface GroupStatistics {
@@ -1625,6 +1631,13 @@ interface Team {
1625
1631
  name: string;
1626
1632
  participants: string[];
1627
1633
  }
1634
+ declare type Top5ProgressResult = Array<{
1635
+ player: Player;
1636
+ history: Array<{
1637
+ value: number;
1638
+ date: Date;
1639
+ }>;
1640
+ }>;
1628
1641
 
1629
1642
  declare type ExperienceMap = {
1630
1643
  [skill in Skill]?: number;
@@ -1683,23 +1696,130 @@ declare type AlgorithmCache = {
1683
1696
  [a in EfficiencyAlgorithmType]: EfficiencyAlgorithm;
1684
1697
  };
1685
1698
 
1699
+ declare type NameChangeDetails = {
1700
+ nameChange: NameChange;
1701
+ data?: {
1702
+ isNewOnHiscores: boolean;
1703
+ isOldOnHiscores: boolean;
1704
+ isNewTracked: boolean;
1705
+ hasNegativeGains: boolean;
1706
+ timeDiff: number;
1707
+ hoursDiff: number;
1708
+ ehpDiff: number;
1709
+ ehbDiff: number;
1710
+ oldStats: FormattedSnapshot;
1711
+ newStats: FormattedSnapshot;
1712
+ };
1713
+ };
1714
+
1686
1715
  declare type PlayerResolvable = Partial<Pick<Player, 'id' | 'username'>>;
1687
1716
  interface PlayerDetails extends Player {
1688
1717
  combatLevel: number;
1689
1718
  latestSnapshot: FormattedSnapshot;
1690
1719
  }
1691
1720
 
1692
- declare type PaginationOptions = Partial<{
1693
- limit: number;
1694
- offset: number;
1695
- }>;
1721
+ declare type RecordLeaderboardEntry = Record & {
1722
+ player: Player;
1723
+ };
1696
1724
 
1725
+ interface GenericCountMessageResponse {
1726
+ count: number;
1727
+ message: string;
1728
+ }
1729
+ interface GenericMessageResponse {
1730
+ message: string;
1731
+ }
1697
1732
  declare type TimeRangeFilter = {
1698
1733
  period: Period | string;
1699
1734
  } | {
1700
1735
  startDate: Date;
1701
1736
  endDate: Date;
1702
1737
  };
1738
+ interface BasePlayerFilter {
1739
+ country?: Country;
1740
+ playerType?: PlayerType;
1741
+ playerBuild?: PlayerBuild;
1742
+ }
1743
+ /**
1744
+ * Groups Client Types
1745
+ */
1746
+ interface GroupMemberFragment {
1747
+ username: string;
1748
+ role?: GroupRole;
1749
+ }
1750
+ interface CreateGroupPayload {
1751
+ name: string;
1752
+ clanChat?: string;
1753
+ homeworld?: number;
1754
+ description?: string;
1755
+ members: Array<GroupMemberFragment>;
1756
+ }
1757
+ declare type EditGroupPayload = Partial<CreateGroupPayload>;
1758
+ interface CreateGroupResponse {
1759
+ group: GroupWithMemberships;
1760
+ verificationCode: string;
1761
+ }
1762
+ interface ChangeMemberRolePayload {
1763
+ username: string;
1764
+ role: GroupRole;
1765
+ }
1766
+ declare type GetGroupGainsFilter = {
1767
+ metric: Metric;
1768
+ } & TimeRangeFilter;
1769
+ interface GroupRecordsFilter {
1770
+ metric: Metric;
1771
+ period: Period;
1772
+ }
1773
+ /**
1774
+ * Competitions Client Types
1775
+ */
1776
+ interface CompetitionsSearchFilter {
1777
+ title?: string;
1778
+ metric?: Metric;
1779
+ type?: CompetitionType;
1780
+ status?: CompetitionStatus;
1781
+ }
1782
+ declare type CreateCompetitionPayload = {
1783
+ title: string;
1784
+ metric: Metric;
1785
+ startsAt: Date;
1786
+ endsAt: Date;
1787
+ groupId?: number;
1788
+ groupVerificationCode?: string;
1789
+ } & ({
1790
+ participants: string[];
1791
+ } | {
1792
+ teams: Team[];
1793
+ });
1794
+ declare type EditCompetitionPayload = {
1795
+ title?: string;
1796
+ metric?: Metric;
1797
+ startsAt?: Date;
1798
+ endsAt?: Date;
1799
+ participants?: string[];
1800
+ teams?: Team[];
1801
+ };
1802
+ declare type CreateCompetitionResponse = {
1803
+ competition: CompetitionWithParticipations;
1804
+ verificationCode: string;
1805
+ };
1806
+ /**
1807
+ * Name Changes Client Types
1808
+ */
1809
+ declare type NameChangesSearchFilter = {
1810
+ username?: string;
1811
+ status?: NameChangeStatus;
1812
+ };
1813
+ /**
1814
+ * Record Client Types
1815
+ */
1816
+ interface RecordLeaderboardFilter extends BasePlayerFilter {
1817
+ metric: Metric;
1818
+ period: Period | string;
1819
+ }
1820
+ /**
1821
+ * Player Client Types
1822
+ */
1703
1823
  interface PlayerRecordsFilter {
1704
1824
  period: Period | string;
1705
1825
  metric: Metric;
@@ -1708,92 +1828,308 @@ interface AssertPlayerTypeResponse {
1708
1828
  player: Player;
1709
1829
  changed: boolean;
1710
1830
  }
1711
- interface ImportPlayerResponse {
1712
- count: number;
1713
- message: string;
1714
- }
1715
- declare type SearchPlayersResponse = Player[];
1716
- declare type UpdatePlayerResponse = PlayerDetails;
1717
- declare type GetPlayerDetailsResponse = PlayerDetails;
1718
- declare type GetPlayerAchievementsResponse = ExtendedAchievement[];
1719
- declare type GetPlayerAchievementProgressResponse = AchievementProgress[];
1720
- declare type GetPlayerCompetitionsResponse = ParticipationWithCompetition[];
1721
- declare type GetPlayerGroupsResponse = MembershipWithGroup[];
1722
- declare type GetPlayerRecordsResponse = Record[];
1723
- declare type GetPlayerNamesResponse = NameChange[];
1724
- declare type GetPlayerSnapshotsResponse = FormattedSnapshot[];
1725
1831
  declare type GetPlayerGainsResponse<T extends PlayerDeltasArray | PlayerDeltasMap> = {
1726
1832
  startsAt: Date;
1727
1833
  endsAt: Date;
1728
1834
  data: T;
1729
1835
  };
1836
+ /**
1837
+ * Efficiency Client Types
1838
+ */
1839
+ declare type EfficiencyAlgorithmTypeUnion = `${EfficiencyAlgorithmType}`;
1840
+ interface EfficiencyLeaderboardsFilter extends BasePlayerFilter {
1841
+ metric: typeof Metric.EHP | typeof Metric.EHB | 'ehp+ehb';
1842
+ }
1843
+ /**
1844
+ * Delta Client Types
1845
+ */
1846
+ interface DeltaLeaderboardFilter extends BasePlayerFilter {
1847
+ metric: Metric;
1848
+ period: Period | string;
1849
+ }
1850
+
1851
+ declare class DeltasClient {
1852
+ /**
1853
+ * Fetches the current top leaderboard for a specific metric, period, playerType, playerBuild and country.
1854
+ * @returns A list of deltas, with their respective players, values and dates included.
1855
+ */
1856
+ getDeltaLeaderboard(filter: DeltaLeaderboardFilter): Promise<DeltaLeaderboardEntry[]>;
1857
+ }
1858
+
1859
+ declare type PaginationOptions = Partial<{
1860
+ limit: number;
1861
+ offset: number;
1862
+ }>;
1863
+
1864
+ declare class GroupsClient {
1865
+ /**
1866
+ * Searches for groups that match a partial name.
1867
+ * @returns A list of groups.
1868
+ */
1869
+ searchGroups(name: string, pagination?: PaginationOptions): Promise<GroupListItem[]>;
1870
+ /**
1871
+ * Fetches a group's details.
1872
+ * @returns A group details object.
1873
+ */
1874
+ getGroupDetails(id: number): Promise<GroupListItem>;
1875
+ /**
1876
+ * Fetches a group's entire members list.
1877
+ * @returns A list of memberships, with players included.
1878
+ */
1879
+ getGroupMembers(id: number): Promise<MembershipWithPlayer[]>;
1880
+ /**
1881
+ * Creates a new group.
1882
+ * @returns The newly created group, and the verification code that authorizes future changes to it.
1883
+ */
1884
+ createGroup(payload: CreateGroupPayload): Promise<CreateGroupResponse>;
1885
+ /**
1886
+ * Edits an existing group.
1887
+ * @returns The updated group.
1888
+ */
1889
+ editGroup(id: number, payload: EditGroupPayload, verificationCode: string): Promise<GroupWithMemberships>;
1890
+ /**
1891
+ * Deletes an existing group.
1892
+ * @returns A confirmation message.
1893
+ */
1894
+ deleteGroup(id: number, verificationCode: string): Promise<GenericMessageResponse>;
1895
+ /**
1896
+ * Adds all (valid) given usernames (and roles) to a group, ignoring duplicates.
1897
+ * @returns The number of members added and a confirmation message.
1898
+ */
1899
+ addMembers(id: number, members: GroupMemberFragment[], verificationCode: string): Promise<GenericCountMessageResponse>;
1900
+ /**
1901
+ * Remove all given usernames from a group, ignoring usernames that aren't members.
1902
+ * @returns The number of members removed and a confirmation message.
1903
+ */
1904
+ removeMembers(id: number, usernames: string[], verificationCode: string): Promise<GenericCountMessageResponse>;
1905
+ /**
1906
+ * Changes a player's role in a given group.
1907
+ * @returns The updated membership, with player included.
1908
+ */
1909
+ changeRole(id: number, payload: ChangeMemberRolePayload, verificationCode: string): Promise<MembershipWithPlayer>;
1910
+ /**
1911
+ * Adds an "update" request to the queue, for each outdated group member.
1912
+ * @returns The number of players to be updated and a confirmation message.
1913
+ */
1914
+ updateAll(id: number, verificationCode: string): Promise<GenericCountMessageResponse>;
1915
+ /**
1916
+ * Fetches all of the groups's competitions
1917
+ * @returns A list of competitions.
1918
+ */
1919
+ getGroupCompetitions(id: number, pagination?: PaginationOptions): Promise<CompetitionListItem[]>;
1920
+ getGroupGains(id: number, filter: GetGroupGainsFilter, pagination?: PaginationOptions): Promise<DeltaLeaderboardEntry[]>;
1921
+ /**
1922
+ * Fetches a group members' latest achievements.
1923
+ * @returns A list of achievements.
1924
+ */
1925
+ getGroupAchievements(id: number, pagination?: PaginationOptions): Promise<ExtendedAchievement[]>;
1926
+ /**
1927
+ * Fetches a group's record leaderboard for a specific metric and period.
1928
+ * @returns A list of records, including their respective players.
1929
+ */
1930
+ getGroupRecords(id: number, filter: GroupRecordsFilter, pagination?: PaginationOptions): Promise<RecordLeaderboardEntry[]>;
1931
+ /**
1932
+ * Fetches a group's hiscores for a specific metric.
1933
+ * @returns A list of hiscores entries (value, rank), including their respective players.
1934
+ */
1935
+ getGroupHiscores(id: number, metric: Metric, pagination?: PaginationOptions): Promise<GroupHiscoresEntry[]>;
1936
+ /**
1937
+ * Fetches a group members' latest name changes.
1938
+ * @returns A list of name change (approved) requests.
1939
+ */
1940
+ getGroupNameChanges(id: number, pagination?: PaginationOptions): Promise<NameChange[]>;
1941
+ /**
1942
+ * Fetches a group's general statistics.
1943
+ * @returns An object with a few statistic values and an average stats snapshot.
1944
+ */
1945
+ getGroupStatistics(id: number): Promise<GroupStatistics>;
1946
+ }
1947
+
1730
1948
  declare class PlayersClient {
1731
- searchPlayers(partialUsername: string, pagination?: PaginationOptions): Promise<SearchPlayersResponse>;
1949
+ /**
1950
+ * Searches players by partial username.
1951
+ * @returns A list of players.
1952
+ */
1953
+ searchPlayers(partialUsername: string, pagination?: PaginationOptions): Promise<Player[]>;
1954
+ /**
1955
+ * Updates/tracks a player.
1956
+ * @returns The player's new details, including the latest snapshot.
1957
+ */
1732
1958
  updatePlayer(player: PlayerResolvable): Promise<PlayerDetails>;
1959
+ /**
1960
+ * Asserts (and attempts to fix, if necessary) a player's game-mode type.
1961
+ * @returns The updated player, and an indication of whether the type was changed.
1962
+ */
1733
1963
  assertPlayerType(player: PlayerResolvable): Promise<AssertPlayerTypeResponse>;
1734
- importPlayer(player: PlayerResolvable): Promise<ImportPlayerResponse>;
1964
+ /**
1965
+ * Attempts to import a player's snapshot history from CrystalMathLabs.
1966
+ * @returns The number of snapshots that were imported.
1967
+ */
1968
+ importPlayer(player: PlayerResolvable): Promise<GenericCountMessageResponse>;
1969
+ /**
1970
+ * Fetches a player's details.
1971
+ * @returns The player's details, including the latest snapshot.
1972
+ */
1735
1973
  getPlayerDetails(player: PlayerResolvable): Promise<PlayerDetails>;
1736
- getPlayerAchievements(player: PlayerResolvable): Promise<GetPlayerAchievementsResponse>;
1737
- getPlayerAchievementProgress(player: PlayerResolvable): Promise<GetPlayerAchievementProgressResponse>;
1738
- getPlayerCompetitions(player: PlayerResolvable, pagination?: PaginationOptions): Promise<GetPlayerCompetitionsResponse>;
1739
- getPlayerGroups(player: PlayerResolvable, pagination?: PaginationOptions): Promise<GetPlayerGroupsResponse>;
1974
+ /**
1975
+ * Fetches a player's current achievements.
1976
+ * @returns A list of achievements.
1977
+ */
1978
+ getPlayerAchievements(player: PlayerResolvable): Promise<ExtendedAchievement[]>;
1979
+ /**
1980
+ * Fetches a player's current achievement progress.
1981
+ * @returns A list of achievements (completed or otherwise), with their respective relative/absolute progress percentage.
1982
+ */
1983
+ getPlayerAchievementProgress(player: PlayerResolvable): Promise<AchievementProgress[]>;
1984
+ /**
1985
+ * Fetches all of the player's competition participations.
1986
+ * @returns A list of participations, with the respective competition included.
1987
+ */
1988
+ getPlayerCompetitions(player: PlayerResolvable, pagination?: PaginationOptions): Promise<ParticipationWithCompetition[]>;
1989
+ /**
1990
+ * Fetches all of the player's group memberships.
1991
+ * @returns A list of memberships, with the respective group included.
1992
+ */
1993
+ getPlayerGroups(player: PlayerResolvable, pagination?: PaginationOptions): Promise<MembershipWithGroup[]>;
1994
+ /**
1995
+ * Fetches a player's gains, for a specific period or time range, as a [metric: data] map.
1996
+ * @returns A map of each metric's gained data.
1997
+ */
1740
1998
  getPlayerGains(player: PlayerResolvable, options: TimeRangeFilter): Promise<GetPlayerGainsResponse<PlayerDeltasMap>>;
1999
+ /**
2000
+ * Fetches a player's gains, for a specific period or time range, as an array.
2001
+ * @returns An array of each metric's gained data.
2002
+ */
1741
2003
  getPlayerGainsAsArray(player: PlayerResolvable, options: TimeRangeFilter): Promise<GetPlayerGainsResponse<PlayerDeltasArray>>;
1742
- getPlayerRecords(player: PlayerResolvable, options?: PlayerRecordsFilter): Promise<GetPlayerRecordsResponse>;
1743
- getPlayerSnapshots(player: PlayerResolvable, options?: TimeRangeFilter): Promise<GetPlayerSnapshotsResponse>;
1744
- getPlayerNames(player: PlayerResolvable): Promise<GetPlayerNamesResponse>;
2004
+ /**
2005
+ * Fetches all of the player's records.
2006
+ * @returns A list of records.
2007
+ */
2008
+ getPlayerRecords(player: PlayerResolvable, options?: PlayerRecordsFilter): Promise<Record[]>;
2009
+ /**
2010
+ * Fetches all of the player's past snapshots.
2011
+ * @returns A list of snapshots.
2012
+ */
2013
+ getPlayerSnapshots(player: PlayerResolvable, options?: TimeRangeFilter): Promise<FormattedSnapshot[]>;
2014
+ /**
2015
+ * Fetches all of the player's approved name changes.
2016
+ * @returns A list of name changes.
2017
+ */
2018
+ getPlayerNames(player: PlayerResolvable): Promise<NameChange[]>;
1745
2019
  }
1746
2020
 
1747
- interface RecordLeaderboardFilter {
1748
- metric: Metric;
1749
- period: Period | string;
1750
- country?: Country;
1751
- playerType?: PlayerType;
1752
- playerBuild?: PlayerBuild;
1753
- }
1754
- declare type GetRecordLeaderboardResponse = Array<Record & {
1755
- player: Player;
1756
- }>;
1757
2021
  declare class RecordsClient {
1758
- getRecordLeaderboard(filter: RecordLeaderboardFilter): Promise<GetRecordLeaderboardResponse>;
2022
+ /**
2023
+ * Fetches the current records leaderboard for a specific metric, period, playerType, playerBuild and country.
2024
+ * @returns A list of records, with their respective players, dates and values included.
2025
+ */
2026
+ getRecordLeaderboard(filter: RecordLeaderboardFilter): Promise<RecordLeaderboardEntry[]>;
1759
2027
  }
1760
2028
 
1761
- interface DeltaLeaderboardFilter {
1762
- metric: Metric;
1763
- period: Period | string;
1764
- country?: Country;
1765
- playerType?: PlayerType;
1766
- playerBuild?: PlayerBuild;
1767
- }
1768
- declare type GetDeltaLeaderboardResponse = Array<{
1769
- startDate: Date;
1770
- endDate: Date;
1771
- gained: number;
1772
- player: Player;
1773
- }>;
1774
- declare class DeltasClient {
1775
- getDeltaLeaderboard(filter: DeltaLeaderboardFilter): Promise<GetDeltaLeaderboardResponse>;
2029
+ declare class EfficiencyClient {
2030
+ /**
2031
+ * Fetches the current efficiency leaderboard for a specific virtual metric, playerType, playerBuild and country.
2032
+ * @returns A list of players.
2033
+ */
2034
+ getEfficiencyLeaderboards(filter: EfficiencyLeaderboardsFilter, pagination?: PaginationOptions): Promise<Player[]>;
2035
+ /**
2036
+ * Fetches the top EHP (Efficient Hours Played) rates.
2037
+ * @returns A list of skilling methods and their bonus exp ratios.
2038
+ */
2039
+ getEHPRates(algorithmType: EfficiencyAlgorithmTypeUnion): Promise<SkillMetaConfig>;
2040
+ /**
2041
+ * Fetches the top EHB (Efficient Hours Bossed) rates.
2042
+ * @returns A list of bosses and their respective "per-hour" kill rates.
2043
+ */
2044
+ getEHBRates(algorithmType: EfficiencyAlgorithmTypeUnion): Promise<BossMetaConfig[]>;
1776
2045
  }
1777
2046
 
1778
- interface EfficiencyLeaderboardsFilter {
1779
- metric: typeof Metric.EHP | typeof Metric.EHB | 'ehp+ehb';
1780
- country?: Country;
1781
- playerType?: PlayerType;
1782
- playerBuild?: PlayerBuild;
2047
+ declare class NameChangesClient {
2048
+ /**
2049
+ * Searches for name changes that match a name and/or status filter.
2050
+ * @returns A list of name changes.
2051
+ */
2052
+ searchNameChanges(filter: NameChangesSearchFilter, pagination?: PaginationOptions): Promise<NameChange[]>;
2053
+ /**
2054
+ * Submits a name change request between two usernames (old and new).
2055
+ * @returns A pending name change request, to be reviewed and resolved at a later date.
2056
+ */
2057
+ submitNameChange(oldName: string, newName: string): Promise<NameChange>;
2058
+ /**
2059
+ * Gets details on a specific name change request.
2060
+ * @returns The name change request's details, which includes all data required to review.
2061
+ */
2062
+ getNameChangeDetails(id: number): Promise<NameChangeDetails>;
1783
2063
  }
1784
- declare type GetEfficiencyLeaderboardsResponse = Player[];
1785
- declare class EfficiencyClient {
1786
- getEfficiencyLeaderboards(filter: EfficiencyLeaderboardsFilter, pagination?: PaginationOptions): Promise<GetEfficiencyLeaderboardsResponse>;
1787
- getEHPRates(algorithmType: `${EfficiencyAlgorithmType}`): Promise<SkillMetaConfig>;
1788
- getEHBRates(algorithmType: `${EfficiencyAlgorithmType}`): Promise<BossMetaConfig[]>;
2064
+
2065
+ declare class CompetitionsClient {
2066
+ /**
2067
+ * Searches for competitions that match a title, type, metric and status filter.
2068
+ * @returns A list of competitions.
2069
+ */
2070
+ searchCompetitions(filter: CompetitionsSearchFilter, pagination?: PaginationOptions): Promise<CompetitionListItem[]>;
2071
+ /**
2072
+ * Fetches the competition's full details, including all the participants and their progress.
2073
+ * @returns A competition with a list of participants.
2074
+ */
2075
+ getCompetitionDetails(id: number, previewMetric?: Metric): Promise<CompetitionDetails>;
2076
+ /**
2077
+ * Fetches all the values (exp, kc, etc) in chronological order within the bounds
2078
+ * of the competition, for the top 5 participants.
2079
+ * @returns A list of competition progress objects, including the player and their value history over time.
2080
+ */
2081
+ getCompetitionTopHistory(id: number, previewMetric?: Metric): Promise<Top5ProgressResult>;
2082
+ /**
2083
+ * Creates a new competition.
2084
+ * @returns The newly created competition, and the verification code that authorizes future changes to it.
2085
+ */
2086
+ createCompetition(payload: CreateCompetitionPayload): Promise<CreateCompetitionResponse>;
2087
+ /**
2088
+ * Edits an existing competition.
2089
+ * @returns The updated competition.
2090
+ */
2091
+ editCompetition(id: number, payload: EditCompetitionPayload, verificationCode: string): Promise<CompetitionWithParticipations>;
2092
+ /**
2093
+ * Deletes an existing competition.
2094
+ * @returns A confirmation message.
2095
+ */
2096
+ deleteCompetition(id: number, verificationCode: string): Promise<GenericMessageResponse>;
2097
+ /**
2098
+ * Adds all (valid) given participants to a competition, ignoring duplicates.
2099
+ * @returns The number of participants added and a confirmation message.
2100
+ */
2101
+ addParticipants(id: number, participants: string[], verificationCode: string): Promise<GenericCountMessageResponse>;
2102
+ /**
2103
+ * Remove all given usernames from a competition, ignoring usernames that aren't competing.
2104
+ * @returns The number of participants removed and a confirmation message.
2105
+ */
2106
+ removeParticipants(id: number, participants: string[], verificationCode: string): Promise<GenericCountMessageResponse>;
2107
+ /**
2108
+ * Adds all (valid) given teams to a team competition, ignoring duplicates.
2109
+ * @returns The number of participants added and a confirmation message.
2110
+ */
2111
+ addTeams(id: number, teams: Team[], verificationCode: string): Promise<GenericCountMessageResponse>;
2112
+ /**
2113
+ * Remove all given team names from a competition, ignoring names that don't exist.
2114
+ * @returns The number of participants removed and a confirmation message.
2115
+ */
2116
+ removeTeams(id: number, teamNames: string[], verificationCode: string): Promise<GenericCountMessageResponse>;
2117
+ /**
2118
+ * Adds an "update" request to the queue, for each outdated competition participant.
2119
+ * @returns The number of players to be updated and a confirmation message.
2120
+ */
2121
+ updateAll(id: number, verificationCode: string): Promise<GenericCountMessageResponse>;
1789
2122
  }
1790
2123
 
1791
2124
  declare class WOMClient {
2125
+ deltas: DeltasClient;
2126
+ groups: GroupsClient;
1792
2127
  players: PlayersClient;
1793
2128
  records: RecordsClient;
1794
- deltas: DeltasClient;
1795
2129
  efficiency: EfficiencyClient;
2130
+ nameChanges: NameChangesClient;
2131
+ competitions: CompetitionsClient;
1796
2132
  constructor();
1797
2133
  }
1798
2134
 
1799
- export { ACTIVITIES, Achievement, AchievementDefinition, AchievementProgress, AchievementTemplate, Activity, ActivityDelta, ActivityValue, AlgorithmCache, AssertPlayerTypeResponse, BOSSES, Bonus, BonusType, Boss, BossDelta, BossMetaConfig, BossValue, CAPPED_MAX_TOTAL_XP, CMLGroupData, COMBAT_SKILLS, COMPETITION_STATUSES, COMPETITION_TYPES, COUNTRY_CODES, CompetitionDetails, CompetitionListItem, CompetitionStatus, CompetitionStatusProps, CompetitionType, CompetitionTypeProps, CompetitionWithParticipations, Country, CountryDetails, CountryProps, Delta, DeltaLeaderboardFilter, EfficiencyAlgorithm, EfficiencyAlgorithmType, EfficiencyLeaderboardsFilter, EfficiencyMap, ExperienceMap, ExtendedAchievement, F2P_BOSSES, FormattedSnapshot, GROUP_ROLES, GetDeltaLeaderboardResponse, GetEfficiencyLeaderboardsResponse, GetPlayerAchievementProgressResponse, GetPlayerAchievementsResponse, GetPlayerCompetitionsResponse, GetPlayerDetailsResponse, GetPlayerGainsResponse, GetPlayerGroupsResponse, GetPlayerNamesResponse, GetPlayerRecordsResponse, GetPlayerSnapshotsResponse, GetRecordLeaderboardResponse, GroupHiscoresEntry, GroupListItem, GroupRole, GroupRoleProps, GroupStatistics, GroupWithMemberships, ImportPlayerResponse, KillcountMap, MAX_LEVEL, MAX_SKILL_EXP, MAX_VIRTUAL_LEVEL, MEMBER_SKILLS, METRICS, MeasuredDeltaProgress, MemberInput, MembershipWithGroup, MembershipWithPlayer, Metric, MetricMeasure, MetricProps, MetricType, MigrationDataSource, NameChangeStatus, PERIODS, PLAYER_BUILDS, PLAYER_TYPES, PRIVELEGED_GROUP_ROLES, ParticipationWithCompetition, ParticipationWithPlayer, ParticipationWithPlayerAndProgress, Period, PeriodProps, Player, PlayerBuild, PlayerBuildProps, PlayerDeltasArray, PlayerDeltasMap, PlayerDetails, PlayerRecordsFilter, PlayerResolvable, PlayerType, PlayerTypeProps, REAL_SKILLS, Record, RecordLeaderboardFilter, SKILLS, SKILL_EXP_AT_99, SearchPlayersResponse, Skill, SkillDelta, SkillMetaConfig, SkillValue, Snapshot, SnapshotDataSource, SnapshotFragment, Team, TempleGroupData, TimeRangeFilter, UpdatePlayerResponse, VIRTUALS, Virtual, VirtualDelta, VirtualValue, WOMClient, findCompetitionStatus, findCompetitionType, findCountry, findCountryByCode, findCountryByName, findGroupRole, findMetric, findPeriod, findPlayerBuild, findPlayerType, formatNumber, get200msCount, getCappedExp, getCombatLevel, getCombatLevelFromExp, getExpForLevel, getLevel, getMetricMeasure, getMetricName, getMetricRankKey, getMetricValueKey, getMinimumBossKc, getMinimumExp, getParentVirtualMetric, getTotalLevel, is10HP, is1Def, isActivity, isBoss, isF2p, isLvl3, isSkill, isVirtualMetric, isZerker, padNumber, parseMetricAbbreviation, parsePeriodExpression, round };
2135
+ export { ACTIVITIES, Achievement, AchievementDefinition, AchievementProgress, AchievementTemplate, Activity, ActivityDelta, ActivityValue, AlgorithmCache, AssertPlayerTypeResponse, BOSSES, Bonus, BonusType, Boss, BossDelta, BossMetaConfig, BossValue, CAPPED_MAX_TOTAL_XP, CMLGroupData, COMBAT_SKILLS, COMPETITION_STATUSES, COMPETITION_TYPES, COUNTRY_CODES, ChangeMemberRolePayload, CompetitionDetails, CompetitionListItem, CompetitionStatus, CompetitionStatusProps, CompetitionType, CompetitionTypeProps, CompetitionWithParticipations, CompetitionsSearchFilter, Country, CountryDetails, CountryProps, CreateCompetitionPayload, CreateCompetitionResponse, CreateGroupPayload, CreateGroupResponse, DeltaLeaderboardEntry, DeltaLeaderboardFilter, EditCompetitionPayload, EditGroupPayload, EfficiencyAlgorithm, EfficiencyAlgorithmType, EfficiencyAlgorithmTypeUnion, EfficiencyLeaderboardsFilter, EfficiencyMap, ExperienceMap, ExtendedAchievement, F2P_BOSSES, FormattedSnapshot, GROUP_ROLES, GenericCountMessageResponse, GenericMessageResponse, GetGroupGainsFilter, GetPlayerGainsResponse, GroupHiscoresEntry, GroupListItem, GroupMemberFragment, GroupRecordsFilter, GroupRole, GroupRoleProps, GroupStatistics, GroupWithMemberships, KillcountMap, MAX_LEVEL, MAX_SKILL_EXP, MAX_VIRTUAL_LEVEL, MEMBER_SKILLS, METRICS, MeasuredDeltaProgress, MemberInput, MembershipWithGroup, MembershipWithPlayer, Metric, MetricMeasure, MetricProps, MetricType, MigrationDataSource, NameChangeDetails, NameChangeStatus, NameChangesSearchFilter, PERIODS, PLAYER_BUILDS, PLAYER_TYPES, PRIVELEGED_GROUP_ROLES, ParticipationWithCompetition, ParticipationWithPlayer, ParticipationWithPlayerAndProgress, Period, PeriodProps, Player, PlayerBuild, PlayerBuildProps, PlayerDeltasArray, PlayerDeltasMap, PlayerDetails, PlayerRecordsFilter, PlayerResolvable, PlayerType, PlayerTypeProps, REAL_SKILLS, Record, RecordLeaderboardEntry, RecordLeaderboardFilter, SKILLS, SKILL_EXP_AT_99, Skill, SkillDelta, SkillMetaConfig, SkillValue, Snapshot, SnapshotDataSource, SnapshotFragment, Team, TempleGroupData, TimeRangeFilter, Top5ProgressResult, VIRTUALS, Virtual, VirtualDelta, VirtualValue, WOMClient, findCompetitionStatus, findCompetitionType, findCountry, findCountryByCode, findCountryByName, findGroupRole, findMetric, findPeriod, findPlayerBuild, findPlayerType, formatNumber, getCombatLevel, getExpForLevel, getLevel, getMetricMeasure, getMetricName, getMetricRankKey, getMetricValueKey, getMinimumBossKc, getParentVirtualMetric, isActivity, isBoss, isSkill, isVirtualMetric, padNumber, parseMetricAbbreviation, parsePeriodExpression, round };