@blizzard-api/classic-wow
Version:
A series of helpers to interact with the World of Warcraft Classic Blizzard API
143 lines (142 loc) • 4.42 kB
TypeScript
import { BlizzardNamespaces, Character, Color, Faction, Factions, Href, KeyBase, NameIdKey, Realm, Resource, ResponseBase } from "@blizzard-api/core";
//#region src/guild/types.d.ts
interface GuildAchievementsClassicEraResponse extends ResponseBase {
guild: Guild;
}
interface GuildAchievementsResponse extends ResponseBase {
achievements: Array<Achievement>;
category_progress: Array<CategoryProgress>;
guild: Guild;
recent_events: Array<RecentEvent>;
total_points: number;
total_quantity: number;
}
interface GuildActivityResponse extends ResponseBase {
activities?: Array<ActivityElement>;
guild: Guild;
}
interface GuildResponse extends ResponseBase {
achievement_points: number;
achievements: Href;
activity: Href;
created_timestamp: number;
crest?: Crest;
faction: Faction;
id: number;
member_count: number;
name: string;
name_search: string;
realm: Realm;
roster: Href;
}
interface GuildRosterResponse extends ResponseBase {
guild: Guild;
members: Array<Member>;
}
interface Achievement {
achievement: NameIdKey;
completed_timestamp?: number;
criteria?: Criteria;
id: number;
}
interface ActivityElement {
activity: {
type: string;
};
character_achievement: CharacterAchievement;
timestamp: number;
}
interface Border {
color: RgbWithId;
id: number;
media: KeyBase & {
id: number;
};
}
interface CategoryProgress {
category: NameIdKey;
points: number;
quantity: number;
}
interface CharacterAchievement {
achievement: NameIdKey;
character: Character;
}
interface ChildCriterum {
amount: number;
id: number;
is_completed: boolean;
}
interface Crest {
background: {
color: RgbWithId;
};
border: Border;
emblem: Border;
}
interface Criteria {
amount?: number;
child_criteria?: Array<ChildCriterum>;
id: number;
is_completed: boolean;
}
interface Guild extends NameIdKey {
faction: Faction;
realm: Realm;
}
interface Member {
character: RosterMemberCharacter;
rank: number;
}
interface Playable extends KeyBase {
id: number;
}
interface RecentEvent {
achievement: NameIdKey;
timestamp: number;
}
interface RgbWithId {
id: number;
rgba: Color;
}
interface RosterMemberCharacter extends Character {
faction: {
type: Factions;
};
level: number;
playable_class: Playable;
playable_race: Playable;
}
//#endregion
//#region src/guild/index.d.ts
/**
* @param namespace The namespace to use. See {@link BlizzardNamespaces}.
* @param realmSlug The slug of the realm.
* @param nameSlug The lowercase name of the guild.
* @returns a single guild by its name and realm.
*/
declare function guild(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, nameSlug: string): Resource<GuildResponse>;
/**
* @param namespace The namespace to use. See {@link BlizzardNamespaces}.
* @param realmSlug The slug of the realm.
* @param nameSlug The lowercase name of the guild.
* @returns a single guild's achievements by name and realm.
*/
declare function guildAchievements<T extends Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>>(namespace: T, realmSlug: string, nameSlug: string): Resource<T extends 'profile-classic1x' ? GuildAchievementsClassicEraResponse : GuildAchievementsResponse>;
/**
* @param namespace The namespace to use. See {@link BlizzardNamespaces}.
* @param realmSlug The slug of the realm.
* @param nameSlug The lowercase name of the guild.
* @returns a single guild's activity by name and realm.
*/
declare function guildActivity(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, nameSlug: string): Resource<GuildActivityResponse>;
/**
* @param namespace The namespace to use. See {@link BlizzardNamespaces}.
* @param realmSlug The slug of the realm.
* @param nameSlug The lowercase name of the guild.
* @returns a single guild's roster by its name and realm.
*/
declare function guildRoster(namespace: Extract<BlizzardNamespaces, 'profile-classic1x' | 'profile-classic'>, realmSlug: string, nameSlug: string): Resource<GuildRosterResponse>;
//#endregion
export { GuildAchievementsClassicEraResponse as a, GuildResponse as c, guildRoster as i, GuildRosterResponse as l, guildAchievements as n, GuildAchievementsResponse as o, guildActivity as r, GuildActivityResponse as s, guild as t };
//# sourceMappingURL=index-DajMx-uR.d.ts.map