import { BlizzardNamespaces, Faction, Gender, Href, NameIdKey, Realm, Resource, ResponseBase } from "@blizzard-api/core";

//#region ../wow/src/character-profile/types.d.ts
interface CharacterProfileStatusResponse extends ResponseBase {
  id: number;
  is_valid: boolean;
}
//#endregion
//#region src/character-profile/types.d.ts
interface CharacterProfileSummaryResponse extends ResponseBase {
  achievement_points?: number;
  achievements?: Href;
  active_spec: NameIdKey;
  active_title?: {
    name: string;
  };
  appearance: Href;
  average_item_level: number;
  character_class: NameIdKey;
  equipment: Href;
  equipped_item_level: number;
  experience: number;
  faction: Faction;
  gender: Gender;
  guild?: Guild;
  hunter_pets?: Href;
  id: number;
  is_ghost?: boolean;
  is_self_found?: boolean;
  last_login_timestamp: number;
  level: number;
  media: Href;
  name: string;
  pvp_summary: Href;
  race: NameIdKey;
  realm: Realm;
  specializations: Href;
  statistics: Href;
  titles: Href;
}
interface Guild extends NameIdKey {
  faction: Faction;
  realm: Realm;
}
//#endregion
//#region src/character-profile/index.d.ts
/**
 * Returns the status and a unique ID for a character. A client should delete information about a character from their application if any of the following conditions occur:
 * - an HTTP 404 Not Found error is returned
 * - the is_valid value is false
 * - the returned character ID doesn't match the previously recorded value for the character
 *
 * The following example illustrates how to use this endpoint:
 *
 * 1. A client requests and stores information about a character, including its unique character ID and the timestamp of the request.
 * 2. After 30 days, the client makes a request to the status endpoint to verify if the character information is still valid.
 * 3. If character cannot be found, is not valid, or the characters IDs do not match, the client removes the information from their application.
 * 4. If the character is valid and the character IDs match, the client retains the data for another 30 days.
 * @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 the status of the character profile for a character.
 */
declare function characterProfileStatus(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, characterName: string): Resource<typeof namespace extends 'profile-classic1x' ? CharacterProfileStatusResponse : never>;
/**
 * Returns a summary of the character profile for a character.
 * @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 the character profile for a character.
 */
declare function characterProfileSummary(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, characterName: string): Resource<CharacterProfileSummaryResponse>;
//#endregion
export { CharacterProfileStatusResponse as i, characterProfileSummary as n, CharacterProfileSummaryResponse as r, characterProfileStatus as t };
//# sourceMappingURL=index-0TuKK7MU.d.ts.map