import { BlizzardNamespaces, GenderName, Href, KeyBase, MediaAsset, NameId, NameIdKey, Resource, ResponseBase } from "@blizzard-api/core";

//#region src/playable-class/types.d.ts
/**
 * The response for a playable class index.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface PlayableClassIndexResponse extends ResponseBase {
  classes: Array<NameIdKey>;
}
/**
 * The response for playable class media.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
 */
interface PlayableClassMediaResponse extends ResponseBase {
  assets: Array<MediaAsset>;
  id: number;
}
/**
 * The response for a playable class.
 * @see {@link https://develop.battle.net/documentation/world-of-warcraft-classic/game-data-apis}
 */
interface PlayableClassResponse extends NameId, ResponseBase {
  additional_power_types?: Array<NameIdKey>;
  gender_name: GenderName;
  media: Media;
  playable_races: Array<NameIdKey>;
  power_type: NameIdKey;
  pvp_talent_slots: Href;
  specializations?: Array<NameIdKey>;
}
interface Media extends KeyBase {
  id: number;
}
//#endregion
//#region src/playable-class/index.d.ts
/**
 * Get a playable class by ID.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @param playableClassId The playable class ID.
 * @returns The playable class. See {@link PlayableClassResponse}.
 */
declare function playableClass(namespace: Extract<BlizzardNamespaces, 'static-classic1x' | 'static-classic'>, playableClassId: number): Resource<PlayableClassResponse>;
/**
 * Get a playable class index.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @returns The playable class index. See {@link PlayableClassIndexResponse}.
 */
declare function playableClassIndex(namespace: Extract<BlizzardNamespaces, 'static-classic1x' | 'static-classic'>): Resource<PlayableClassIndexResponse>;
/**
 * Get playable class media by ID.
 * @param namespace The namespace to use. See {@link BlizzardNamespaces}.
 * @param playableClassId The playable class ID.
 * @returns The playable class media. See {@link PlayableClassMediaResponse}.
 */
declare function playableClassMedia(namespace: Extract<BlizzardNamespaces, 'static-classic1x' | 'static-classic'>, playableClassId: number): Resource<PlayableClassMediaResponse>;
//#endregion
export { PlayableClassMediaResponse as a, PlayableClassIndexResponse as i, playableClassIndex as n, PlayableClassResponse as o, playableClassMedia as r, playableClass as t };
//# sourceMappingURL=index-DDSvssGG.d.ts.map