UNPKG

pokeapi-typescript

Version:

Typescript SDK for PokeAPI (https://pokeapi.co)

155 lines (154 loc) 5.99 kB
import type { Generation } from "../Games/Generation.js"; import type { Version } from "../Games/Version"; import type { VersionGroup } from "../Games/VersionGroup"; import type { Item } from "../Items/Item"; import type { Location } from "../Locations/Location"; import type { Move } from "../Moves/Move"; import type { MoveLearnMethod } from "../Moves/MoveLearnMethod"; import type { VersionEncounterDetail, VersionGameIndex } from "../Utility/CommonModels"; import type { NamedApiResource } from "../Utility/NamedApiResourceList"; import type { Ability } from "./Ability"; import type { PokemonForm } from "./PokemonForm"; import type { PokemonSpecies } from "./PokemonSpecies"; import type { Stat } from "./Stat"; import type { Type } from "./Type"; export type Pokemon = { abilities: PokemonAbility[]; base_experience: number; forms: NamedApiResource<PokemonForm>[]; game_indices: VersionGameIndex[]; height: number; held_items: PokemonHeldItem[]; id: number; is_default: boolean; location_area_encounters: string; moves: PokemonMove[]; name: string; order: number; past_types: PokemonTypePast[]; species: NamedApiResource<PokemonSpecies>; sprites: PokemonSprites; stats: PokemonStat[]; types: PokemonType[]; weight: number; }; export type PokemonAbility = { ability: NamedApiResource<Ability>; is_hidden: true; slot: number; }; export type PokemonType = { slot: number; type: NamedApiResource<Type>; }; export type PokemonFormType = { slot: number; type: NamedApiResource<Type>; }; export type PokemonTypePast = { generation: NamedApiResource<Generation>; type: PokemonType[]; }; export type PokemonHeldItem = { item: NamedApiResource<Item>; version_details: PokemonHeldItemVersion[]; }; export type PokemonHeldItemVersion = { rarity: number; version: NamedApiResource<Version>; }; export type PokemonMove = { move: NamedApiResource<Move>; version_group_details: PokemonMoveVersion[]; }; export type PokemonMoveVersion = { level_learned_at: number; move_learn_method: NamedApiResource<MoveLearnMethod>; version_group: NamedApiResource<VersionGroup>; }; export type PokemonStat = { base_stat: number; effort: number; stat: NamedApiResource<Stat>; }; export type PokemonSprites = { back_default: string; back_female: string; back_shiny: string; back_shiny_female: string; front_default: string; front_female: string; front_shiny: string; front_shiny_female: string; other: PokemonSpriteOther; versions: PokemonSpriteVersion; }; type SpriteVariant = { back_default: string | null; back_female: string | null; back_gray: string | null; back_shiny: string | null; back_shiny_female: string | null; front_default: string | null; front_female: string | null; front_gray: string | null; front_shiny: string | null; front_shiny_female: string | null; }; export type PokemonSpriteOther = { dream_world: Pick<SpriteVariant, "front_default" | "front_female">; "official-artwork": { front_default: string; }; }; type Generation1Sprite = { "red-blue": Pick<SpriteVariant, "back_default" | "back_gray" | "front_default" | "front_gray">; yellow: Pick<SpriteVariant, "back_default" | "back_gray" | "front_default" | "front_gray">; }; type Generation2Sprite = { crystal: Pick<SpriteVariant, "back_default" | "back_shiny" | "front_default" | "front_shiny">; gold: Pick<SpriteVariant, "back_default" | "back_shiny" | "front_default" | "front_shiny">; silver: Pick<SpriteVariant, "back_default" | "back_shiny" | "front_default" | "front_shiny">; }; type Generation3Sprite = { emerald: Pick<SpriteVariant, "front_default" | "front_shiny">; "firered-leafgreen": Pick<SpriteVariant, "back_default" | "back_shiny" | "front_default" | "front_shiny">; "ruby-sapphire": Pick<SpriteVariant, "back_default" | "back_shiny" | "front_default" | "front_shiny">; }; type Generation4Sprite = { "diamond-pearl": Pick<SpriteVariant, "back_default" | "back_female" | "back_shiny_female" | "back_shiny" | "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; "heartgold-soulsilver": Pick<SpriteVariant, "back_default" | "back_female" | "back_shiny_female" | "back_shiny" | "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; platinum: Pick<SpriteVariant, "back_default" | "back_female" | "back_shiny_female" | "back_shiny" | "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; }; type BlackWhiteSprite = Pick<SpriteVariant, "back_default" | "back_female" | "back_shiny_female" | "back_shiny" | "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; type Generation5Sprite = { "black-white": BlackWhiteSprite & { animated: BlackWhiteSprite; }; }; type Generation6Sprite = { "omegaruby-alphasapphire": Pick<SpriteVariant, "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; "x-y": Pick<SpriteVariant, "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; }; type Generation7Sprite = { icons: Pick<SpriteVariant, "front_default" | "front_female">; "ultra-sun-ultra-moon": Pick<SpriteVariant, "front_default" | "front_female" | "front_shiny_female" | "front_shiny">; }; type Generation8Sprite = { icons: Pick<SpriteVariant, "front_default" | "front_female">; }; type PokemonSpriteVersion = { "generation-i": Generation1Sprite; "generation-ii": Generation2Sprite; "generation-iii": Generation3Sprite; "generation-iv": Generation4Sprite; "generation-v": Generation5Sprite; "generation-vi": Generation6Sprite; "generation-vii": Generation7Sprite; "generation-viii": Generation8Sprite; }; export type LocationAreaEncounter = { location_area: NamedApiResource<Location>; version_details: VersionEncounterDetail[]; }; export {};