import type { QueueId } from "@valapi/lib"; import type { PromiseResponse } from "@valapi/auth"; import { WebClientService } from "../client/WebClientService"; export declare namespace MMR { interface PlayerSeasonalInfo { SeasonID: string; NumberOfWins: number; NumberOfWinsWithPlacements: number; NumberOfGames: number; Rank: number; CapstoneWins: number; LeaderboardRank: number; CompetitiveTier: number; RankedRating: number; WinsByTier: Record<`${number}`, number>; GamesNeededForRating: number; TotalWinsNeededForRank: number; } interface QueueSkill { TotalGamesNeededForRating: number; TotalGamesNeededForLeaderboard: number; CurrentSeasonGamesNeededForRating: number; SeasonalInfoBySeasonID: Record; } interface Player { Version: number; Subject: string; NewPlayerExperienceFinished: boolean; QueueSkills: Record; LatestCompetitiveUpdate: { MatchID: string; MapID: string; SeasonID: string; MatchStartTime: number; TierAfterUpdate: number; TierBeforeUpdate: number; RankedRatingAfterUpdate: number; RankedRatingBeforeUpdate: number; RankedRatingEarned: number; RankedRatingPerformanceBonus: number; CompetitiveMovement: string; AFKPenalty: number; }; IsLeaderboardAnonymized: boolean; IsActRankBadgeHidden: boolean; } interface Leaderboard { Deployment: string; QueueID: string; SeasonID: string; Players: Array<{ PlayerCardID: string; TitleID: string; IsBanned: boolean; IsAnonymized: boolean; puuid: string; gameName: string; tagLine: string; leaderboardRank: number; rankedRating: number; numberOfWins: number; competitiveTier: number; }>; totalPlayers: number; immortalStartingPage: number; immortalStartingIndex: number; topTierRRThreshold: number; tierDetails: Record<`${number}`, { rankedRatingThreshold: number; startingPage: number; startingIndex: number; }>; startIndex: number; query: string; } interface CompetitiveUpdates { Version: number; Subject: string; Matches: Array<{ MatchID: string; MapID: string; SeasonID: string; MatchStartTime: number; TierAfterUpdate: number; TierBeforeUpdate: number; RankedRatingAfterUpdate: number; RankedRatingBeforeUpdate: number; RankedRatingEarned: number; RankedRatingPerformanceBonus: number; CompetitiveMovement: string; AFKPenalty: number; }>; } } /** * Match Making Rating */ export declare class MMR extends WebClientService { getPlayer(subject: string): PromiseResponse; hideActRankBadge(subject: string): PromiseResponse; /** * @param startIndex (default: 0) * @param size (default: 510) */ getLeaderboard(seasonId: string, startIndex?: number, size?: number, serachUsername?: string): PromiseResponse; /** * @param startIndex (default: 0) * @param endIndex (default: 10) */ getCompetitiveUpdates(subject: string, queueId?: QueueId.ID, startIndex?: number, endIndex?: number): PromiseResponse; }