import { Color, Href, KeyBase, NameId, NameIdKey, NonNeutralFactions, Resource, ResponseBase } from "@blizzard-api/core";

//#region src/mythic-keystone-leaderboard/types.d.ts
/**
 * The response for a Mythic Keystone leaderboard index.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface MythicKeystoneLeaderboardIndexResponse extends ResponseBase {
  current_leaderboards: Array<NameIdKey>;
}
/**
 * The response for a Mythic Keystone leaderboard.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface MythicKeystoneLeaderboardResponse extends ResponseBase {
  connected_realm: Href;
  keystone_affixes: Array<KeystoneAffixElement>;
  leading_groups: Array<LeadingGroup>;
  map: NameId;
  map_challenge_mode_id: number;
  name: string;
  period: number;
  period_end_timestamp: number;
  period_start_timestamp: number;
}
interface KeystoneAffixElement {
  keystone_affix: NameIdKey;
  max_level?: number;
  starting_level: number;
}
interface LeadingGroup {
  completed_timestamp: number;
  duration: number;
  keystone_level: number;
  members: Array<Member>;
  mythic_rating: MythicRating;
  ranking: number;
}
interface Member {
  faction: {
    type: NonNeutralFactions;
  };
  profile: Profile;
  specialization: Specialization;
}
interface MythicRating {
  color: Color;
  rating: number;
}
interface Profile extends NameId {
  realm: Realm$1;
}
interface Realm$1 extends KeyBase {
  id: number;
  slug: string;
}
interface Specialization extends KeyBase {
  id: number;
}
//#endregion
//#region src/mythic-keystone-leaderboard/index.d.ts
/**
 * Get a Mythic Keystone leaderboard by connected realm ID, dungeon ID, and period.
 * @param connectedRealmId The connected realm ID.
 * @param dungeonId The dungeon ID.
 * @param period The period ID.
 * @returns The Mythic Keystone leaderboard. See {@link MythicKeystoneLeaderboardResponse}.
 */
declare function mythicKeystoneLeaderboard(connectedRealmId: number, dungeonId: number, period: number): Resource<MythicKeystoneLeaderboardResponse>;
/**
 * Get a Mythic Keystone leaderboard index by connected realm ID.
 * @param connectedRealmId The connected realm ID.
 * @returns The Mythic Keystone leaderboard index. See {@link MythicKeystoneLeaderboardIndexResponse}.
 */
declare function mythicKeystoneLeaderboardIndex(connectedRealmId: number): Resource<MythicKeystoneLeaderboardIndexResponse>;
//#endregion
export { MythicKeystoneLeaderboardResponse as i, mythicKeystoneLeaderboardIndex as n, MythicKeystoneLeaderboardIndexResponse as r, mythicKeystoneLeaderboard as t };
//# sourceMappingURL=index-BZ9PVBO42.d.ts.map