import { BlizzardNamespaces, Character, NameIdKey, Resource, ResponseBase } from "@blizzard-api/core";

//#region src/character-achievements/types.d.ts
interface CharacterAchievementsSummaryResponse extends ResponseBase {
  achievements: Array<Achievement>;
  category_progress: Array<CategoryProgress>;
  character: Character;
  recent_events: Array<RecentEvent>;
  total_points: number;
  total_quantity: number;
}
interface CharacterAchievementStatisticsResponse extends ResponseBase {
  categories: Array<Category>;
  character: Character;
}
interface Achievement {
  achievement: NameIdKey;
  completed_timestamp?: number;
  criteria?: Criteria;
  id: number;
}
interface Category {
  id: number;
  name: string;
  statistics?: Array<Statistic>;
  sub_categories?: Array<SubCategory>;
}
interface CategoryProgress {
  category: NameIdKey;
  points: number;
  quantity: number;
}
interface ChildCriterum {
  amount?: number;
  child_criteria?: Array<ChildCriterum2>;
  id: number;
  is_completed: boolean;
}
interface ChildCriterum2 {
  amount?: number;
  child_criteria?: Array<ChildCriterum3>;
  id: number;
  is_completed: boolean;
}
interface ChildCriterum3 {
  amount?: number;
  id: number;
  is_completed: boolean;
}
interface Criteria {
  amount?: number;
  child_criteria?: Array<ChildCriterum>;
  id: number;
  is_completed: boolean;
}
interface RecentEvent {
  achievement: NameIdKey;
  timestamp: number;
}
interface Statistic {
  description?: null | string;
  id: number;
  last_updated_timestamp: number;
  name: string;
  quantity: number;
}
interface SubCategory {
  id: number;
  name: string;
  statistics: Array<Statistic>;
}
//#endregion
//#region src/character-achievements/index.d.ts
/**
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}. Note: This API is not supported for classic era realms.
 * @param realmSlug The slug of the realm.
 * @param characterName The lowercase name of the character.
 * @returns a summary of the achievements a character has completed.
 */
declare function characterAchievementsSummary(namespace: Extract<BlizzardNamespaces, 'profile-classic'>, realmSlug: string, characterName: string): Resource<CharacterAchievementsSummaryResponse>;
/**
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}. Note: This API is not supported for classic era realms.
 * @param realmSlug The slug of the realm.
 * @param characterName The lowercase name of the character.
 * @returns a character's statistics as they pertain to achievements.
 */
declare function characterAchievementStatistics(namespace: Extract<BlizzardNamespaces, 'profile-classic'>, realmSlug: string, characterName: string): Resource<CharacterAchievementStatisticsResponse>;
//#endregion
export { CharacterAchievementsSummaryResponse as i, characterAchievementsSummary as n, CharacterAchievementStatisticsResponse as r, characterAchievementStatistics as t };
//# sourceMappingURL=index-BZ8QSRSe.d.ts.map