import { Faction, KeyBase, NameIdKey, NullishNameIdKey, Resource, ResponseBase } from "@blizzard-api/core";

//#region src/reputations/types.d.ts
/**
 * The response for a reputation faction index.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface ReputationFactionIndexResponse extends ResponseBase {
  factions: Array<NullishNameIdKey>;
  root_factions: Array<NameIdKey>;
}
/**
 * The response for a reputation faction.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface ReputationFactionResponse extends ResponseBase {
  can_paragon?: boolean;
  description?: string;
  factions?: Array<NameIdKey>;
  header_shows_bar?: boolean;
  id: number;
  is_header?: boolean;
  is_renown?: boolean;
  name: string;
  player_faction?: Faction;
  renown_tiers?: Array<RenownTier>;
  reputation_tiers?: ReputationTier;
}
/**
 * The response for a reputation tier index.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface ReputationTiersIndexResponse extends ResponseBase {
  reputation_tiers: Array<ReputationTier>;
}
/**
 * The response for a reputation tier.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface ReputationTiersResponse extends ResponseBase {
  faction?: NameIdKey;
  id: number;
  tiers: Array<Tier>;
}
interface RenownTier {
  level: number;
  name: string;
  rewards: Array<NameIdKey>;
}
interface ReputationTier extends KeyBase {
  id: number;
  name?: string;
}
interface Tier {
  id: number;
  max_value: number;
  min_value: number;
  name: string;
}
//#endregion
//#region src/reputations/index.d.ts
/**
 * Get a reputation faction by ID.
 * @param reputationFactionId The reputation faction ID.
 * @returns The reputation faction. See {@link ReputationFactionResponse}.
 */
declare function reputationFaction(reputationFactionId: number): Resource<ReputationFactionResponse>;
/**
 * Get a reputation faction index.
 * @returns The reputation faction index. See {@link ReputationFactionIndexResponse}.
 */
declare function reputationFactionIndex(): Resource<ReputationFactionIndexResponse>;
/**
 * Get a reputation tier by ID.
 * @param reputationTiersId The reputation tier ID.
 * @returns The reputation tier. See {@link ReputationTiersResponse}.
 */
declare function reputationTiers(reputationTiersId: number): Resource<ReputationTiersResponse>;
/**
 * Get a reputation tier index.
 * @returns The reputation tier index. See {@link ReputationTiersIndexResponse}.
 */
declare function reputationTiersIndex(): Resource<ReputationTiersIndexResponse>;
//#endregion
export { ReputationFactionIndexResponse as a, ReputationTiersResponse as c, reputationTiersIndex as i, reputationFactionIndex as n, ReputationFactionResponse as o, reputationTiers as r, ReputationTiersIndexResponse as s, reputationFaction as t };
//# sourceMappingURL=index-DVrM4YtC2.d.ts.map