@blizzard-api/wow
Version:
A series of helpers to interact with the World of Warcraft Blizzard API
149 lines (148 loc) • 4.79 kB
TypeScript
import { Faction, KeyBase, MediaAsset, NameId, NameIdKey, Resource, ResponseBase } from "@blizzard-api/core";
//#region src/achievements/types.d.ts
/**
* Interface for a response from the achievement category index endpoint.
* @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
*/
interface AchievementCategoryIndexResponse extends ResponseBase {
categories: Array<NameIdKey>;
guild_categories: Array<NameIdKey>;
root_categories: Array<NameIdKey>;
}
/**
* Interface for a response from the achievement category endpoint.
* @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
*/
interface AchievementCategoryResponse extends NameId, ResponseBase {
achievements: Array<NameIdKey>;
aggregates_by_faction: {
alliance: {
points: number;
quantity: number;
};
horde: {
points: number;
quantity: number;
};
};
display_order: number;
is_guild_category: boolean;
parent_category?: NameIdKey;
subcategories?: Array<NameIdKey>;
}
/**
* Interface for a response from the achievement index endpoint.
* @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
*/
interface AchievementIndexResponse extends ResponseBase {
achievements: Array<NameIdKey>;
}
/**
* Interface for a response from the achievement media endpoint.
* @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
*/
interface AchievementMediaResponse extends ResponseBase {
assets: Array<MediaAsset>;
id: number;
}
/**
* Interface for a response from the achievement endpoint.
* @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
*/
interface AchievementResponse extends NameId, ResponseBase {
category: NameIdKey;
criteria?: Criteria;
description: null | string;
display_order: number;
guild_reward_items?: Array<NameIdKey>;
is_account_wide: boolean;
media: KeyBase & {
id: number;
};
next_achievement?: NameIdKey;
points: number;
prerequisite_achievement?: NameIdKey;
requirements?: {
faction: Faction;
};
reward_description?: string;
reward_item?: NameIdKey;
}
interface ChildCriteria {
achievement?: NameIdKey;
amount: number;
child_criteria?: Array<ChildCriteria2>;
description: null | string;
faction?: Faction;
id: number;
is_gold?: boolean;
operator?: Operator;
show_progress_bar?: boolean;
}
interface ChildCriteria2 {
achievement?: NameIdKey;
amount: number;
child_criteria?: Array<ChildCriteria3>;
description: null | string;
faction?: Faction;
id: number;
is_gold?: boolean;
operator?: Operator;
show_progress_bar?: boolean;
}
interface ChildCriteria3 {
achievement?: NameIdKey;
amount: number;
description: null | string;
faction?: Faction;
id: number;
is_gold?: boolean;
operator?: Operator;
show_progress_bar?: boolean;
}
interface Criteria {
amount: number;
child_criteria?: Array<ChildCriteria>;
description: null | string;
faction?: Faction;
id: number;
operator?: Operator;
show_progress_bar?: boolean;
}
interface Operator {
name: string;
type: 'AND' | 'COMPLETE_AT_LEAST';
}
//#endregion
//#region src/achievements/index.d.ts
/**
* Get an achievement by ID.
* @param achievementId The achievement ID.
* @returns The achievement. See {@link AchievementResponse}.
*/
declare function achievement(achievementId: number): Resource<AchievementResponse>;
/**
* Get an achievement category by ID.
* @param achievementCategoryId The achievement category ID.
* @returns The achievement category. See {@link AchievementCategoryResponse}.
*/
declare function achievementCategory(achievementCategoryId: number): Resource<AchievementCategoryResponse>;
/**
* Get an achievement category index.
* @returns The achievement category index. See {@link AchievementCategoryIndexResponse}.
*/
declare function achievementCategoryIndex(): Resource<AchievementCategoryIndexResponse>;
/**
* Get an achievement index.
* @returns The achievement index. See {@link AchievementIndexResponse}.
*/
declare function achievementIndex(): Resource<AchievementIndexResponse>;
/**
* Get achievement media by ID.
* @param achievementId The achievement ID.
* @returns The achievement media. See {@link AchievementMediaResponse}.
*/
declare function achievementMedia(achievementId: number): Resource<AchievementMediaResponse>;
//#endregion
export { achievementMedia as a, AchievementIndexResponse as c, achievementIndex as i, AchievementMediaResponse as l, achievementCategory as n, AchievementCategoryIndexResponse as o, achievementCategoryIndex as r, AchievementCategoryResponse as s, achievement as t, AchievementResponse as u };
//# sourceMappingURL=index-BdXHZTxx.d.ts.map