1export type Maybe<T> = T | null;
2export type InputMaybe<T> = Maybe<T>;
3export type Exact<T extends { [key: string]: unknown }> = {
4 [K in keyof T]: T[K];
5};
6export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
7 [SubKey in K]?: Maybe<T[SubKey]>;
8};
9export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
10 [SubKey in K]: Maybe<T[SubKey]>;
11};
12export type MakeEmpty<
13 T extends { [key: string]: unknown },
14 K extends keyof T
15> = { [_ in K]?: never };
16export type Incremental<T> =
17 | T
18 | {
19 [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
20 };
21/** All built-in and custom scalars, mapped to their actual values */
22export type Scalars = {
23 ID: { input: string; output: string };
24 String: { input: string; output: string };
25 Boolean: { input: boolean; output: boolean };
26 Int: { input: number; output: number };
27 Float: { input: number; output: number };
28};
29
30/** Move a Pokémon can perform with the associated damage and type. */
31export type Attack = {
32 __typename: 'Attack';
33 damage?: Maybe<Scalars['Int']['output']>;
34 name?: Maybe<Scalars['String']['output']>;
35 type?: Maybe<PokemonType>;
36};
37
38export type AttacksConnection = {
39 __typename: 'AttacksConnection';
40 fast?: Maybe<Array<Maybe<Attack>>>;
41 special?: Maybe<Array<Maybe<Attack>>>;
42};
43
44/** Requirement that prevents an evolution through regular means of levelling up. */
45export type EvolutionRequirement = {
46 __typename: 'EvolutionRequirement';
47 amount?: Maybe<Scalars['Int']['output']>;
48 name?: Maybe<Scalars['String']['output']>;
49};
50
51export type Pokemon = {
52 __typename: 'Pokemon';
53 attacks?: Maybe<AttacksConnection>;
54 /** @deprecated And this is the reason why */
55 classification?: Maybe<Scalars['String']['output']>;
56 evolutionRequirements?: Maybe<Array<Maybe<EvolutionRequirement>>>;
57 evolutions?: Maybe<Array<Maybe<Pokemon>>>;
58 /** Likelihood of an attempt to catch a Pokémon to fail. */
59 fleeRate?: Maybe<Scalars['Float']['output']>;
60 height?: Maybe<PokemonDimension>;
61 id: Scalars['ID']['output'];
62 /** Maximum combat power a Pokémon may achieve at max level. */
63 maxCP?: Maybe<Scalars['Int']['output']>;
64 /** Maximum health points a Pokémon may achieve at max level. */
65 maxHP?: Maybe<Scalars['Int']['output']>;
66 name: Scalars['String']['output'];
67 resistant?: Maybe<Array<Maybe<PokemonType>>>;
68 types?: Maybe<Array<Maybe<PokemonType>>>;
69 weaknesses?: Maybe<Array<Maybe<PokemonType>>>;
70 weight?: Maybe<PokemonDimension>;
71};
72
73export type PokemonDimension = {
74 __typename: 'PokemonDimension';
75 maximum?: Maybe<Scalars['String']['output']>;
76 minimum?: Maybe<Scalars['String']['output']>;
77};
78
79/** Elemental property associated with either a Pokémon or one of their moves. */
80export type PokemonType =
81 | 'Bug'
82 | 'Dark'
83 | 'Dragon'
84 | 'Electric'
85 | 'Fairy'
86 | 'Fighting'
87 | 'Fire'
88 | 'Flying'
89 | 'Ghost'
90 | 'Grass'
91 | 'Ground'
92 | 'Ice'
93 | 'Normal'
94 | 'Poison'
95 | 'Psychic'
96 | 'Rock'
97 | 'Steel'
98 | 'Water';
99
100export type Query = {
101 __typename: 'Query';
102 /** Get a single Pokémon by its ID, a three character long identifier padded with zeroes */
103 pokemon?: Maybe<Pokemon>;
104 /** List out all Pokémon, optionally in pages */
105 pokemons?: Maybe<Array<Maybe<Pokemon>>>;
106};
107
108export type QueryPokemonArgs = {
109 id: Scalars['ID']['input'];
110};
111
112export type QueryPokemonsArgs = {
113 limit?: InputMaybe<Scalars['Int']['input']>;
114 skip?: InputMaybe<Scalars['Int']['input']>;
115};