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

//#region src/character-specialization/types.d.ts
interface CharacterSpecializationsSummaryResponse extends ResponseBase {
  active_specialization?: NameIdKey;
  character: Character;
  specialization_groups: Array<SpecializationGroup>;
  specializations?: Array<ClassicProgressionSpecialization>;
}
interface ClassicProgressionSpecialization {
  specialization: NameIdKey;
  specialization_name: string;
  talents?: Array<TalentElement>;
}
interface SpecializationGroup {
  glyphs?: Array<NameId>;
  is_active: boolean;
  specializations?: Array<SpecializationGroupItem>;
}
interface SpecializationGroupItem {
  specialization_name: string;
  spent_points: number;
  talents: Array<TalentElement>;
}
interface SpellTooltip {
  cast_time: string;
  cooldown?: string;
  description: string;
  power_cost?: null | string;
  range?: string;
  spell: NameId;
}
interface TalentElement {
  spell_tooltip: SpellTooltip;
  talent: NameId | {
    id: number;
  };
  talent_rank?: number;
}
//#endregion
//#region src/character-specialization/index.d.ts
/**
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @param realmSlug The slug of the realm.
 * @param characterName The lowercase name of the character.
 * @returns a summary of a character's specializations.
 */
declare function characterSpecializationsSummary(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, characterName: string): Resource<CharacterSpecializationsSummaryResponse>;
//#endregion
export { CharacterSpecializationsSummaryResponse as n, characterSpecializationsSummary as t };
//# sourceMappingURL=index-DmVmLB_p.d.ts.map