guildwars2-ts
Version:
GuildWars 2 API Wrapper in Typescript
298 lines (297 loc) • 8.54 kB
TypeScript
import type { z } from 'zod';
import { ApiBase } from '../../base/apiBase';
import { GuildPermissionsDTO } from '../../models';
import { stringArrayType } from '../v2apiUtils';
/**
* /v2/guild Api
*/
export declare class GuildApi extends ApiBase {
/**
* Returns core details about a given guild.
* The end point will include more or less fields depend on whether an API Key of a Leader or
* Member of the Guild with the guilds scope is included in the request.
*
* @param id - The guild id
*/
get(id: string): Promise<{
id: string;
name: string;
tag: string;
emblem?: {
background: {
id: number;
colors: number[];
};
foreground: {
id: number;
colors: number[];
};
flags: ("FlipBackgroundHorizontal" | "FlipBackgroundVertical" | "FlipForegroundHorizontal" | "FlipForegroundVertical")[];
} | undefined;
level?: number | undefined;
motd?: string | undefined;
influence?: number | undefined;
aetherium?: string | undefined;
favor?: number | undefined;
member_count?: number | undefined;
member_capacity?: number | undefined;
}>;
/**
* Returns information about certain events in a guild's log.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
* @param since - Starting point for the log, by log id
*/
getLog(id: string, since?: number): Promise<({
id: number;
time: string;
} | {
type: "joined";
user: string;
id: number;
time: string;
} | {
type: "invited";
user: string;
invited_by: string;
id: number;
time: string;
} | {
type: "kick";
user: string;
kicked_by: string;
id: number;
time: string;
} | {
type: "rank_change";
user: string;
old_rank: string;
new_rank: string;
id: number;
time: string;
changed_by?: string | undefined;
} | {
type: "stash";
operation: "deposit" | "withdraw" | "move";
item_id: number;
count: number;
coins: number;
id: number;
time: string;
} | {
type: "motd";
user: string;
motd: string;
id: number;
time: string;
} | {
type: "upgrade";
action: "queued" | "cancelled" | "completed" | "sped_up";
upgrade_id: number;
id: number;
time: string;
count?: number | undefined;
recipe_id?: number | undefined;
})[]>;
/**
* Returns information about the members of a specified guild.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getMembers(id: string): Promise<{
name: string;
rank: string;
joined: string | null;
}[]>;
/**
* Returns information about the ranks of a specified guild.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getRanks(id: string): Promise<{
id: string;
order: number;
permissions: string[];
icon: string;
}[]>;
/**
* Returns information about the items in a guild's vault.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getStash(id: string): Promise<{
upgrade_id: number;
size: number;
coins: number;
note: string;
inventory: ({
id: number;
count: number;
} | null)[];
}[]>;
/**
* Returns information about the items in a guild's storage.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getStorage(id: string): Promise<{
id: number;
count: number;
}[]>;
/**
* Returns information about the teams in a guild.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getTeams(id: string): Promise<{
id: number;
members: {
name: string;
role: "Member" | "Captain";
}[];
name: string;
aggregate: {
wins: number;
losses: number;
desertions: number;
byes: number;
forfeits: number;
};
ladders: {
ranked?: {
wins: number;
losses: number;
desertions: number;
byes: number;
forfeits: number;
} | undefined;
unranked?: {
wins: number;
losses: number;
desertions: number;
byes: number;
forfeits: number;
} | undefined;
};
games: {
id: string;
map_id: string;
started: string;
ended: string;
team: string;
scores: {
red: number;
blue: number;
};
rating_type: "Ranked" | "Unranked" | "None";
rating_change: number;
season?: string | undefined;
}[];
seasons?: {
id: string;
wins: number;
losses: number;
rating: number;
}[] | undefined;
}[]>;
/**
* Returns information about the items in a guild's treasury.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getTreasury(id: string): Promise<{
item_id: number;
count: number;
needed_by: {
upgrade_id: number;
count: number;
}[];
}[]>;
/**
* Returns information about the guild's upgrades.
* The endpoint requires the scope guilds, and will only work if the API key is from the guild leader's account.
*
* @param id - Unique guild id
*/
getUpgrades(id: string): Promise<number[]>;
/**
* Returns information about all guild permissions.
*/
getPermissions(): Promise<z.infer<typeof stringArrayType>>;
/**
* Returns information about all guild permissions.
*
* @param ids - Permission ids
*/
getPermissions(ids: string[]): Promise<z.infer<typeof GuildPermissionsDTO>>;
/**
* Returns information on guild ids to be used for other API queries.
*
* @param name - Guild name
*/
find(name: string): Promise<string[]>;
/**
* Returns information about all available Guild Hall upgrades, including scribe decorations.
*
* @param ids - Guild upgrade ids
*/
upgradeInfo(ids: number[]): Promise<({
id: number;
name: string;
description: string;
icon: string;
build_time: number;
required_level: number;
experience: number;
prerequisites: number[];
costs: ({
type: "Item";
name: string;
count: number;
item_id?: number | undefined;
} | {
type: "Collectible";
name: string;
count: number;
item_id?: number | undefined;
} | {
type: "Currency";
name: string;
count: number;
} | {
type: "Coins";
count: number;
})[];
} & ({
type: "AccumulatingCurrency";
} | {
type: "Boost";
} | {
type: "Claimable";
} | {
type: "Consumable";
} | {
type: "Decoration";
} | {
type: "GuildHall";
} | {
type: "GuildHallExpedition";
} | {
type: "Hub";
} | {
type: "Queue";
} | {
type: "Unlock";
} | {
type: "BankBag";
bag_max_items?: number | undefined;
bag_max_coins?: number | undefined;
}))[]>;
}