UNPKG

@blizzard-api/hs

Version:

A series of helpers to interact with the Hearthstone Blizzard API

374 lines (362 loc) 10.5 kB
import { Locales, Resource } from "@blizzard-api/core"; //#region src/base.d.ts type GameMode$1 = 'arena' | 'battlegrounds' | 'classic' | 'constructed' | 'duels' | 'mercenaries' | 'standard'; type SearchSortOption = `${SortOptions}:${SortDirection}`; type SortDirection = 'asc' | 'desc'; type SortOptions = 'attack' | 'class' | 'dataAdded' | 'groupByClass' | 'health' | 'manaCost' | 'name'; //#endregion //#region src/card-backs/types.d.ts interface CardBackSearchParameters { cardBackCategory?: 'achieve' | 'base' | 'blizzard' | 'esports' | 'events' | 'fireside' | 'game_license' | 'golden' | 'heroes' | 'legend' | 'pre_purchase' | 'promotion' | 'season'; locale?: Locales; page?: number; pageSize?: number; sort?: SearchSortOption; textFilter?: string; } interface CardBackSearchResponse { cardBacks: Array<SingleCardBackSearchResponse>; cardCount: number; page: number; pageCount: number; } interface SingleCardBackSearchResponse { id: number; image: string; name: Record<Locales, string> | string; slug: string; sortCategory: number; text: Record<Locales, string> | string; } //#endregion //#region src/card-backs/card-backs.d.ts /** * Returns a list of card backs based on the search parameters provided. * @param options The options for fetching card backs. See {@link CardBackSearchParameters}. * @returns The card back search resource. See {@link CardBackSearchResponse}. */ declare function cardBackSearch(options: CardBackSearchParameters): Resource<CardBackSearchResponse, CardBackSearchParameters>; /** * Returns a single card back based on the ID provided. * @param id The card back ID * @param locale The locale to use for fetching the card back (optional). * @returns The card back resource. See {@link SingleCardBackSearchResponse}. */ declare function fetchOneCardBack(id: string, locale?: Locales): Resource<SingleCardBackSearchResponse, { locale?: Locales; }>; //#endregion //#region src/cards/types.d.ts interface BlizzardCardSearchParameters extends BaseSearchParameters { attack?: string; defaultMercenary?: string; health?: string; mercenaryId?: string; } interface CardSearchParameters extends BaseSearchParameters { attack?: Array<number> | number; defaultMercenary?: Array<number> | number; health?: Array<number> | number; mercenaryId?: Array<number> | number; } interface CardSearchResponse { cardCount: number; cards: Array<Card$1>; page: number; pageCount: number; } interface FetchOneCardResponse { artistName: string; attack: number; cardSetId: number; cardTypeId: number; classId: number; collectible: number; cropImage: string; flavorText: Record<Locales, string> | string; health: number; id: number; image: Record<Locales, string> | string; imageGold: Record<Locales, string> | string; isZilliaxCosmeticModule: boolean; isZilliaxFunctionalModule: boolean; keywordIds: Array<number>; manaCost: number; multiClassIds: Array<number>; name: Record<Locales, string> | string; rarityId: number; slug: string; text: Record<Locales, string> | string; } interface BaseSearchParameters { gameMode?: GameMode$1; locale?: Locales; mercenaryRole?: string; minionType?: string; page?: number; pageSize?: number; sort?: 'attack:asc' | 'attack:desc' | 'health:asc' | 'health:desc' | 'name:asc' | 'name:desc' | 'tier:asc' | 'tier:desc'; textFilter?: string; tier?: 1 | 2 | 3 | 4 | 5 | 6 | 'hero'; } interface Card$1 { artistName: null | string; attack: number; cardSetId: number; cardTypeId: number; classId: null | number; collectible: number; cropImage: null | string; flavorText: string; health: number; id: number; image: string; imageGold: string; isZilliaxCosmeticModule: boolean; isZilliaxFunctionalModule: boolean; manaCost: number; mercenaryHero: MercenaryHero; minionTypeId: number; multiClassIds: Array<number>; multiTypeIds?: Array<number>; name: string; rarityId: number; slug: string; text: string; } interface MercenaryHero { collectible: number; craftingCost: number; default: number; faction: null | number; mercId: number; rarity: number; roleId: number; statsByLevel: Record<string, StatsByLevel>; } interface StatsByLevel { attack: number; health: number; } //#endregion //#region src/cards/cards.d.ts /** * Returns a list of cards based on the search parameters provided. * @param options The options for fetching cards. See {@link CardSearchParameters}. * @returns The card search resource. See {@link CardSearchResponse}. */ declare function cardSearch(options: CardSearchParameters): Resource<CardSearchResponse, BlizzardCardSearchParameters>; /** * Returns a single card based on the ID provided. * @param id The card ID * @param options The options for fetching a card. * @param options.gameMode The game mode to use for fetching the card (optional). * @param options.locale The locale to use for fetching the card (optional). * @returns The card resource. See {@link FetchOneCardResponse}. */ declare function fetchOneCard(id: string, options?: { gameMode?: GameMode$1; locale?: Locales; }): Resource<FetchOneCardResponse, { gameMode?: GameMode$1; locale?: Locales; }>; //#endregion //#region src/decks/types.d.ts interface DeckResponse { cardCount: number; cards: Array<Card>; class: Class$1; deckCode: string; format: string; hero: Hero; heroPower: Hero; version: number; } type DeckSearchParameters = { code: string; } | { hero?: string; ids: string; }; interface Card { armor?: number; artistName: string; attack?: number; bannedFromSideboard?: number; cardSetId: number; cardTypeId: number; childIds?: Array<number>; classId: number; collectible: number; cropImage: string; flavorText: string; health?: number; id: number; image: string; imageGold: string; isZilliaxCosmeticModule: boolean; isZilliaxFunctionalModule: boolean; keywordIds?: Array<number>; manaCost: number; minionTypeId?: number; multiClassIds: Array<number>; name: string; rarityId: number; slug: string; spellSchoolId?: number; text: string; } interface Class$1 { id: number; name: string; slug: string; } interface Hero { artistName: null | string; cardSetId: number; cardTypeId: number; classId: number; collectible: number; cropImage: null; flavorText: string; health?: number; id: number; image: string; imageGold: string; isZilliaxCosmeticModule: boolean; isZilliaxFunctionalModule: boolean; manaCost: number; multiClassIds: Array<number>; name: string; parentId: number; rarityId: null | number; slug: string; text: string; } //#endregion //#region src/decks/decks.d.ts /** * Returns a deck based on the code provided. * @param options The options for fetching a deck. * @returns The deck resource. See {@link DeckResponse}. */ declare function getDeck(options: { code: string; } | { hero?: string; ids: Array<string>; }): Resource<DeckResponse, DeckSearchParameters>; //#endregion //#region ../wow/src/base.d.ts /** * Base record interface containing name and id properties that often appear together in Blizzard API responses. */ interface NameId { id: number; name: string; } //#endregion //#region src/metadata/types.d.ts /** * Base record containing both {@link KeyBase} and {@link NameId} interfaces. */ interface AllMetadataResponse { arenaIds: Array<number>; bgGameModes: Array<GameMode>; cardBackCategories: Array<GameMode>; classes: Array<Class>; filterableFields: Array<string>; gameModes: Array<GameMode>; keywords: Array<Keyword>; mercenaryFactions: Array<GameMode>; mercenaryRoles: Array<GameMode>; minionTypes: Array<GameMode>; numericFields: Array<string>; rarities: Array<Rarity>; setGroups: Array<SetGroup>; sets: Array<Set>; spellSchools: Array<GameMode>; types: Array<GameMode>; } interface SpecificMetadataResponse extends NameId { aliasSetIds?: Array<number>; collectibleCount: number; collectibleRevealedCount: number; hyped: boolean; nonCollectibleCount: number; nonCollectibleRevealedCount: number; slug: string; type: SetType; } interface Class { alternateHeroCardIds?: Array<number>; cardId?: number; heroPowerCardId?: number; id: number; name: string; slug: string; } interface GameMode extends NameId { gameModes?: Array<number>; slug: string; } interface Keyword extends NameId { gameModes: Array<number>; refText: string; slug: string; text: string; } interface Rarity extends NameId { craftingCost: Array<null | number>; dustValue: Array<null | number>; slug: string; } interface Set extends NameId { aliasSetIds?: Array<number>; collectibleCount: number; collectibleRevealedCount: number; hyped: boolean; nonCollectibleCount: number; nonCollectibleRevealedCount: number; slug: string; type: SetType; } interface SetGroup { cardSets: Array<string>; icon?: string; name: string; slug: string; standard?: boolean; svg?: null | string; year?: number; yearRange?: string; } type SetType = '' | 'adventure' | 'base' | 'expansion'; //#endregion //#region src/metadata/metadata.d.ts /** * Returns all metadata * @returns The all metadata resource. See {@link AllMetadataResponse}. */ declare function allMetadata(): Resource<AllMetadataResponse>; /** * Returns specific metadata based on the type requested. * @param type The type of metadata to retrieve. * @returns The specific metadata resource. See {@link SpecificMetadataResponse}. */ declare function specificMetadata(type: 'classes' | 'keywords' | 'minionTypes' | 'rarities' | 'setGroups' | 'sets' | 'types'): Resource<SpecificMetadataResponse>; //#endregion //#region src/index.d.ts declare const hs: { cardBackSearch: typeof cardBackSearch; fetchOneCardBack: typeof fetchOneCardBack; cardSearch: typeof cardSearch; fetchOneCard: typeof fetchOneCard; getDeck: typeof getDeck; allMetadata: typeof allMetadata; specificMetadata: typeof specificMetadata; }; //#endregion export { AllMetadataResponse, BlizzardCardSearchParameters, CardBackSearchParameters, CardBackSearchResponse, CardSearchParameters, CardSearchResponse, DeckResponse, DeckSearchParameters, FetchOneCardResponse, SingleCardBackSearchResponse, SpecificMetadataResponse, allMetadata, cardBackSearch, cardSearch, hs as default, fetchOneCard, fetchOneCardBack, getDeck, hs, specificMetadata }; //# sourceMappingURL=index.d.ts.map