// Type definitions for Riot Games API
// Project: https://developer.riotgames.com/
// Definitions by: Xavier Stouder
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module RiotGamesAPI{
/**
* champion-v1.2
*/
module Champion{
interface ChampionDto{
active: boolean,
botEnabled: boolean,
botMmEnabled: boolean,
freeToPlay: boolean,
id: number,
rankedPlayEnabled: boolean
}
interface ChampionListDto{
champions: Array
}
}
/**
* current-game-v1.0
*/
module CurrentGame{
interface CurrentGameInfo{
bannedChampion: Array,
gameId: number,
gameLength: number,
gameMode: number,
gameQueueConfigId: number,
gameStartTime: number,
gameType: string,
mapId: number,
observers: Observer,
participants: Array
platformId: string
}
interface BannedChampion{
championId: number,
pickTurn: number,
teamId: number
}
interface CurrentGameParticipant{
bot: boolean,
championId: number,
masteries: Array
profileIconId: number,
runes: Array,
spell1Id: number,
spell2Id: number,
summonerId: number,
summonerName: string,
teamId: number
}
interface Observer{
encryptionKey: string
}
interface Mastery{
masterId: number,
rank: number
}
interface Rune{
count: number,
runeId: number
}
}
/**
* featured-games-v1.0
*/
module FeaturedGames{
interface FeaturedGames{
clientRefreshInterval: number,
gameList: Array
}
interface FeaturedGameInfo{
bannedChampions: Array
gameId: number,
gameLength: number,
gameMode: string,
gameQueueConfigId: number,
gameStartTime: number,
gameType: string,
mapId: number,
observers: Observer,
participants: Array,
plateformId: string
}
interface Participant{
bot: boolean,
championId: number,
profileIconId: number,
spell1Id: number,
spell2Id: number,
summonerName: string,
teamId: number
}
interface BannedChampion{
championId: number,
pickTurn: number,
teamId: number
}
interface Observer{
encryptionKey: string
}
}
/**
* game-v1.3
*/
module Game{
interface RecentGamesDto{
games: Array,
summonerId: number
}
interface GameDto{
championId: number,
createDate: number,
fellowPlayers: Array,
gameId: number,
gameMode: string,
gameType: string,
invalid: boolean,
ipEarned: number,
level: number,
mapId: number,
spell1: number,
spell2: number
stats: RawStatsDto,
subType: string,
teamId: number
}
interface PlayerDto{
championId: number,
summonerId: number,
teamId: number
}
interface RawStatsDto{
assists: number,
barracksKilled: number,
championsKilled: number,
combatPlayerScore: number,
consumablesPurchased: number,
damageDealtPlayer: number,
doubleKills: number,
firstBlood: number,
gold: number,
goldEarned: number,
goldSpent: number,
item0: number,
item1: number,
item2: number,
item3: number,
item4: number,
item5: number,
item6: number,
itemsPurchased: number,
killingSprees: number,
largestCriticalStrike: number,
largestKillingSpree: number,
largestMultiKill: number,
legendaryItemsCreated: number,
level: number,
magicDamageDealtPlayer: number,
magicDamageDealtToChampions: number,
magicDamageTaken: number,
minionsDenied: number,
minionsKilled: number,
neutralMinionsKilled: number,
neutralMinionsKilledEnemyJungle: number,
neutralMinionsKilledYourJungle: number,
nexusKilled: boolean,
nodeCapture: number,
nodeCaptureAssist: number,
nodeNeutralize: number,
nodeNeutralizeAssist: number,
numDeaths: number,
numItemsBought: number,
objectivePlayerScore: number,
pentaKills: number,
physicalDamageDealtPlayer: number,
physicalDamageDealtToChampions: number,
physicalDamageTaken: number,
playerPosition: number,
playerRole: number,
quadraKills: number,
sightWardsBought: number,
spell1Cast: number,
spell2Cast: number,
spell3Cast: number,
spell4Cast: number,
summonSpell1Cast: number,
summonSpell2Cast: number,
superMonsterKilled: number,
team: number,
teamObjective: number,
timePlayed: number,
totalDamageDealt: number,
totalDamageDealtToChampions: number,
totalDamageTaker: number,
totalHeal: number,
totalPlayerScore: number,
totalScoreRank: number,
totalTimeCrowdControlDealt: number,
totalUnitsHealed: number,
tripleKills: number,
trueDamageDealtPlayer: number,
trueDamageDealtToChampions: number,
trueDamageTaken: number,
turrentsKilled: number,
unrealKills: number,
victoryPointTotal: number,
visionWardsBought: number,
wardKilled: number,
wardPlaced: number,
win: boolean
}
}
/**
* league-v2.5
*/
module League{
interface LeagueDto{
entries: Array,
name: string,
participantId: string,
queue: string,
tier: string
}
interface LeagueEntryDto{
division: string,
isFreshBlood: boolean,
isHotStreak: boolean,
isInactive: boolean,
isVeteran: boolean,
leaguePoints: number,
losses: number,
miniSeries: MiniSeriesDto,
playerOrTeamId: string,
playerOrTeamName: string,
wins: number
}
interface MiniSeriesDto{
losses: number,
progress: string,
target: number,
wins: number
}
}
/**
* lol-static-data-v1.2
*/
module LolStaticData{
interface ChampionListDto{
data: {[str: string]: ChampionDto},
format: string,
keys: {[str: string]: string},
type: string,
version: string
}
interface ChampionDto{
allytips: Array,
blurb: string,
enemytips: Array,
id: number,
image: ImageDto,
info: InfoDto,
key: string,
lore: string,
name: string,
partype: string,
passive: PassiveDto,
recommended: Array,
skins: Array,
spells: Array,
stats: StatsDto,
tags: Array,
title: string
}
interface ChampionSpellDto{
altimages: Array,
cooldown: Array,
cooldownBurn: string,
cost: Array,
costBurn: string,
costType: string,
description: string,
effect: Array>,
effectBurn: Array
image: ImageDto,
key: string,
leveltip: LevelTipDto,
maxrank: number,
name: string,
range: Array | string,
rangeBurn: string,
resource: string,
sanitizedDescription: string,
sanitizedTooltip: string,
tooltip: string,
vars: Array
}
interface ImageDto{
full: string,
group: string,
h: number,
sprite: string,
w: number,
x: number,
y: number
}
interface InfoDto{
attack: number,
defense: number,
difficulty: number,
magic: number
}
interface PassiveDto{
description: string,
image: ImageDto,
name: string,
sanitizedDescription: string
}
interface RecommendedDto{
block: Array,
champion: string,
map: string,
mode: string,
priority: boolean,
title: string,
type: string
}
interface SkinDto{
id: number,
name: string,
num: number
}
interface StatsDto{
armor: number,
armorperlevel: number,
attackdamage: number,
attackdamageperlevel: number,
attackrange: number,
attackspeedoffset: number,
attackspeedperlevel: number,
crit: number,
critperlevel: number,
hp: number,
hpperlevel: number,
hpregen: number,
hpregenperlevel: number,
movespeed: number,
mp: number,
mpperlevel: number,
mpregen: number,
mpregenperlevel: number,
spellblock: number,
spellblockperlevel: number
}
interface LevelTipDto{
effect: Array,
label: Array
}
interface SpellVarsDto{
coeff: Array,
dyn: string,
key: string,
link: string,
ranksWith: string
}
interface BlockDto{
items: Array,
recMath: boolean,
type: string
}
interface BlockItemDto{
count: number,
id: number
}
interface ItemListDto{
basic: BasicDataDto,
data: Array<{[str: string]: ItemDto}>
groups: Array,
tree: Array,
type: string,
version: string
}
interface BasicDataDto{
colloq: string,
consumeOnFull: boolean,
consumed: boolean,
depth: number,
description: string,
from: Array,
gold: GoldDto,
group: string,
hideFromAll: boolean,
id: number,
image: ImageDto,
inStore: boolean,
into: Array,
maps: Array<{[str: string]: boolean}>,
name: string,
plaintext: string,
requiredChampion: string,
rune: MetaDataDto,
sanitizedDescription: string,
specialRecipe: number,
stacks: number,
stats: BasicDataStatsDto,
tags: Array
}
interface GroupDto{
MaxGroupOwnable: string,
key: string
}
interface ItemDto{
colloq: string,
consumeOnFull: boolean,
consumed: boolean,
depth: number,
description: string,
effect: Array<{[str: string]: string}>,
from: Array,
gold: GoldDto,
group: string,
hideFromAll: boolean,
id: number,
image: ImageDto,
inStore: boolean,
into: Array,
maps: Array<{[str: string]: boolean}>,
name: string,
plaintext: string,
requiredChampion: string,
rune: MetaDataDto,
sanitizedDescription: string,
specialRecipe: number,
stacks: number,
stats: BasicDataStatsDto,
tags: Array
}
interface ItemTreeDto{
header: string,
tags: Array
}
interface BasicDataStatsDto{
FlatArmorMod: number,
FlatAttackSpeedMod: number,
FlatBlockMod: number,
FlatCritChanceMod: number,
FlatCritDamageMod: number,
FlatEXPBonus: number,
FlatEnergyPoolMod: number,
FlatEnergyRegenMod: number,
FlatHPPoolMod: number,
FlatHPRegenMod: number,
FlatMPPoolMod: number,
FlatMPRegenMod: number,
FlatMagicDamageMod: number,
FlatMovementSpeedMod: number,
FlatPhysicalDamageMod: number,
FlatSpellBlockMod: number,
PercentArmorMod: number,
PercentAttackSpeedMod: number,
PercentBlockMod: number,
PercentCritChanceMod: number,
PercentCritDamageMod: number,
PercentDodgeMod: number,
PercentEXPBonus: number,
PercentHPPoolMod: number,
PercentHPRegenMod: number,
PercentLifeStealMod: number,
PercentMPPoolMod: number,
PercentMPRegenMod: number,
PercentMagicDamageMod: number,
PercentMovementSpeedMod: number,
PercentPhysicalDamageMod: number,
PercentSpellBlockMod: number,
PercentSpellVampMod: number,
rFlatArmorModPerLevel: number,
rFlatArmorPenetrationMod: number,
rFlatArmorPenetrationModPerLevel: number,
rFlatCritChanceModPerLevel: number,
rFlatCritDamageModPerLevel: number,
rFlatDodgeMod: number,
rFlatDodgeModPerLevel: number,
rFlatEnergyModPerLevel: number,
rFlatEnergyRegenModPerLevel: number,
rFlatGoldPer10Mod: number,
rFlatHPModPerLevel: number,
rFlatHPRegenModPerLevel: number,
rFlatMPModPerLevel: number,
rFlatMPRegenModPerLevel: number,
rFlatMagicDamageModPerLevel: number,
rFlatMagicPenetrationMod: number,
rFlatMagicPenetrationModPerLevel: number,
rFlatMovementSpeedModPerLevel: number,
rFlatPhysicalDamageModPerLevel: number,
rFlatSpellBlockModPerLevel: number,
rFlatTimeDeadMod: number,
rFlatTimeDeadModPerLevel: number,
rPercentArmorPenetrationMod: number,
rPercentArmorPenetrationModPerLevel: number,
rPercentAttackSpeedModPerLevel: number,
rPercentCooldownMod: number,
rPercentCooldownModPerLevel: number,
rPercentMagicPenetrationMod: number,
rPercentMagicPenetrationModPerLevel: number,
rPercentMovementSpeedModPerLevel: number,
rPercentTimeDeadMod: number,
rPercentTimeDeadModPerLevel: number
}
interface GoldDto{
base: number,
purchasable: boolean,
sell: number,
total: number
}
interface MetaDataDto{
isRune: boolean,
tier: string,
type: string
}
interface LanguageStringsDto{
data: Array<{[str: string]: string}>,
type: string,
version: string
}
interface MapDataDto{
data: Array<{[str: string]: MapDetailsDto}>,
type: string,
version: string
}
interface MapDetailsDto{
image: ImageDto,
mapId: number,
mapName: string,
unpurchasableItemList: Array,
}
interface MasteryListDto{
data: Array<{[str: string]: MasteryDto}>,
tree: MasteryTreeDto,
type: string,
version: string
}
interface MasteryDto{
description: Array,
id: number,
image: ImageDto,
masteryTree: string,
name: string,
prereq: string,
ranks: number,
sanitizedDescription: Array
}
interface MasteryTreeDto{
Defense: Array,
Offense: Array,
Utility: Array
}
interface MasteryTreeListDto{
masteryTreeItems: Array
}
interface MasteryTreeItemDto{
masteryId: number,
prereq: string
}
interface RealmDto{
cdn: string,
css: string,
dd: string,
l: string,
lg: string,
n: Array<{[str: string]: string}>,
profileiconmax: number,
storage: string,
v: string
}
interface RuneListDto{
basic: BasicDataDto,
data: Array<{[str: string]: RuneDto}>,
type: string,
version: string
}
interface RuneDto{
colloq: string,
consumeOnFull: boolean,
consumed: boolean,
depth: number,
description: string,
from: Array,
group: string,
hideFromAll: boolean,
id: number,
image: ImageDto,
inStore: boolean,
into: Array,
maps: Array<{[str: string]: boolean}>,
name: string,
plaintext: string,
requiredChampion: string,
rune: MetaDataDto,
sanitizedDescription: string,
specialRecipe: number,
stacks: number,
stats: BasicDataStatsDto,
tags: Array
}
interface SummonerSpellListDto{
data: Array<{[str: string]: SummonerSpellDto}>,
type: string,
version: string
}
interface SummonerSpellDto{
cooldown: Array,
cooldownBurn: string,
cost: Array,
costBurn: string,
costType: string,
description: string,
effect: Array>,
effectBurn: Array,
id: number,
image: ImageDto,
key: string,
leveltip: LevelTipDto,
maxrank: number,
modes: Array,
name: string,
range: Array | string,
rangeBurn: string,
resource: string,
sanitizedDescription: string,
sanitizedTooltip: string,
summonerLevel: number,
tooltip: string,
vars: Array
}
}
/**
* lol-status-v1.0
*/
module LolStatus{
interface Shard{
hostname: string,
locales: Array,
name: string,
region_tag: string,
slug: string
}
interface ShardStatus{
hostname: string,
locales: Array,
name: string,
region_tag: string,
services: Array
slug: string
}
interface Service{
incidents: Array,
name: string,
slug: string,
status: string
}
interface Incident{
active: boolean,
created_at: string,
id: number,
updates: Array
}
interface Message{
author: string,
content: string,
created_at: string,
id: number,
severity: string,
translations: Array,
updated_at: string
}
interface Translation{
content: string,
locale: string,
updated_at: string
}
}
/**
* match-v2.2
*/
module Match{
interface MatchDetail{
mapId: number,
matchCreation: number,
matchId: number,
matchMode: string,
matchType: string,
matchVersion: string,
participantIdentities: Array,
participants: Array,
plateformId: string,
queueType: string,
region: string,
season: string,
teams: Array,
timeline: Timeline
}
interface Participant{
championId: number,
highestAchievedSeasonTier: string,
masteries: Array,
participantId: number,
runes: Array,
spell1Id: number,
spell2Id: number,
stats: ParticipantStats,
teamId: number,
timeline: ParticipantTimeline
}
interface ParticipantIdentity{
participantId: number,
player: Player
}
interface Team{
bans: Array,
baronKills: number,
dominionVictoryScore: number,
dragonKills: number,
firstBaron: boolean,
firstBlood: boolean,
firstDragon: boolean,
firstInhibitor: boolean,
firstTower: boolean,
inhibitorKills: number,
teamId: number,
towerKills: number,
vilemawKills: number,
winner: boolean
}
interface Timeline{
frameInverval: number,
frames: Array
}
interface Mastery{
masteryId: number,
rank: number
}
interface ParticipantStats{
assists: number,
champLevel: number,
combatPlayerScore: number,
deaths: number,
doubleKills: number,
firstBloodAssist: boolean,
firstBloodKill: boolean,
firstInhibitorAssist: boolean,
firstInhibitorKill: boolean,
firstTowerAssist: boolean,
firstTowerKill: boolean,
goldEarned: number,
goldSpent: number,
inhibitorKills: number,
item0: number,
item1: number,
item2: number,
item3: number,
item4: number,
item5: number,
item6: number,
killingSprees: number,
kills: number,
largestCriticalStrike: number,
largestKillingSpree: number,
largestMultiKill: number,
magicDamageDealt: number,
magicDamageDealtToChampions: number,
magicDamageTaken: number,
minionsKilled: number,
neutralMinionsKilled: number,
neutralMinionsKilledEnemyJungle: number,
neutralMinionsKilledTeamJungle: number,
nodeCapture: number,
nodeCaptureAssist: number,
nodeNeutralize: number,
nodeNeutralizeAssist: number,
objectivePlayerScore: number,
pentaKills: number,
physicalDamageDealt: number,
physicalDamageDealtToChampions: number,
physicalDamageTaken: number,
quadraKills: number,
sightWardsBoughtInGame: number,
teamObjective: number,
totalDamageDealt: number,
totalDamageDealtToChampions: number,
totalDamageTaken: number,
totalHeal: number,
totalPlayerScore: number,
totalScoreRank: number,
totalTimeCrowdControlDealt: number,
totalUnitsHealed: number,
towerKills: number,
tripleKills: number,
trueDamageDealt: number,
trueDamageDealtToChampions: number,
trueDamageTaken: number,
unrealKills: number,
visionWardsBoughtInGame: number,
wardsKilled: number,
wardsPlaced: number,
winner: boolean
}
interface ParticipantTimeline{
ancientGolemAssistsPerMinCounts: ParticipantTimelineData,
ancientGolemKillsPerMinCounts: ParticipantTimelineData,
assistedLaneDeathsPerMinDeltas: ParticipantTimelineData,
assistedLaneKillsPerMinDeltas: ParticipantTimelineData,
baronAssistsPerMinCounts: ParticipantTimelineData,
baronKillsPerMinCounts: ParticipantTimelineData,
creepsPerMinDeltas: ParticipantTimelineData,
csDiffPerMinDeltas: ParticipantTimelineData,
damageTakenDiffPerMinDeltas: ParticipantTimelineData,
damageTakenPerMinDeltas: ParticipantTimelineData,
dragonAssistsPerMinCounts: ParticipantTimelineData,
dragonKillsPerMinCounts: ParticipantTimelineData,
elderLizardAssistsPerMinCounts: ParticipantTimelineData,
elderLizardKillsPerMinCounts: ParticipantTimelineData,
goldPerMinDeltas: ParticipantTimelineData,
inhibitorAssistsPerMinCounts: ParticipantTimelineData,
inhibitorKillsPerMinCounts: ParticipantTimelineData,
lane: string,
role: string,
towerAssistsPerMinCounts: ParticipantTimelineData,
towerKillsPerMinCounts: ParticipantTimelineData,
towerKillsPerMinDeltas: ParticipantTimelineData,
vilemawAssistsPerMinCounts: ParticipantTimelineData,
vilemawKillsPerMinCounts: ParticipantTimelineData,
wardsPerMinDeltas: ParticipantTimelineData,
xpDiffPerMinDeltas: ParticipantTimelineData,
xpPerMinDeltas: ParticipantTimelineData
}
interface Rune{
rank: number,
runeId: number
}
interface Player{
matchHistoryUri: string,
profileIcon: number,
summonerId: number,
summonerName: string
}
interface BannedChampion{
championId: number,
pickTurn: number
}
interface Frame{
events: Array,
participanFrames: Array<{[str: string]: ParticipantFrame}>,
timestamp: number
}
interface ParticipantTimelineData{
tenToTwenty: number,
thirtyToEnd: number,
twentyToThirty: number,
zeroToTen: number
}
interface Event{
ascendedType: string,
assistingParticipantIds: Array,
buildingType: string,
creatorId: number,
eventType: string,
itemAfter: number,
itemBefore: number,
itemId: number,
killerId: number,
laneType: string,
levelUpType: string,
monsterType: string,
participantId: number,
pointCaptured: string,
position: Position,
skillSlot: number,
teamId: number,
timestamp: number,
towerType: string,
victimId: number,
wardType: string,
}
interface ParticipantFrame{
currentGold: number,
dominionScore: number,
jungleMinionsKilled: number,
level: number,
minionsKilled: number,
participantId: number,
position: Position,
teamScore: number,
totalGold: number,
xp: number
}
interface Position{
x: number,
y: number
}
}
/**
* matchlist-v2.2
*/
module MatchList{
interface MatchList{
endIndex: number,
matches: Array,
startIndex: number,
totalGames: number
}
interface MatchReference{
champion: number,
lane: string,
matchId: number,
plateformId: string,
queue: string,
region: string,
role: string,
season: string,
timestamp: number
}
}
/**
* stats-v1.3
*/
module Stats{
interface RankedStatsDto{
champions: Array,
modifyDate: number,
summonerId: number,
}
interface ChampionStatsDto{
id: number,
stats: AggregatedStatsDto
}
interface AggregatedStatsDto{
averageAssists: number,
averageChampionsKilled: number,
averageCombatPlayerScore: number,
averageNodeCapture: number,
averageNodeCaptureAssist: number,
averageNodeNeutralize: number,
averageNodeNeutralizeAssist: number,
averageNumDeaths: number,
averageObjectivePlayerScore: number,
averageTeamObjective: number,
averageTotalPlayerScore: number,
botGamesPlayed: number,
killingSpree: number,
maxAssists: number,
maxChampionsKilled: number,
maxCombatPlayerScore: number,
maxLargestCriticalStrike: number,
maxLargestKillingSpree: number,
maxNodeCapture: number,
maxNodeCaptureAssist: number,
maxNodeNeutralize: number,
maxNodeNeutralizeAssist: number,
maxNumDeaths: number,
maxObjectivePlayerScore: number,
maxTeamObjective: number,
maxTimePlayed: number,
maxTimeSpentLiving: number,
maxTotalPlayerScore: number,
mostChampionKillsPerSession: number,
mostSpellsCast: number,
normalGamesPlayed: number,
rankedPremadeGamesPlayed: number,
rankedSoloGamesPlayed: number,
totalAssists: number,
totalChampionKills: number,
totalDamageDealt: number,
totalDamageTaken: number,
totalDeathsPerSession: number,
totalDoubleKills: number,
totalFirstBlood: number,
totalGoldEarned: number,
totalHeal: number,
totalMagicDamageDealt: number,
totalMinionsKills: number,
totalNeutralMinionsKilled: number,
totalNodeCapture: number,
totalNodeNeutralize: number,
totalPentaKills: number,
totalPhysicalDamageDealt: number,
totalQuadraKills: number,
totalSessionsLost: number,
totalSessionsPlayed: number,
totalSessionsWon: number,
totalTripleKills: number,
totalTurretsKilleds: number,
totalUnrealKills: number
}
interface PlayerStatsSummaryListDto{
playerStatSummaries: Array,
summonerId: number
}
interface PlayerStatsSummaryDto{
aggregatedStats: AggregatedStatsDto,
losses: number,
modifyDate: number,
playerStatSummaryType: string,
wins: number
}
}
/**
* summoner-v1.4
*/
module Summoner{
interface SummonerDto{
id: number,
name: string,
profileIconId: number,
revisionDate: number,
summonerLevel: number
}
interface MasteryPagesDto{
pages: Array,
summonerId: number
}
interface MasteryPageDto{
current: boolean,
id: number,
masteries: Array,
name: string
}
interface MasteryDto{
id: number,
rank: number
}
interface RunePagesDto{
pages: Array,
summonerId: number
}
interface RunePageDto{
current: boolean,
id: number,
name: string,
slots: Array
}
interface RuneSlotDto{
runeId: number,
runeSlotId: number
}
}
/**
* team-v2.4
*/
module Team{
interface TeamDto{
createDate: number,
fullId: string,
lastGameDate: number,
lastJoinDate: number,
lastJoinedRankedTeamQueueDate: number,
matchHistory: Array,
modifyDate: number,
name: string,
roster: RosterDto,
secondLastJoinDate: number,
status: string,
tag: string,
teamStatDetails: Array,
thirdLastJoinDate: number
}
interface MatchHistorySummaryDto{
assists: number,
date: number,
deaths: number,
gameId: number,
gameMode: string,
invalid: boolean,
kills: number,
mapId: number,
opposingTeamKills: number,
opposingTeamName: string,
win: boolean
}
interface RosterDto{
memberList: Array,
ownerId: number
}
interface TeamStatDetailDto{
averageGamesPlayed: number,
losses: number,
teamStatType: string,
wins: number
}
interface TeamMemberInfoDto{
inviteDate: number,
joinDate: number,
playerId: number,
status: string
}
}
}