pokenode-ts 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +0 -11
  2. package/lib/index.d.ts +4106 -0
  3. package/lib/index.global.js +133 -0
  4. package/lib/index.js +14 -0
  5. package/lib/index.mjs +14 -0
  6. package/package.json +71 -58
  7. package/CHANGELOG.md +0 -7
  8. package/dist/clients/berry.client.js +0 -156
  9. package/dist/clients/contest.client.js +0 -133
  10. package/dist/clients/encounter.client.js +0 -163
  11. package/dist/clients/evolution.client.js +0 -103
  12. package/dist/clients/game.client.js +0 -210
  13. package/dist/clients/index.js +0 -15
  14. package/dist/clients/item.client.js +0 -257
  15. package/dist/clients/location.client.js +0 -210
  16. package/dist/clients/machine.client.js +0 -54
  17. package/dist/clients/main.client.js +0 -48
  18. package/dist/clients/move.client.js +0 -351
  19. package/dist/clients/pokemon.client.js +0 -728
  20. package/dist/clients/utility.client.js +0 -82
  21. package/dist/config/logger.js +0 -28
  22. package/dist/constants/base.js +0 -7
  23. package/dist/constants/berries.js +0 -88
  24. package/dist/constants/contests.js +0 -11
  25. package/dist/constants/encounters.js +0 -88
  26. package/dist/constants/endpoints.js +0 -58
  27. package/dist/constants/evolutions.js +0 -16
  28. package/dist/constants/games.js +0 -114
  29. package/dist/constants/index.js +0 -15
  30. package/dist/constants/items.js +0 -88
  31. package/dist/constants/locations.js +0 -23
  32. package/dist/constants/moves.js +0 -88
  33. package/dist/constants/pokemons.js +0 -148
  34. package/dist/constants/utilities.js +0 -19
  35. package/dist/index.d.ts +0 -3933
  36. package/dist/index.js +0 -9
  37. package/dist/models/Berry/berry.js +0 -2
  38. package/dist/models/Berry/index.js +0 -4
  39. package/dist/models/Common/description.js +0 -2
  40. package/dist/models/Common/effect.js +0 -2
  41. package/dist/models/Common/encounter.js +0 -2
  42. package/dist/models/Common/flavor-text.js +0 -2
  43. package/dist/models/Common/generation.js +0 -2
  44. package/dist/models/Common/index.js +0 -14
  45. package/dist/models/Common/language.js +0 -2
  46. package/dist/models/Common/machine.js +0 -2
  47. package/dist/models/Common/name.js +0 -2
  48. package/dist/models/Common/resource.js +0 -2
  49. package/dist/models/Common/verbose.js +0 -2
  50. package/dist/models/Common/version.js +0 -2
  51. package/dist/models/Contest/contest.js +0 -2
  52. package/dist/models/Contest/index.js +0 -4
  53. package/dist/models/Encounter/encounter.js +0 -2
  54. package/dist/models/Encounter/index.js +0 -4
  55. package/dist/models/Evolution/evolution.js +0 -2
  56. package/dist/models/Evolution/index.js +0 -4
  57. package/dist/models/Game/generation.js +0 -2
  58. package/dist/models/Game/index.js +0 -7
  59. package/dist/models/Game/pokedex.js +0 -2
  60. package/dist/models/Game/pokemon-entry.js +0 -2
  61. package/dist/models/Game/version.js +0 -2
  62. package/dist/models/Item/index.js +0 -4
  63. package/dist/models/Item/item.js +0 -2
  64. package/dist/models/Location/encounter.js +0 -2
  65. package/dist/models/Location/index.js +0 -7
  66. package/dist/models/Location/location.js +0 -2
  67. package/dist/models/Location/palpark.js +0 -2
  68. package/dist/models/Location/region.js +0 -2
  69. package/dist/models/Machine/index.js +0 -4
  70. package/dist/models/Machine/machine.js +0 -2
  71. package/dist/models/Moves/index.js +0 -4
  72. package/dist/models/Moves/moves.js +0 -2
  73. package/dist/models/Pokemon/ability.js +0 -2
  74. package/dist/models/Pokemon/characteristics.js +0 -2
  75. package/dist/models/Pokemon/egg-group.js +0 -2
  76. package/dist/models/Pokemon/gender.js +0 -2
  77. package/dist/models/Pokemon/growth-rates.js +0 -2
  78. package/dist/models/Pokemon/index.js +0 -13
  79. package/dist/models/Pokemon/nature.js +0 -2
  80. package/dist/models/Pokemon/pokeathlon-stat.js +0 -2
  81. package/dist/models/Pokemon/pokemon.js +0 -2
  82. package/dist/models/Pokemon/stats.js +0 -2
  83. package/dist/models/Pokemon/type.js +0 -2
  84. package/dist/models/index.js +0 -14
  85. package/dist/structures/base.js +0 -29
  86. package/dist/structures/index.js +0 -4
  87. package/jest.config.js +0 -25
package/lib/index.d.ts ADDED
@@ -0,0 +1,4106 @@
1
+ import pino from 'pino';
2
+ import { CacheOptions, AxiosCacheInstance } from 'axios-cache-interceptor';
3
+
4
+ /**
5
+ * The name and the URL of the referenced resource
6
+ */
7
+ interface NamedAPIResource {
8
+ /** The name of the referenced resource */
9
+ name: string;
10
+ /** The URL of the referenced resource */
11
+ url: string;
12
+ }
13
+ /**
14
+ * Calling any API endpoint without a resource ID or name will return a paginated list of available resources for that API.
15
+ * By default, a list "page" will contain up to 20 resources. If you would like to change this just add a 'limit' query parameter
16
+ * to the GET request, e.g. ?=60. You can use 'offset' to move to the next page, e.g. ?limit=60&offset=60
17
+ */
18
+ interface NamedAPIResourceList {
19
+ /** The total number of resources available from this API */
20
+ count: number;
21
+ /** The URL for the next page in the list */
22
+ next: string | null;
23
+ /** The URL for the previous page in the list */
24
+ previous: string | null;
25
+ /** A list of named API resources */
26
+ results: NamedAPIResource[];
27
+ }
28
+ /** An URL for another resource in the API */
29
+ interface APIResource {
30
+ /** The URL of the referenced resource */
31
+ url: string;
32
+ }
33
+
34
+ /**
35
+ * The localized name for an API resource in a specific language
36
+ */
37
+ interface Name {
38
+ /** The localized name for an API resource in a specific language */
39
+ name: string;
40
+ /** The language this name is in */
41
+ language: NamedAPIResource;
42
+ }
43
+
44
+ /**
45
+ * Languages for translations of API resource information
46
+ */
47
+ interface Language {
48
+ /** The identifier for this resource */
49
+ id: number;
50
+ /** The name for this resource */
51
+ name: string;
52
+ /** Whether or not the games are published in this language */
53
+ official: boolean;
54
+ /** The two-letter code of the country where this language is spoken. Note that it is not unique */
55
+ iso639: string;
56
+ /** The two-letter code of the language. Note that it is not unique */
57
+ iso3166: string;
58
+ /** The name of this resource listed in different languages */
59
+ names: Name[];
60
+ }
61
+
62
+ /**
63
+ * The localized description for an API resource in a specific language
64
+ */
65
+ interface Description {
66
+ /** The localized description for an API resource in a specific language. */
67
+ description: string;
68
+ /** The language this name is in */
69
+ language: NamedAPIResource;
70
+ }
71
+
72
+ /**
73
+ * The localized effect text for an API resource in a specific language
74
+ */
75
+ interface Effect {
76
+ /** The localized effect text for an API resource in a specific language. */
77
+ effect: string;
78
+ /** The language this effect is in */
79
+ language: NamedAPIResource;
80
+ }
81
+
82
+ /** Information of a pokemon encounter */
83
+ interface Encounter {
84
+ /** The lowest level the Pokémon could be encountered at */
85
+ min_level: number;
86
+ /** The highest level the Pokémon could be encountered at */
87
+ max_level: number;
88
+ /** A list of condition values that must be in effect for this encounter to occur */
89
+ condition_values: NamedAPIResource[];
90
+ /** Percent chance that this encounter will occur */
91
+ chance: number;
92
+ /** The method by which this encounter happens */
93
+ method: NamedAPIResource;
94
+ }
95
+
96
+ /**
97
+ * The localized flavor text for an API resource in a specific language
98
+ */
99
+ interface FlavorText {
100
+ /** The localized flavor text for an API resource in a specific language */
101
+ flavor_text: string;
102
+ /** The language this name is in */
103
+ language: NamedAPIResource;
104
+ }
105
+
106
+ /**
107
+ * The generation relevent to this game index
108
+ */
109
+ interface GenerationGameIndex {
110
+ /** The internal id of an API resource within game data */
111
+ game_index: number;
112
+ /** The generation relevent to this game index */
113
+ generation: NamedAPIResource;
114
+ }
115
+
116
+ /**
117
+ * The machine that teaches a move from an item
118
+ */
119
+ interface MachineVersionDetail {
120
+ /** The machine that teaches a move from an item */
121
+ machine: APIResource;
122
+ /** The version group of this specific machine */
123
+ version_group: NamedAPIResource;
124
+ }
125
+
126
+ /**
127
+ * The localized effect for an API resource
128
+ */
129
+ interface VerboseEffect {
130
+ /** The localized effect text for an API resource in a specific language */
131
+ effect: string;
132
+ /** The localized effect text in brief */
133
+ short_effect: string;
134
+ /** The language this effect is in */
135
+ language: NamedAPIResource;
136
+ }
137
+
138
+ /**
139
+ * Encounters and their specifics details
140
+ */
141
+ interface VersionEncounterDetail {
142
+ /** The game version this encounter happens in */
143
+ version: NamedAPIResource;
144
+ /** The total percentage of all encounter potential */
145
+ max_chance: number;
146
+ /** A list of encounters and their specifics */
147
+ encounter_details: Encounter[];
148
+ }
149
+ /**
150
+ * The internal id and version of an API resource
151
+ */
152
+ interface VersionGameIndex {
153
+ /** The internal id of an API resource within game data */
154
+ game_index: number;
155
+ /** The version relevent to this game index */
156
+ version: NamedAPIResource;
157
+ }
158
+ /**
159
+ * The flavor text of an API resource
160
+ */
161
+ interface VersionGroupFlavorText {
162
+ /** The localized name for an API resource in a specific language */
163
+ text: string;
164
+ /** The language this name is in */
165
+ language: NamedAPIResource;
166
+ /** The version group which uses this flavor text */
167
+ version_group: NamedAPIResource;
168
+ }
169
+
170
+ /**
171
+ * ## Berry
172
+ * Berries are small fruits that can provide HP and status condition restoration,
173
+ * stat enhancement, and even damage negation when eaten by Pokémon.
174
+ *
175
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Berry) for greater detail
176
+ */
177
+ interface Berry {
178
+ /** The identifier for this resource */
179
+ id: number;
180
+ /** The name for this resource */
181
+ name: string;
182
+ /** Time it takes the tree to grow one stage, in hours. Berry trees go through four of these growth stages before they can be picked */
183
+ growth_time: number;
184
+ /** The maximum number of these berries that can grow on one tree in Generation IV */
185
+ max_harvest: number;
186
+ /** The power of the move "Natural Gift" when used with this Berry */
187
+ natural_gift_power: number;
188
+ /** The size of this Berry, in millimeters */
189
+ size: number;
190
+ /** The smoothness of this Berry, used in making Pokéblocks or Poffins */
191
+ smoothness: number;
192
+ /** The speed at which this Berry dries out the soil as it grows. A higher rate means the soil dries more quickly */
193
+ soil_dryness: number;
194
+ /** The firmness of this berry, used in making Pokéblocks or Poffins */
195
+ firmness: NamedAPIResource;
196
+ /** A list of references to each flavor a berry can have and the potency of each of those flavors in regard to this berry */
197
+ flavors: BerryFlavorMap[];
198
+ /** Berries are actually items. This is a reference to the item specific data for this berry */
199
+ item: NamedAPIResource;
200
+ /** The type inherited by "Natural Gift" when used with this Berry */
201
+ natural_gift_type: NamedAPIResource;
202
+ }
203
+ /**
204
+ * Reference to the flavor a berry can have and the potency of each of those flavors in regard to this berry
205
+ */
206
+ interface BerryFlavorMap {
207
+ /** How powerful the referenced flavor is for this berry */
208
+ potency: number;
209
+ /** The referenced berry flavor */
210
+ flavor: NamedAPIResource;
211
+ }
212
+ /**
213
+ * ## Berry Flavor
214
+ * Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature.
215
+ *
216
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.
217
+ */
218
+ interface BerryFlavor {
219
+ /** The identifier for this resource */
220
+ id: number;
221
+ /** The name for this resource */
222
+ name: 'spicy' | 'dry' | 'sweet' | 'bitter' | 'sour';
223
+ /** A list of the berries with this flavor */
224
+ berries: FlavorBerryMap[];
225
+ /** The contest type that correlates with this berry flavor */
226
+ contest_type: NamedAPIResource;
227
+ /** The name of this resource listed in different languages */
228
+ names: Name[];
229
+ }
230
+ /**
231
+ * Berry with the given flavor
232
+ */
233
+ interface FlavorBerryMap {
234
+ /** How powerful the referenced flavor is for this berry */
235
+ potency: number;
236
+ /** The berry with the referenced flavor */
237
+ berry: NamedAPIResource;
238
+ }
239
+ /**
240
+ * ## Berry Firmness
241
+ * Berries can be soft, very soft, hard, super hard or very hard.
242
+ *
243
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness) for greater detail
244
+ */
245
+ interface BerryFirmness {
246
+ /** The identifier for this resource */
247
+ id: number;
248
+ /** The name for this resource */
249
+ name: 'very-soft' | 'soft' | 'hard' | 'very-hard' | 'super-hard';
250
+ /** A list of the berries with this firmness */
251
+ berries: NamedAPIResource[];
252
+ /** The name of this resource listed in different languages */
253
+ names: Name[];
254
+ }
255
+
256
+ /**
257
+ * ## Contest Type
258
+ * Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests.
259
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Contest_condition) for greater detail
260
+ */
261
+ interface ContestType {
262
+ /** The identifier for this resource */
263
+ id: number;
264
+ /** The name for this resource */
265
+ name: 'cool' | 'beauty' | 'cute' | 'smart' | 'tough';
266
+ /** The berry flavor that correlates with this contest type */
267
+ berry_flavor: NamedAPIResource;
268
+ /** The name of this contest type listed in different languages */
269
+ names: ContestName[];
270
+ }
271
+ /**
272
+ * The name of the given contest type
273
+ */
274
+ interface ContestName {
275
+ /** The name for this contest */
276
+ name: string;
277
+ /** The color associated with this contest's name */
278
+ color: string;
279
+ /** The language that this name is in */
280
+ language: NamedAPIResource;
281
+ }
282
+ /**
283
+ * ## Contest Effect
284
+ * Contest effects refer to the effects of moves when used in contests
285
+ */
286
+ interface ContestEffect {
287
+ /** The identifier for this resource */
288
+ id: number;
289
+ /** The base number of hearts the user of this move gets */
290
+ appeal: number;
291
+ /** The base number of hearts the user's opponent loses */
292
+ jam: number;
293
+ /** The result of this contest effect listed in different languages */
294
+ effect_entries: Effect[];
295
+ /** The flavor text of this contest effect listed in different languages */
296
+ flavor_text_entries: FlavorText[];
297
+ }
298
+ /**
299
+ * ## Super Contest Effect
300
+ * Super contest effects refer to the effects of moves when used in super contests.
301
+ * A Pokémon Super Contest is an expanded format of the [Pokémon Contests](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Contest)
302
+ * for the Generation IV games,
303
+ * specifically in [Diamond, Pearl](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Diamond_and_Pearl_Versions),
304
+ * and [Platinum](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Platinum_Version).
305
+ * In it, Pokémon are rated on their appearance and performance, rather than strength.
306
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_Super_Contest)
307
+ */
308
+ interface SuperContestEffect {
309
+ /** The identifier for this resource */
310
+ id: number;
311
+ /** The level of appeal this super contest effect has */
312
+ appeal: number;
313
+ /** The flavor text of this super contest effect listed in different languages */
314
+ flavor_text_entries: FlavorText[];
315
+ /** A list of moves that have the effect when used in super contests */
316
+ moves: NamedAPIResource[];
317
+ }
318
+
319
+ /**
320
+ * ## Encounter Method
321
+ * Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass.
322
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Wild_Pok%C3%A9mon) for greater detail.
323
+ */
324
+ interface EncounterMethod {
325
+ /** The identifier for this resource */
326
+ id: number;
327
+ /** The name for this resource */
328
+ name: string;
329
+ /** A good value for sorting */
330
+ order: number;
331
+ /** The name of this resource listed in different languages */
332
+ names: Name[];
333
+ }
334
+ /**
335
+ * ## Encounter Condition
336
+ * Conditions which affect what pokemon might appear in the wild, e.g., day or night.
337
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Time)
338
+ */
339
+ interface EncounterCondition {
340
+ /** The identifier for this resource */
341
+ id: number;
342
+ /** The name for this resource */
343
+ name: string;
344
+ /** The name of this resource listed in different languages */
345
+ names: Name[];
346
+ /** A list of possible values for this encounter condition */
347
+ values: NamedAPIResource[];
348
+ }
349
+ /**
350
+ * ## Encounter Condition Value
351
+ * Encounter condition values are the various states that an encounter
352
+ * condition can have, i.e., time of day can be either **day** or **night**
353
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Time)
354
+ */
355
+ interface EncounterConditionValue {
356
+ /** The identifier for this resource */
357
+ id: number;
358
+ /** The name for this resource */
359
+ name: string;
360
+ /** The condition this encounter condition value pertains to */
361
+ condition: NamedAPIResource;
362
+ /** The name of this resource listed in different languages */
363
+ names: Name[];
364
+ }
365
+
366
+ /**
367
+ * Evolution Detail
368
+ * All details regarding the specific details of the referenced Pokémon species evolution.
369
+ */
370
+ interface EvolutionDetail {
371
+ /** The item required to cause evolution this into Pokémon species. */
372
+ item: NamedAPIResource | null;
373
+ /** The type of event that triggers evolution into this Pokémon species. */
374
+ trigger: NamedAPIResource;
375
+ /** The id of the gender of the evolving Pokémon species must be in order to evolve into this Pokémon species. */
376
+ gender: number | null;
377
+ /** The item the evolving Pokémon species must be holding during the evolution trigger event to evolve into this Pokémon species. */
378
+ held_item: NamedAPIResource | null;
379
+ /** The move that must be known by the evolving Pokémon species during the evolution trigger event in order to evolve into this Pokémon species. */
380
+ known_move: NamedAPIResource | null;
381
+ /** The evolving Pokémon species must know a move with this type during the evolution trigger event in order to evolve into this Pokémon species. */
382
+ known_move_type: NamedAPIResource | null;
383
+ /** The location the evolution must be triggered at. */
384
+ location: NamedAPIResource | null;
385
+ /** The minimum required level of the evolving Pokémon species to evolve into this Pokémon species. */
386
+ min_level: number | null;
387
+ /** The minimum required level of happiness the evolving Pokémon species to evolve into this Pokémon species. */
388
+ min_happiness: number | null;
389
+ /** The minimum required level of beauty the evolving Pokémon species to evolve into this Pokémon species. */
390
+ min_beauty: number | null;
391
+ /** The minimum required level of affection the evolving Pokémon species to evolve into this Pokémon species. */
392
+ min_affection: number | null;
393
+ /** Whether or not it must be raining in the overworld to cause evolution this Pokémon species. */
394
+ needs_overworld_rain: boolean;
395
+ /** The Pokémon species that must be in the players party in order for the evolving Pokémon species to evolve into this Pokémon species. */
396
+ party_species: NamedAPIResource | null;
397
+ /**
398
+ * The player must have a Pokémon of this type in their party during the evolution trigger event
399
+ * in order for the evolving Pokémon species to evolve into this Pokémon species.
400
+ */
401
+ party_type: NamedAPIResource | null;
402
+ /** The required relation between the Pokémon's Attack and Defense stats. 1 means Attack > Defense. 0 means Attack = Defense. -1 means Attack < Defense. */
403
+ relative_physical_stats: 1 | 0 | -1 | null;
404
+ /** The required time of day. Day or night. */
405
+ time_of_day: 'Day' | 'Night' | '';
406
+ /** Pokémon species for which this one must be traded. */
407
+ trade_species: NamedAPIResource | null;
408
+ /** Whether or not the 3DS needs to be turned upside-down as this Pokémon levels up. */
409
+ turn_upside_down: boolean;
410
+ }
411
+ /**
412
+ * ## Chain Link
413
+ * Contains evolution details for a Pokémon in the chain.
414
+ * Each link references the next Pokémon in the natural evolution order
415
+ */
416
+ interface ChainLink {
417
+ /** Whether or not this link is for a baby Pokémon. This would only ever be true on the base link */
418
+ is_baby: boolean;
419
+ /** The Pokémon species at this point in the evolution chain */
420
+ species: NamedAPIResource;
421
+ /** All details regarding the specific details of the referenced Pokémon species evolution */
422
+ evolution_details: EvolutionDetail[];
423
+ /** A List of chain objects */
424
+ evolves_to: ChainLink[];
425
+ }
426
+ /**
427
+ * ## Evolution Chain
428
+ * Evolution chains are essentially family trees.
429
+ * They start with the lowest stage within a family and detail
430
+ * evolution conditions for each as well as Pokémon they can evolve
431
+ * into up through the hierarchy.
432
+ */
433
+ interface EvolutionChain {
434
+ /** The identifier for this resource */
435
+ id: number;
436
+ /**
437
+ * The item that a Pokémon would be holding when mating that would trigger
438
+ * the egg hatching a baby Pokémon rather than a basic Pokémon
439
+ */
440
+ baby_trigger_item: NamedAPIResource | null;
441
+ /**
442
+ * The base chain link object. Each link contains evolution details for a Pokémon in the chain.
443
+ * Each link references the next Pokémon in the natural evolution order
444
+ */
445
+ chain: ChainLink;
446
+ }
447
+ /**
448
+ * ## Evolution Trigger
449
+ * Evolution triggers are the events and conditions that cause a Pokémon to evolve.
450
+ * There are numerous methods of evolution which define how and when Pokémon evolve.
451
+ * Most Pokémon will evolve by leveling up while others evolve through specific means,
452
+ * such as being traded, achieving a certain amount of friendship or leveling at certain times, among others.
453
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution) for greater detail.
454
+ */
455
+ interface EvolutionTrigger {
456
+ /** The identifier for this resource. */
457
+ id: number;
458
+ /** The name for this resource. */
459
+ name: 'level-up' | 'trade' | 'use-item' | 'shed' | 'other';
460
+ /** The name of this resource listed in different languages. */
461
+ names: Name[];
462
+ /** A list of pokemon species that result from this evolution trigger. */
463
+ pokemon_species: NamedAPIResource[];
464
+ }
465
+
466
+ /**
467
+ * ## Generation
468
+ * A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include.
469
+ * In each generation, a new set of Pokémon, Moves, Abilities and Types that did not exist in the previous generation are released.
470
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Generation) for greater details.
471
+ */
472
+ interface Generation {
473
+ /** The identifier for this resource */
474
+ id: number;
475
+ /** The name for this resource */
476
+ name: string;
477
+ /** A list of abilities that were introduced in this generation */
478
+ abilities: NamedAPIResource[];
479
+ /** The name of this resource listed in different languages */
480
+ names: Name[];
481
+ /** The main region travelled in this generation */
482
+ main_region: NamedAPIResource;
483
+ /** A list of moves that were introduced in this generation */
484
+ moves: NamedAPIResource[];
485
+ /** A list of Pokémon species that were introduced in this generation */
486
+ pokemon_species: NamedAPIResource[];
487
+ /** A list of types that were introduced in this generation */
488
+ types: NamedAPIResource[];
489
+ /** A list of version groups that were introduced in this generation */
490
+ version_groups: NamedAPIResource[];
491
+ }
492
+
493
+ /**
494
+ * Catalogued pokémon for pokedex
495
+ */
496
+ interface PokemonEntry {
497
+ /** The index of this Pokémon species entry within the Pokédex */
498
+ entry_number: number;
499
+ /** The Pokémon species being encountered */
500
+ pokemon_species: NamedAPIResource;
501
+ }
502
+
503
+ /**
504
+ * ## Pokedex
505
+ * A Pokédex is a handheld electronic encyclopedia device;
506
+ * one which is capable of recording and retaining information of the various Pokémon in a given region
507
+ * with the exception of the national dex and some smaller dexes related to portions of a region.
508
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9dex) for greater detail
509
+ */
510
+ interface Pokedex {
511
+ /** The identifier for this resource */
512
+ id: number;
513
+ /** The name for this resource */
514
+ name: string;
515
+ /** Whether or not this Pokédex originated in the main series of the video games */
516
+ is_main_series: boolean;
517
+ /** The description of this resource listed in different languages */
518
+ descriptions: Description[];
519
+ /** The name of this resource listed in different languages */
520
+ names: Name[];
521
+ /** A list of Pokémon catalogued in this Pokédex and their indexes */
522
+ pokemon_entries: PokemonEntry[];
523
+ /** The region this Pokédex catalogues Pokémon for */
524
+ region: NamedAPIResource | null;
525
+ /** A list of version groups this Pokédex is relevant to */
526
+ version_groups: NamedAPIResource[];
527
+ }
528
+
529
+ /**
530
+ * ## Version
531
+ * Versions of the games, e.g., Red, Blue or Yellow,
532
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Core_series) for greater details.
533
+ */
534
+ interface Version {
535
+ /** The identifier for this resource */
536
+ id: number;
537
+ /** The name for this resource */
538
+ name: string;
539
+ /** The name of this resource listed in different languages */
540
+ names: Name[];
541
+ /** The version group this version belongs to */
542
+ version_group: NamedAPIResource;
543
+ }
544
+ /**
545
+ * ## Version Group
546
+ * Version groups categorize highly similar versions of the games
547
+ */
548
+ interface VersionGroup {
549
+ /** The identifier for this resource */
550
+ id: number;
551
+ /** The name for this resource */
552
+ name: string;
553
+ /** Order for sorting. Almost by date of release, except similar versions are grouped together */
554
+ order: number;
555
+ /** The generation this version was introduced in */
556
+ generation: NamedAPIResource;
557
+ /** A list of methods in which Pokémon can learn moves in this version group */
558
+ move_learn_methods: NamedAPIResource[];
559
+ /** A list of Pokédexes introduces in this version group */
560
+ pokedexes: NamedAPIResource[];
561
+ /** A list of regions that can be visited in this version group */
562
+ regions: NamedAPIResource[];
563
+ /** The versions this version group owns */
564
+ versions: NamedAPIResource[];
565
+ }
566
+
567
+ /**
568
+ * Sprites used to depict the given item in the game
569
+ */
570
+ interface ItemSprites {
571
+ /** The default depiction of this item */
572
+ default: string;
573
+ }
574
+ /**
575
+ * Pokémon that might be found in the wild holding the given item
576
+ */
577
+ interface ItemHolderPokemon {
578
+ /** The Pokémon that holds this item */
579
+ pokemon: NamedAPIResource;
580
+ /** The details for the version that this item is held in by the Pokémon */
581
+ version_details: ItemHolderPokemonVersionDetail[];
582
+ }
583
+ /**
584
+ * The details for the version that the given item is held in by the Pokémon
585
+ */
586
+ interface ItemHolderPokemonVersionDetail {
587
+ /** How often this Pokémon holds this item in this version */
588
+ rarity: number;
589
+ /** The version that this item is held in by the Pokémon */
590
+ version: NamedAPIResource;
591
+ }
592
+ /**
593
+ * ## Item Attribute
594
+ * Item attributes define particular aspects of items, e.g. "usable in battle" or "consumable"
595
+ */
596
+ interface ItemAttribute {
597
+ /** The identifier for this resource */
598
+ id: number;
599
+ /** The name for this resource */
600
+ name: string;
601
+ /** A list of items that have this attribute */
602
+ items: NamedAPIResource[];
603
+ /** The name of this item attribute listed in different languages */
604
+ names: Name[];
605
+ /** The description of this item attribute listed in different languages */
606
+ descriptions: Description[];
607
+ }
608
+ /**
609
+ * ## Item Category
610
+ * Item categories determine where items will be placed in the players bag
611
+ */
612
+ interface ItemCategory {
613
+ /** The identifier for this resource */
614
+ id: number;
615
+ /** The name for this resource */
616
+ name: string;
617
+ /** A list of items that are a part of this category */
618
+ items: NamedAPIResource[];
619
+ /** The name of this item category listed in different languages */
620
+ names: Name[];
621
+ /** The pocket items in this category would be put in */
622
+ pocket: NamedAPIResource;
623
+ }
624
+ /**
625
+ * ## Item Fling Effect
626
+ * The various effects of the move "Fling" when used with different items
627
+ */
628
+ interface ItemFlingEffect {
629
+ /** The identifier for this resource */
630
+ id: number;
631
+ /** The name for this resource */
632
+ name: string;
633
+ /** The result of this fling effect listed in different languages */
634
+ effect_entries: Effect[];
635
+ /** A list of items that have this fling effect */
636
+ items: NamedAPIResource[];
637
+ }
638
+ /**
639
+ * ## Item Pocket
640
+ * Pockets within the players bag used for storing items by category
641
+ */
642
+ interface ItemPocket {
643
+ /** The identifier for this resource */
644
+ id: number;
645
+ /** The name for this resource */
646
+ name: string;
647
+ /** A list of item categories that are relevant to this item pocket */
648
+ categories: NamedAPIResource[];
649
+ /** The name of this resource listed in different languages */
650
+ names: Name[];
651
+ }
652
+ /**
653
+ * ## Item
654
+ * An item is an object in the games which the player can pick up, keep in their bag, and use in some manner.
655
+ * They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.
656
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Item)
657
+ */
658
+ interface Item {
659
+ /** The identifier for this resource */
660
+ id: number;
661
+ /** The name for this resource */
662
+ name: string;
663
+ /** The price of this item in stores */
664
+ cost: number;
665
+ /** The power of the move Fling when used with this item. */
666
+ fling_power: number | null;
667
+ /** The effect of the move Fling when used with this item */
668
+ fling_effect: NamedAPIResource | null;
669
+ /** A list of attributes this item has */
670
+ attributes: NamedAPIResource[];
671
+ /** The category of items this item falls into */
672
+ category: NamedAPIResource;
673
+ /** The effect of this ability listed in different languages */
674
+ effect_entries: VerboseEffect[];
675
+ /** The flavor text of this ability listed in different languages */
676
+ flavor_text_entries: VersionGroupFlavorText[];
677
+ /** A list of game indices relevent to this item by generation */
678
+ game_indices: GenerationGameIndex[];
679
+ /** The name of this item listed in different languages */
680
+ names: Name[];
681
+ /** A set of sprites used to depict this item in the game */
682
+ sprites: ItemSprites;
683
+ /** A list of Pokémon that might be found in the wild holding this item */
684
+ held_by_pokemon: ItemHolderPokemon[];
685
+ /** An evolution chain this item requires to produce a bay during mating */
686
+ baby_trigger_for: APIResource | null;
687
+ /** A list of the machines related to this item */
688
+ machines: MachineVersionDetail[];
689
+ }
690
+
691
+ /**
692
+ * Method in which Pokémon may be encountered in the given area
693
+ * and how likely the method will occur depending on the version of the game
694
+ */
695
+ interface EncounterMethodRate {
696
+ /** The method in which Pokémon may be encountered in an area */
697
+ encounter_method: NamedAPIResource;
698
+ /** The chance of the encounter to occur on a version of the game */
699
+ version_details: EncounterVersionDetails[];
700
+ }
701
+ /**
702
+ * The chance of the encounter to occur on a version of the game
703
+ */
704
+ interface EncounterVersionDetails {
705
+ /** The chance of an encounter to occur */
706
+ rate: number;
707
+ /** The version of the game in which the encounter can occur with the given chance */
708
+ version: NamedAPIResource;
709
+ }
710
+ /**
711
+ * Describes a pokémon encounter in a given area
712
+ */
713
+ interface PokemonEncounter {
714
+ /** The Pokémon being encountered */
715
+ pokemon: NamedAPIResource;
716
+ /** A list of versions and encounters with Pokémon that might happen in the referenced location area */
717
+ version_details: VersionEncounterDetail[];
718
+ }
719
+
720
+ /**
721
+ * ## Location
722
+ * Locations that can be visited within the games.
723
+ * Locations make up sizable portions of regions, like cities or routes.
724
+ * - Check the [List of Locations](https://bulbapedia.bulbagarden.net/wiki/List_of_locations_by_name)
725
+ */
726
+ interface Location {
727
+ /** The identifier for this resource */
728
+ id: number;
729
+ /** The name for this resource */
730
+ name: string;
731
+ /** The region this location can be found in */
732
+ region: NamedAPIResource | null;
733
+ /** The name of this resource listed in different languages */
734
+ names: Name[];
735
+ /** A list of game indices relevent to this location by generation */
736
+ game_indices: GenerationGameIndex[];
737
+ /** Areas that can be found within this location */
738
+ areas: NamedAPIResource[];
739
+ }
740
+ /**
741
+ * ## Location Area
742
+ * Location areas are sections of areas, such as floors in a building or cave.
743
+ * Each area has its own set of possible Pokémon encounters.
744
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Area) for more details.
745
+ */
746
+ interface LocationArea {
747
+ /** The identifier for this resource */
748
+ id: number;
749
+ /** The name for this resource */
750
+ name: string;
751
+ /** The internal id of an API resource within game data */
752
+ game_index: number;
753
+ /** A list of methods in which Pokémon may be encountered in this area and how likely the method will occur depending on the version of the game */
754
+ encounter_method_rates: EncounterMethodRate[];
755
+ /** The region this location area can be found in */
756
+ location: NamedAPIResource;
757
+ /** The name of this resource listed in different languages */
758
+ names: Name[];
759
+ /** A list of Pokémon that can be encountered in this area along with version specific details about the encounter */
760
+ pokemon_encounters: PokemonEncounter[];
761
+ }
762
+
763
+ /**
764
+ * ## Pal Park Area
765
+ * Areas used for grouping Pokémon encounters in Pal Park.
766
+ * They're like habitats that are specific to Pal Park.
767
+ * Pal Park is divided into five separate areas:
768
+ * ---
769
+ * - [Field](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Field)
770
+ * - [Forest](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Forest)
771
+ * - [Mountain](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Mountain)
772
+ * - [Pond](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Pound)
773
+ * - [Sea](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Sea)
774
+ * - [Trivia](https://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_Pal_Park_location#Trivia)
775
+ * ---
776
+ * Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Pal_Park) for greater details.
777
+ */
778
+ interface PalParkArea {
779
+ /** The identifier for this resource */
780
+ id: number;
781
+ /** The name for this resource */
782
+ name: string;
783
+ /** The name of this resource listed in different languages */
784
+ names: Name[];
785
+ /** A list of Pokémon encountered in thi pal park area along with details */
786
+ pokemon_encounters: PalParkEncounterSpecies[];
787
+ }
788
+ /**
789
+ * Detais of a Pokémon encountered in thi Pal Park area
790
+ */
791
+ interface PalParkEncounterSpecies {
792
+ /** The base score given to the player when this Pokémon is caught during a pal park run */
793
+ base_score: number;
794
+ /** The base rate for encountering this Pokémon in this pal park area */
795
+ rate: number;
796
+ /** The Pokémon species being encountered */
797
+ pokemon_species: NamedAPIResource;
798
+ }
799
+
800
+ /**
801
+ * ## Region
802
+ * A region is an organized area of the Pokémon world.
803
+ * Most often, the main difference between regions is
804
+ * the species of Pokémon that can be encountered within them.
805
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Region) for greater details.
806
+ */
807
+ interface Region {
808
+ /** The identifier for this resource */
809
+ id: number;
810
+ /** A list of locations that can be found in this region */
811
+ locations: NamedAPIResource[];
812
+ /** The name for this resource */
813
+ name: string;
814
+ /** The name of this resource listed in different languages */
815
+ names: Name[];
816
+ /** The generation this region was introduced in */
817
+ main_generation: NamedAPIResource;
818
+ /** A list of pokédexes that catalogue Pokémon in this region */
819
+ pokedexes: NamedAPIResource[];
820
+ /** A list of version groups where this region can be visited */
821
+ version_groups: NamedAPIResource[];
822
+ }
823
+
824
+ /**
825
+ * ## Machine
826
+ * Machines are the representation of items that teach moves to Pokémon.
827
+ * They vary from version to version, so it is not certain that one specific
828
+ * [TM (Technical Machine)](https://bulbapedia.bulbagarden.net/wiki/TM) or
829
+ * [HM (Hidden Machine)](https://bulbapedia.bulbagarden.net/wiki/HM) corresponds to a single Machine.
830
+ */
831
+ interface Machine {
832
+ /** The identifier for this resource */
833
+ id: number;
834
+ /** The TM or HM item that corresponds to this machine */
835
+ item: NamedAPIResource;
836
+ /** The move that is taught by this machine */
837
+ move: NamedAPIResource;
838
+ /** The version group that this machine applies to */
839
+ version_group: NamedAPIResource;
840
+ }
841
+
842
+ /**
843
+ * ## Ability
844
+ * Abilities provide passive effects for Pokémon in battle or in the overworld.
845
+ * Pokémon have multiple possible abilities but can have only one ability at a time.
846
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Ability) for greater detail.
847
+ */
848
+ interface Ability {
849
+ /** The identifier for this resource */
850
+ id: number;
851
+ /** The name for this resource */
852
+ name: string;
853
+ /** Whether or not this ability originated in the main series of the video games */
854
+ is_main_series: boolean;
855
+ /** The generation this ability originated in */
856
+ generation: NamedAPIResource;
857
+ /** The name of this resource listed in different languages */
858
+ names: Name[];
859
+ /** The effect of this ability listed in different languages */
860
+ effect_entries: VerboseEffect[];
861
+ /** The list of previous effects this ability has had across version groups */
862
+ effect_changes: AbilityEffectChange[];
863
+ /** The flavor text of this ability listed in different languages */
864
+ flavor_text_entries: AbilityFlavorText[];
865
+ /** A list of Pokémon that could potentially have this ability */
866
+ pokemon: AbilityPokemon[];
867
+ }
868
+ /**
869
+ * Previous effects an ability has had across version groups
870
+ */
871
+ interface AbilityEffectChange {
872
+ /** The previous effect of this ability listed in different languages */
873
+ effect_entries: Effect[];
874
+ /** The version group in which the previous effect of this ability originated */
875
+ version_group: NamedAPIResource;
876
+ }
877
+ /**
878
+ * The flavor text of an ability
879
+ */
880
+ interface AbilityFlavorText {
881
+ /** The localized name for an API resource in a specific language */
882
+ flavor_text: string;
883
+ /** The language this text resource is in */
884
+ language: NamedAPIResource;
885
+ /** The version group that uses this flavor text */
886
+ version_group: NamedAPIResource;
887
+ }
888
+ /**
889
+ * Pokémon that could potentially have the given ability
890
+ */
891
+ interface AbilityPokemon {
892
+ /** Whether or not this a hidden ability for the referenced Pokémon */
893
+ is_hidden: boolean;
894
+ /**
895
+ * Pokémon have 3 ability 'slots' which hold references to possible abilities they could have.
896
+ * This is the slot of this ability for the referenced pokemon
897
+ */
898
+ slot: number;
899
+ /** The Pokémon this ability could belong to */
900
+ pokemon: NamedAPIResource;
901
+ }
902
+
903
+ /**
904
+ * ## Characteristic
905
+ * Characteristics indicate which stat contains a Pokémon's highest IV.
906
+ * A Pokémon's Characteristic is determined by the remainder of its highest IV divided by 5 (gene_modulo).
907
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Characteristic) for greater detail
908
+ */
909
+ interface Characteristic {
910
+ /** The identifier for this resource */
911
+ id: number;
912
+ /** The remainder of the highest stat/IV divided by 5 */
913
+ gene_modulo: number;
914
+ /** The possible values of the highest stat that would result in a Pokémon recieving this characteristic when divided by 5 */
915
+ possible_values: number[];
916
+ /** The highest stat for the referenced characteristic */
917
+ highest_stat: NamedAPIResource;
918
+ /** Descriptions for the referenced characteristic */
919
+ descriptions: Description[];
920
+ }
921
+
922
+ /**
923
+ * ## Egg Group
924
+ * Egg Groups are categories which determine which Pokémon are able to interbreed.
925
+ * Pokémon may belong to either one or two Egg Groups.
926
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater details.
927
+ */
928
+ interface EggGroup {
929
+ /** The identifier for this resource */
930
+ id: number;
931
+ /** The name for this resource */
932
+ name: 'monster' | 'water1' | 'water2' | 'water3' | 'bug' | 'flying' | 'ground' | 'fairy' | 'plant' | 'humanshape' | 'mineral' | 'indeterminate' | 'ditto' | 'dragon' | 'no-eggs';
933
+ /** The name of this resource listed in different languages */
934
+ names: Name[];
935
+ /** A list of all Pokémon species that are members of this egg group */
936
+ pokemon_species: NamedAPIResource[];
937
+ }
938
+
939
+ /**
940
+ * ## Gender
941
+ * Genders were introduced in Generation II for the purposes of breeding Pokémon
942
+ * but can also result in visual differences or even different evolutionary lines.
943
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Gender) for greater details.
944
+ */
945
+ interface Gender {
946
+ /** The identifier for this resource */
947
+ id: number;
948
+ /** The name for this resource */
949
+ name: 'male' | 'female' | 'genderless';
950
+ /** A list of Pokémon species that can be this gender and how likely it is that they will be */
951
+ pokemon_species_details: PokemonSpeciesGender[];
952
+ /** A list of Pokémon species that required this gender in order for a Pokémon to evolve into them */
953
+ required_for_evolution: NamedAPIResource[];
954
+ }
955
+ /**
956
+ * Pokémon species that can be this gender and how likely it is that they will be
957
+ */
958
+ interface PokemonSpeciesGender {
959
+ /** The chance of this Pokémon being female, in eighths; or -1 for genderless */
960
+ rate: number;
961
+ /** A Pokémon species that can be the referenced gender */
962
+ pokemon_species: NamedAPIResource;
963
+ }
964
+
965
+ /**
966
+ * Levels and the amount of experienced needed to atain them based on the given growth rate.
967
+ */
968
+ interface GrowthRateExperienceLevel {
969
+ /** The level gained. */
970
+ level: number;
971
+ /** The amount of experience required to reach the referenced level. */
972
+ experience: number;
973
+ }
974
+ /**
975
+ * ## Growth Rate
976
+ * Growth rates are the speed with which Pokémon gain levels through experience.
977
+ * - Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Experience) for greater details.
978
+ */
979
+ interface GrowthRate {
980
+ /** The identifier for this resource */
981
+ id: number;
982
+ /** The name for this resource */
983
+ name: 'slow' | 'medium' | 'fast' | 'medium-slow' | 'slow-then-very-fast' | 'fast-then-very-slow';
984
+ /** The formula used to calculate the rate at which the Pokémon species gains level */
985
+ formula: string;
986
+ /** The descriptions of this characteristic listed in different languages */
987
+ descriptions: Description[];
988
+ /** A list of levels and the amount of experienced needed to atain them based on this growth rate. */
989
+ levels: GrowthRateExperienceLevel[];
990
+ /** A list of Pokémon species that gain levels at this growth rate */
991
+ pokemon_species: NamedAPIResource[];
992
+ }
993
+
994
+ /**
995
+ * ## Nature
996
+ * Natures influence how a Pokémon's stats grow.
997
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Nature) for greater detail
998
+ */
999
+ interface Nature {
1000
+ /** The identifier for this resource */
1001
+ id: number;
1002
+ /** The name for this resource */
1003
+ name: string;
1004
+ /** The stat decreased by 10% in Pokémon with this nature */
1005
+ decreased_stat: NamedAPIResource | null;
1006
+ /** The stat increased by 10% in Pokémon with this nature */
1007
+ increased_stat: NamedAPIResource | null;
1008
+ /** The flavor hated by Pokémon with this nature */
1009
+ hates_flavor: NamedAPIResource | null;
1010
+ /** The flavor liked by Pokémon with this nature */
1011
+ likes_flavor: NamedAPIResource | null;
1012
+ /** A list of Pokéathlon stats this nature effects and how much it effects them */
1013
+ pokeathlon_stat_changes: NatureStatChange[];
1014
+ /** A list of battle styles and how likely a Pokémon with this nature is to use them in the Battle Palace or Battle Tent */
1015
+ move_battle_style_preferences: MoveBattleStylePreference[];
1016
+ /** The name of this resource listed in different languages */
1017
+ names: Name[];
1018
+ }
1019
+ /**
1020
+ * Pokéathlon stats a nature effects and how much it effects it
1021
+ */
1022
+ interface NatureStatChange {
1023
+ /** The amount of change */
1024
+ max_change: -1 | 1 | -2 | 2;
1025
+ /** The stat being affected */
1026
+ pokeathlon_stat: NamedAPIResource;
1027
+ }
1028
+ /**
1029
+ * Battle Style and how likely a Pokémon with the given nature is to use them
1030
+ * in the Battle Palace or Battle Tent
1031
+ */
1032
+ interface MoveBattleStylePreference {
1033
+ /** Chance of using the move, in percent, if HP is under one half */
1034
+ low_hp_preference: number;
1035
+ /** Chance of using the move, in percent, if HP is over one half */
1036
+ high_hp_preference: number;
1037
+ /** The move battle style */
1038
+ move_battle_style: NamedAPIResource;
1039
+ }
1040
+
1041
+ /**
1042
+ * ## Pokeathlon Stat
1043
+ * Pokeathlon Stats are different attributes of a Pokémon's performance in Pokéathlons.
1044
+ * In Pokéathlons, competitions happen on different courses; one for each of the different Pokéathlon stats.
1045
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon) for greater details.
1046
+ */
1047
+ interface PokeathlonStat {
1048
+ /** The identifier for this resource */
1049
+ id: number;
1050
+ /** The name for this resource */
1051
+ name: 'speed' | 'power' | 'skill' | 'stamina' | 'jump';
1052
+ /** The name of this resource listed in different languages */
1053
+ names: Name[];
1054
+ /** A detail of natures which affect this Pokéathlon stat positively or negatively */
1055
+ affecting_natures: NaturePokeathlonStatAffectSets;
1056
+ }
1057
+ /**
1058
+ * A nature and how it change the referenced Pokéathlon stat
1059
+ */
1060
+ interface NaturePokeathlonStatAffect {
1061
+ /** The maximum amount of change to the referenced Pokéathlon stat. */
1062
+ max_change: -1 | -2 | 1 | 2;
1063
+ /** The nature causing the change */
1064
+ nature: NamedAPIResource;
1065
+ }
1066
+ /**
1067
+ * A detail of natures which affect this Pokéathlon stat positively or negatively
1068
+ */
1069
+ interface NaturePokeathlonStatAffectSets {
1070
+ /** A list of natures and how they change the referenced Pokéathlon stat */
1071
+ increase: NaturePokeathlonStatAffect[];
1072
+ /** A list of natures and how they change the referenced Pokéathlon stat */
1073
+ decrease: NaturePokeathlonStatAffect[];
1074
+ }
1075
+
1076
+ /**
1077
+ * ## Stat
1078
+ * Stats determine certain aspects of battles. Each Pokémon has a value for each stat
1079
+ * which grows as they gain levels and can be altered momentarily by effects in battles
1080
+ */
1081
+ interface Stat {
1082
+ /** The identifier for this resource */
1083
+ id: number;
1084
+ /** The name for this resource */
1085
+ name: 'hp' | 'attack' | 'defense' | 'special-attack' | 'special-defense' | 'speed' | 'accuracy' | 'evasion';
1086
+ /** ID the games use for this stat */
1087
+ game_index: number;
1088
+ /** Whether this stat only exists within a battle */
1089
+ is_battle_only: boolean;
1090
+ /** A detail of moves which affect this stat positively or negatively */
1091
+ affecting_moves: MoveStatAffectSets;
1092
+ /** A detail of natures which affect this stat positively or negatively */
1093
+ affecting_natures: NatureStatAffectSets;
1094
+ /** A list of characteristics that are set on a Pokémon when its highest base stat is this stat */
1095
+ characteristics: APIResource[];
1096
+ /** The class of damage this stat is directly related to */
1097
+ move_damage_class: NamedAPIResource | null;
1098
+ /** The name of this resource listed in different languages */
1099
+ names: Name[];
1100
+ }
1101
+ /**
1102
+ * A detail of nature which affect the given stat stat positively or negatively
1103
+ */
1104
+ interface NatureStatAffectSets {
1105
+ /** A list of natures and how they change the referenced stat */
1106
+ increase: NamedAPIResource[];
1107
+ /** A list of nature sand how they change the referenced stat */
1108
+ decrease: NamedAPIResource[];
1109
+ }
1110
+ /**
1111
+ * Move and how it change the referenced stat
1112
+ */
1113
+ interface MoveStatAffect {
1114
+ /** The maximum amount of change to the referenced stat */
1115
+ change: -1 | -2 | 1 | 2;
1116
+ /** The move causing the change */
1117
+ move: NamedAPIResource;
1118
+ }
1119
+ /**
1120
+ * A detail of moves which affect an stat positively or negatively
1121
+ */
1122
+ interface MoveStatAffectSets {
1123
+ /** A list of moves and how they change the referenced stat */
1124
+ increase: MoveStatAffect[];
1125
+ /** A list of moves and how they change the referenced stat */
1126
+ decrease: MoveStatAffect[];
1127
+ }
1128
+
1129
+ /**
1130
+ * Details of Pokémon for a specific type.
1131
+ */
1132
+ interface TypePokemon {
1133
+ /** The order the Pokémon's types are listed in */
1134
+ slot: number;
1135
+ /** The Pokémon that has the referenced type */
1136
+ pokemon: NamedAPIResource;
1137
+ }
1138
+ /**
1139
+ * Detail of how effective a type is toward others and vice versa
1140
+ */
1141
+ interface TypeRelations {
1142
+ /** A list of types this type has no effect on */
1143
+ no_damage_to: NamedAPIResource[];
1144
+ /** A list of types this type is not very effect against */
1145
+ half_damage_to: NamedAPIResource[];
1146
+ /** A list of types this type is very effect against */
1147
+ double_damage_to: NamedAPIResource[];
1148
+ /** A list of types that have no effect on this type */
1149
+ no_damage_from: NamedAPIResource[];
1150
+ /** A list of types that are not very effective against this type */
1151
+ half_damage_from: NamedAPIResource[];
1152
+ /** A list of types that are very effective against this type */
1153
+ double_damage_from: NamedAPIResource[];
1154
+ }
1155
+ /**
1156
+ * ## Type
1157
+ * Types are properties for Pokémon and their moves.
1158
+ * Each type has three properties: which types of Pokémon it is super effective against,
1159
+ * which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against
1160
+ */
1161
+ interface Type {
1162
+ /** The identifier for this resource */
1163
+ id: number;
1164
+ /** The name for this resource */
1165
+ name: string;
1166
+ /** A detail of how effective this type is toward others and vice versa */
1167
+ damage_relations: TypeRelations;
1168
+ /** A list of game indices relevent to this item by generation */
1169
+ game_indices: GenerationGameIndex[];
1170
+ /** The generation this type was introduced in */
1171
+ generation: NamedAPIResource;
1172
+ /** The class of damage inflicted by this type */
1173
+ move_damage_class: NamedAPIResource;
1174
+ /** The name of this resource listed in different languages */
1175
+ names: Name[];
1176
+ /** A list of details of Pokémon that have this type */
1177
+ pokemon: TypePokemon[];
1178
+ /** A list of moves that have this type */
1179
+ moves: NamedAPIResource[];
1180
+ }
1181
+
1182
+ /**
1183
+ * ## Pokemon
1184
+ * Pokémon are the creatures that inhabit the world of the Pokémon games.
1185
+ * They can be caught using Pokéballs and trained by battling with other Pokémon.
1186
+ * Each Pokémon belongs to a specific species but may take on a variant
1187
+ * which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings.
1188
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species)) for greater detail.
1189
+ */
1190
+ interface Pokemon {
1191
+ /** The identifier for this resource */
1192
+ id: number;
1193
+ /** The name for this resource */
1194
+ name: string;
1195
+ /** The base experience gained for defeating this Pokémon */
1196
+ base_experience: number;
1197
+ /** The height of this Pokémon in decimetres */
1198
+ height: number;
1199
+ /** Set for exactly one Pokémon used as the default for each species */
1200
+ is_default: boolean;
1201
+ /** Order for sorting. Almost national order, except families are grouped together */
1202
+ order: number;
1203
+ /** The weight of this Pokémon in hectograms */
1204
+ weight: number;
1205
+ /** A list of abilities this Pokémon could potentially have */
1206
+ abilities: PokemonAbility[];
1207
+ /** A list of forms this Pokémon can take on */
1208
+ forms: NamedAPIResource[];
1209
+ /** A list of game indices relevent to Pokémon item by generation */
1210
+ game_indices: VersionGameIndex[];
1211
+ /** A list of items this Pokémon may be holding when encountered */
1212
+ held_items: PokemonHeldItem[];
1213
+ /** A link to a list of location areas, as well as encounter details pertaining to specific versions */
1214
+ location_area_encounters: string;
1215
+ /** A list of moves along with learn methods and level details pertaining to specific version groups */
1216
+ moves: PokemonMove[];
1217
+ /** A set of sprites used to depict this Pokémon in the game.
1218
+ * A visual representation of the various sprites can be found at [PokeAPI/sprites](https://github.com/PokeAPI/sprites#sprites)
1219
+ */
1220
+ sprites: PokemonSprites;
1221
+ /** The species this Pokémon belongs to */
1222
+ species: NamedAPIResource;
1223
+ /** A list of base stat values for this Pokémon */
1224
+ stats: PokemonStat[];
1225
+ /** A list of details showing types this Pokémon has */
1226
+ types: PokemonType[];
1227
+ /** Data describing a Pokemon's types in a previous generation. */
1228
+ past_types: PokemonPastType[];
1229
+ }
1230
+ /**
1231
+ * Abilities the given pokémon could potentially have
1232
+ */
1233
+ interface PokemonAbility {
1234
+ /** Whether or not this is a hidden ability */
1235
+ is_hidden: boolean;
1236
+ /** The slot this ability occupies in this Pokémon species */
1237
+ slot: number;
1238
+ /** The ability the Pokémon may have */
1239
+ ability: NamedAPIResource;
1240
+ }
1241
+ /**
1242
+ * Details showing types the given Pokémon has
1243
+ */
1244
+ interface PokemonType {
1245
+ /** The order the Pokémon's types are listed in */
1246
+ slot: number;
1247
+ /** The type the referenced Pokémon has */
1248
+ type: NamedAPIResource;
1249
+ }
1250
+ /**
1251
+ * Data describing a Pokemon's types in a previous generation.
1252
+ */
1253
+ interface PokemonPastType {
1254
+ /** The generation of this Pokémon Type. */
1255
+ generation: NamedAPIResource;
1256
+ /** Types this of this Pokémon in a previos generation. */
1257
+ types: PokemonType[];
1258
+ }
1259
+ /**
1260
+ * Items the given Pokémon may be holding when encountered
1261
+ */
1262
+ interface PokemonHeldItem {
1263
+ /** The item the referenced Pokémon holds */
1264
+ item: NamedAPIResource;
1265
+ /** The details of the different versions in which the item is held */
1266
+ version_details: PokemonHeldItemVersion[];
1267
+ }
1268
+ /**
1269
+ * The details of the different versions in which the item is held
1270
+ */
1271
+ interface PokemonHeldItemVersion {
1272
+ /** The version in which the item is held */
1273
+ version: NamedAPIResource;
1274
+ /** How often the item is held */
1275
+ rarity: number;
1276
+ }
1277
+ /**
1278
+ * A Move along with learn methods and level details pertaining to specific version groups
1279
+ */
1280
+ interface PokemonMove {
1281
+ /** The move the Pokémon can learn */
1282
+ move: NamedAPIResource;
1283
+ /** The details of the version in which the Pokémon can learn the move */
1284
+ version_group_details: PokemonMoveVersion[];
1285
+ }
1286
+ /**
1287
+ * The details of the version in which the Pokémon can learn the move
1288
+ */
1289
+ interface PokemonMoveVersion {
1290
+ /** The method by which the move is learned */
1291
+ move_learn_method: NamedAPIResource;
1292
+ /** The version group in which the move is learned */
1293
+ version_group: NamedAPIResource;
1294
+ /** The minimum level to learn the move */
1295
+ level_learned_at: number;
1296
+ }
1297
+ /**
1298
+ * Base stat values for the given Pokémon
1299
+ */
1300
+ interface PokemonStat {
1301
+ /** The stat the Pokémon has */
1302
+ stat: NamedAPIResource;
1303
+ /** The effort points (EV) the Pokémon has in the stat */
1304
+ effort: number;
1305
+ /** The base value of the stat */
1306
+ base_stat: number;
1307
+ }
1308
+ /** Version Sprites */
1309
+ interface VersionSprites {
1310
+ /** Generation-I Sprites of this Pokémon */
1311
+ 'generation-i': GenerationISprites;
1312
+ /** Generation-II Sprites of this Pokémon */
1313
+ 'generation-ii': GenerationIISprites;
1314
+ /** Generation-III Sprites of this Pokémon */
1315
+ 'generation-iii': GenerationIIISprites;
1316
+ /** Generation-IV Sprites of this Pokémon */
1317
+ 'generation-iv': GenerationIVSprites;
1318
+ /** Generation-V Sprites of this Pokémon */
1319
+ 'generation-v': GenerationVSprites;
1320
+ /** Generation-VI Sprites of this Pokémon */
1321
+ 'generation-vi': GenerationVISprites;
1322
+ /** Generation-VII Sprites of this Pokémon */
1323
+ 'generation-vii': GenerationVIISprites;
1324
+ /** Generation-VIII Sprites of this Pokémon */
1325
+ 'generation-viii': GenerationVIIISprites;
1326
+ }
1327
+ /**
1328
+ * A set of sprites used to depict this Pokémon in the game.
1329
+ * A visual representation of the various sprites can be found at [PokeAPI/sprites](https://github.com/PokeAPI/sprites#sprites)
1330
+ */
1331
+ interface PokemonSprites {
1332
+ /** The default depiction of this Pokémon from the front in battle */
1333
+ front_default: string | null;
1334
+ /** The shiny depiction of this Pokémon from the front in battle */
1335
+ front_shiny: string | null;
1336
+ /** The female depiction of this Pokémon from the front in battle */
1337
+ front_female: string | null;
1338
+ /** The shiny female depiction of this Pokémon from the front in battle */
1339
+ front_shiny_female: string | null;
1340
+ /** The default depiction of this Pokémon from the back in battle */
1341
+ back_default: string | null;
1342
+ /** The shiny depiction of this Pokémon from the back in battle */
1343
+ back_shiny: string | null;
1344
+ /** The female depiction of this Pokémon from the back in battle */
1345
+ back_female: string | null;
1346
+ /** The shiny female depiction of this Pokémon from the back in battle */
1347
+ back_shiny_female: string | null;
1348
+ /** Dream World, Official Artwork and Home sprites */
1349
+ other?: OtherPokemonSprites;
1350
+ /** Version Sprites of this Pokémon */
1351
+ versions: VersionSprites;
1352
+ }
1353
+ /** Other Pokemon Sprites (Dream World and Official Artwork sprites) */
1354
+ interface OtherPokemonSprites {
1355
+ /** Dream World Sprites of this Pokémon */
1356
+ dream_world: DreamWorld;
1357
+ /** Official Artwork Sprites of this Pokémon */
1358
+ 'official-artwork': OfficialArtwork;
1359
+ /** Home Artwork Sprites of this Pokémon */
1360
+ home: Home;
1361
+ }
1362
+ /** Dream World sprites */
1363
+ interface DreamWorld {
1364
+ /** The default depiction of this Pokémon from the front in battle */
1365
+ front_default: string | null;
1366
+ /** The female depiction of this Pokémon from the front in battle */
1367
+ front_female: string | null;
1368
+ }
1369
+ /** Official Artwork sprites */
1370
+ interface OfficialArtwork {
1371
+ /** The default depiction of this Pokémon from the front in battle */
1372
+ front_default: string | null;
1373
+ }
1374
+ /** Home sprites */
1375
+ interface Home {
1376
+ /** The default depiction of this Pokémon from the front in battle */
1377
+ front_default: string | null;
1378
+ /** The female depiction of this Pokémon from the front in battle */
1379
+ front_female: string | null;
1380
+ /** The shiny depiction of this Pokémon from the front in battle */
1381
+ front_shiny: string | null;
1382
+ /** The shiny female depiction of this Pokémon from the back in battle */
1383
+ front_shiny_female: string | null;
1384
+ }
1385
+ /** Generation-I Srites */
1386
+ interface GenerationISprites {
1387
+ /** Red-blue sprites of this Pokémon */
1388
+ 'red-blue': RedBlue;
1389
+ /** Yellow sprites of this Pokémon */
1390
+ yellow: Yellow;
1391
+ }
1392
+ /** Red/Blue Sprites */
1393
+ interface RedBlue {
1394
+ /** The default depiction of this Pokémon from the back in battle */
1395
+ back_default: string | null;
1396
+ /** The gray depiction of this Pokémon from the back in battle */
1397
+ back_gray: string | null;
1398
+ /** The transparent depiction of this Pokémon from the back in battle */
1399
+ back_transparent: string | null;
1400
+ /** The default depiction of this Pokémon from the front in battle */
1401
+ front_default: string | null;
1402
+ /** The gray depiction of this Pokémon from the front in battle */
1403
+ front_gray: string | null;
1404
+ /** The transparent depiction of this Pokémon from the front in battle */
1405
+ front_transparent: string | null;
1406
+ }
1407
+ /** Yellow sprites */
1408
+ interface Yellow {
1409
+ /** The default depiction of this Pokémon from the back in battle */
1410
+ back_default: string | null;
1411
+ /** The gray depiction of this Pokémon from the back in battle */
1412
+ back_gray: string | null;
1413
+ /** The transparent depiction of this Pokémon from the back in battle */
1414
+ back_transparent: string | null;
1415
+ /** The default depiction of this Pokémon from the front in battle */
1416
+ front_default: string | null;
1417
+ /** The gray depiction of this Pokémon from the front in battle */
1418
+ front_gray: string | null;
1419
+ /** The transparent depiction of this Pokémon from the front in battle */
1420
+ front_transparent: string | null;
1421
+ }
1422
+ /** Generation-II Sprites */
1423
+ interface GenerationIISprites {
1424
+ /** Crystal sprites of this Pokémon */
1425
+ crystal: Crystal;
1426
+ /** Gold sprites of this Pokémon */
1427
+ gold: Gold;
1428
+ /** Silver sprites of this Pokémon */
1429
+ silver: Silver;
1430
+ }
1431
+ /** Crystal sprites */
1432
+ interface Crystal {
1433
+ /** The default depiction of this Pokémon from the back in battle */
1434
+ back_default: string | null;
1435
+ /** The shiny depiction of this Pokémon from the back in battle */
1436
+ back_shiny: string | null;
1437
+ /** The back shiny transparent depiction of this Pokémon from the back in battle */
1438
+ back_shiny_transparent: string | null;
1439
+ /** The transparent depiction of this Pokémon from the back in battle */
1440
+ back_transparent: string | null;
1441
+ /** The default depiction of this Pokémon from the front in battle */
1442
+ front_default: string | null;
1443
+ /** The shiny depiction of this Pokémon from the front in battle */
1444
+ front_shiny: string | null;
1445
+ /** The front shiny transparent depiction of this Pokémon from the front in battle */
1446
+ front_shiny_transparent: string | null;
1447
+ /** The transparent depiction of this Pokémon from the front in battle */
1448
+ front_transparent: string | null;
1449
+ }
1450
+ interface Gold {
1451
+ /** The default depiction of this Pokémon from the back in battle */
1452
+ back_default: string | null;
1453
+ /** The shiny depiction of this Pokémon from the back in battle */
1454
+ back_shiny: string | null;
1455
+ /** The default depiction of this Pokémon from the front in battle */
1456
+ front_default: string | null;
1457
+ /** The shiny depiction of this Pokémon from the front in battle */
1458
+ front_shiny: string | null;
1459
+ /** The transparent depiction of this Pokémon from the front in battle */
1460
+ front_transparent: string | null;
1461
+ }
1462
+ /** Silver sprites */
1463
+ interface Silver {
1464
+ /** The default depiction of this Pokémon from the back in battle */
1465
+ back_default: string | null;
1466
+ /** The shiny depiction of this Pokémon from the back in battle */
1467
+ back_shiny: string | null;
1468
+ /** The default depiction of this Pokémon from the front in battle */
1469
+ front_default: string | null;
1470
+ /** The shiny depiction of this Pokémon from the front in battle */
1471
+ front_shiny: string | null;
1472
+ /** The transparent depiction of this Pokémon from the front in battle */
1473
+ front_transparent: string | null;
1474
+ }
1475
+ /** Generation-III Sprites */
1476
+ interface GenerationIIISprites {
1477
+ /** Emerald sprites of this Pokémon */
1478
+ emerald: Emerald;
1479
+ /** Firered-Leafgreen sprites of this Pokémon */
1480
+ 'firered-leafgreen': FireredLeafgreen;
1481
+ /** Ruby-Sapphire sprites of this Pokémon */
1482
+ 'ruby-sapphire': RubySapphire;
1483
+ }
1484
+ /** Emerald sprites */
1485
+ interface Emerald {
1486
+ /** The default depiction of this Pokémon from the front in battle */
1487
+ front_default: string | null;
1488
+ /** The shiny depiction of this Pokémon from the front in battle */
1489
+ front_shiny: string | null;
1490
+ }
1491
+ /** FireRead LeafGreen sprites */
1492
+ interface FireredLeafgreen {
1493
+ /** The default depiction of this Pokémon from the back in battle */
1494
+ back_default: string | null;
1495
+ /** The shiny depiction of this Pokémon from the back in battle */
1496
+ back_shiny: string | null;
1497
+ /** The default depiction of this Pokémon from the front in battle */
1498
+ front_default: string | null;
1499
+ /** The shiny depiction of this Pokémon from the front in battle */
1500
+ front_shiny: string | null;
1501
+ }
1502
+ /** Ruby/Sapphire sprites */
1503
+ interface RubySapphire {
1504
+ /** The default depiction of this Pokémon from the back in battle */
1505
+ back_default: string | null;
1506
+ /** The shiny depiction of this Pokémon from the back in battle */
1507
+ back_shiny: string | null;
1508
+ /** The default depiction of this Pokémon from the front in battle */
1509
+ front_default: string | null;
1510
+ /** The shiny depiction of this Pokémon from the front in battle */
1511
+ front_shiny: string | null;
1512
+ }
1513
+ /** Generation-IV Sprites */
1514
+ interface GenerationIVSprites {
1515
+ /** Diamond-pearl Generation sprites of this Pokémon */
1516
+ 'diamond-pearl': DiamondPearl;
1517
+ /** Heartgold-Soulsilver sprites of this Pokémon */
1518
+ 'heartgold-soulsilver': HeartgoldSoulsilver;
1519
+ /** Platinum sprites of this Pokémon */
1520
+ platinum: Platinum;
1521
+ }
1522
+ interface DiamondPearl {
1523
+ /** The default depiction of this Pokémon from the back in battle */
1524
+ back_default: string | null;
1525
+ /** The shiny depiction of this Pokémon from the back in battle */
1526
+ back_shiny: string | null;
1527
+ /** The female depiction of this Pokémon from the back in battle */
1528
+ back_female: string | null;
1529
+ /** The default depiction of this Pokémon from the front in battle */
1530
+ front_default: string | null;
1531
+ /** The shiny depiction of this Pokémon from the front in battle */
1532
+ front_shiny: string | null;
1533
+ /** The shiny female depiction of this Pokémon from the back in battle */
1534
+ back_shiny_female: string | null;
1535
+ /** The female depiction of this Pokémon from the front in battle */
1536
+ front_female: string | null;
1537
+ /** The shiny female depiction of this Pokémon from the back in battle */
1538
+ front_shiny_female: string | null;
1539
+ }
1540
+ interface HeartgoldSoulsilver {
1541
+ /** The default depiction of this Pokémon from the back in battle */
1542
+ back_default: string | null;
1543
+ /** The shiny depiction of this Pokémon from the back in battle */
1544
+ back_shiny: string | null;
1545
+ /** The female depiction of this Pokémon from the back in battle */
1546
+ back_female: string | null;
1547
+ /** The default depiction of this Pokémon from the front in battle */
1548
+ front_default: string | null;
1549
+ /** The shiny depiction of this Pokémon from the front in battle */
1550
+ front_shiny: string | null;
1551
+ /** The shiny female depiction of this Pokémon from the back in battle */
1552
+ back_shiny_female: string | null;
1553
+ /** The female depiction of this Pokémon from the front in battle */
1554
+ front_female: string | null;
1555
+ /** The shiny female depiction of this Pokémon from the back in battle */
1556
+ front_shiny_female: string | null;
1557
+ }
1558
+ interface Platinum {
1559
+ /** The default depiction of this Pokémon from the back in battle */
1560
+ back_default: string | null;
1561
+ /** The shiny depiction of this Pokémon from the back in battle */
1562
+ back_shiny: string | null;
1563
+ /** The female depiction of this Pokémon from the back in battle */
1564
+ back_female: string | null;
1565
+ /** The default depiction of this Pokémon from the front in battle */
1566
+ front_default: string | null;
1567
+ /** The shiny depiction of this Pokémon from the front in battle */
1568
+ front_shiny: string | null;
1569
+ /** The shiny female depiction of this Pokémon from the back in battle */
1570
+ back_shiny_female: string | null;
1571
+ /** The female depiction of this Pokémon from the front in battle */
1572
+ front_female: string | null;
1573
+ /** The shiny female depiction of this Pokémon from the back in battle */
1574
+ front_shiny_female: string | null;
1575
+ }
1576
+ /** Generation-V Sprites */
1577
+ interface GenerationVSprites {
1578
+ /** Black-white sprites of this Pokémon */
1579
+ 'black-white': BlackWhite;
1580
+ }
1581
+ /** Black/White sprites */
1582
+ interface BlackWhite {
1583
+ /** The animated sprite of this pokémon */
1584
+ animated: Animated;
1585
+ /** The default depiction of this Pokémon from the back in battle */
1586
+ back_default: string | null;
1587
+ /** The shiny depiction of this Pokémon from the back in battle */
1588
+ back_shiny: string | null;
1589
+ /** The female depiction of this Pokémon from the back in battle */
1590
+ back_female: string | null;
1591
+ /** The default depiction of this Pokémon from the front in battle */
1592
+ front_default: string | null;
1593
+ /** The shiny depiction of this Pokémon from the front in battle */
1594
+ front_shiny: string | null;
1595
+ /** The shiny female depiction of this Pokémon from the back in battle */
1596
+ back_shiny_female: string | null;
1597
+ /** The female depiction of this Pokémon from the front in battle */
1598
+ front_female: string | null;
1599
+ /** The shiny female depiction of this Pokémon from the back in battle */
1600
+ front_shiny_female: string | null;
1601
+ }
1602
+ interface Animated {
1603
+ /** The default depiction of this Pokémon from the back in battle */
1604
+ back_default: string | null;
1605
+ /** The shiny depiction of this Pokémon from the back in battle */
1606
+ back_shiny: string | null;
1607
+ /** The female depiction of this Pokémon from the back in battle */
1608
+ back_female: string | null;
1609
+ /** The default depiction of this Pokémon from the front in battle */
1610
+ front_default: string | null;
1611
+ /** The shiny depiction of this Pokémon from the front in battle */
1612
+ front_shiny: string | null;
1613
+ /** The shiny female depiction of this Pokémon from the back in battle */
1614
+ back_shiny_female: string | null;
1615
+ /** The female depiction of this Pokémon from the front in battle */
1616
+ front_female: string | null;
1617
+ /** The shiny female depiction of this Pokémon from the back in battle */
1618
+ front_shiny_female: string | null;
1619
+ }
1620
+ /** Generation-VI Sprites */
1621
+ interface GenerationVISprites {
1622
+ /** Omegaruby-Alphasapphire sprites of this Pokémon */
1623
+ 'omegaruby-alphasapphire': OmegarubyAlphasapphire;
1624
+ /** X-Y sprites of this Pokémon */
1625
+ 'x-y': XY;
1626
+ }
1627
+ /** Omega/Ruby Alpha/Sapphire sprites */
1628
+ interface OmegarubyAlphasapphire {
1629
+ /** The default depiction of this Pokémon from the front in battle */
1630
+ front_default: string | null;
1631
+ /** The female depiction of this Pokémon from the front in battle */
1632
+ front_female: string | null;
1633
+ /** The shiny depiction of this Pokémon from the front in battle */
1634
+ front_shiny: string | null;
1635
+ /** The shiny female depiction of this Pokémon from the back in battle */
1636
+ front_shiny_female: string | null;
1637
+ }
1638
+ /** XY sprites */
1639
+ interface XY {
1640
+ /** The default depiction of this Pokémon from the front in battle */
1641
+ front_default: string | null;
1642
+ /** The female depiction of this Pokémon from the front in battle */
1643
+ front_female: string | null;
1644
+ /** The shiny depiction of this Pokémon from the front in battle */
1645
+ front_shiny: string | null;
1646
+ /** The shiny female depiction of this Pokémon from the back in battle */
1647
+ front_shiny_female: string | null;
1648
+ }
1649
+ /** Generation-VII Sprites */
1650
+ interface GenerationVIISprites {
1651
+ /** Icon sprites of this Pokémon */
1652
+ icons: GenerationViiIcons;
1653
+ /** Ultra-sun-ultra-moon sprites of this Pokémon */
1654
+ 'ultra-sun-ultra-moon': UltraSunUltraMoon;
1655
+ }
1656
+ /** Generation VII icons */
1657
+ interface GenerationViiIcons {
1658
+ /** The default depiction of this Pokémon from the front in battle */
1659
+ front_default: string | null;
1660
+ /** The female depiction of this Pokémon from the front in battle */
1661
+ front_female: string | null;
1662
+ }
1663
+ /** Ultra Sun Ultra Moon sprites */
1664
+ interface UltraSunUltraMoon {
1665
+ /** The default depiction of this Pokémon from the front in battle */
1666
+ front_default: string | null;
1667
+ /** The female depiction of this Pokémon from the front in battle */
1668
+ front_female: string | null;
1669
+ /** The shiny depiction of this Pokémon from the front in battle */
1670
+ front_shiny: string | null;
1671
+ /** The shiny female depiction of this Pokémon from the back in battle */
1672
+ front_shiny_female: string | null;
1673
+ }
1674
+ /** Generation-VIII Sprites */
1675
+ interface GenerationVIIISprites {
1676
+ /** Icon sprites of this Pokémon */
1677
+ icons: GenerationViiiIcons;
1678
+ }
1679
+ /** Generation VIII icons */
1680
+ interface GenerationViiiIcons {
1681
+ /** The default depiction of this Pokémon from the front in battle */
1682
+ front_default: string | null;
1683
+ /** The female depiction of this Pokémon from the front in battle */
1684
+ front_female: string | null;
1685
+ }
1686
+ /**
1687
+ * ## Location Area Encounter
1688
+ * Pokémon location areas where Pokémon can be found
1689
+ */
1690
+ interface LocationAreaEncounter {
1691
+ /** The location area the referenced Pokémon can be encountered in */
1692
+ location_area: NamedAPIResource;
1693
+ /** A list of versions and encounters with the referenced Pokémon that might happen */
1694
+ version_details: VersionEncounterDetail[];
1695
+ }
1696
+ /**
1697
+ * ## Pokemon Colors
1698
+ * Colors used for sorting Pokémon in a Pokédex.
1699
+ * The color listed in the Pokédex is usually the color most apparent or covering each Pokémon's body.
1700
+ * No orange category exists; Pokémon that are primarily orange are listed as red or brown.
1701
+ */
1702
+ interface PokemonColor {
1703
+ /** The identifier for this resource */
1704
+ id: number;
1705
+ /** The name for this resource */
1706
+ name: 'black' | 'blue' | 'brown' | 'gray' | 'green' | 'pink' | 'purple' | 'red' | 'white' | 'yellow';
1707
+ /** The name of this resource listed in different languages */
1708
+ names: Name[];
1709
+ /** A list of the Pokémon species that have this color */
1710
+ pokemon_species: NamedAPIResource[];
1711
+ }
1712
+ /**
1713
+ * ## Pokemon Form
1714
+ * Some Pokémon may appear in one of multiple, visually different forms.
1715
+ * These differences are purely cosmetic. For variations within a Pokémon species,
1716
+ * which do differ in more than just visuals, the 'Pokémon' entity is used to represent such a variety.
1717
+ */
1718
+ interface PokemonForm {
1719
+ /** The identifier for this resource */
1720
+ id: number;
1721
+ /** The name for this resource */
1722
+ name: string;
1723
+ /** The order in which forms should be sorted within all forms.
1724
+ * Multiple forms may have equal order, in which case they should fall back on sorting by name
1725
+ */
1726
+ order: number;
1727
+ /** The order in which forms should be sorted within a species' forms */
1728
+ form_order: number;
1729
+ /** True for exactly one form used as the default for each Pokémon */
1730
+ is_default: boolean;
1731
+ /** Whether or not this form can only happen during battle */
1732
+ is_battle_only: boolean;
1733
+ /** Whether or not this form requires mega evolution */
1734
+ is_mega: boolean;
1735
+ /** The name of this form */
1736
+ form_name: string;
1737
+ /** The Pokémon that can take on this form */
1738
+ pokemon: NamedAPIResource;
1739
+ /** A set of sprites used to depict this Pokémon form in the game */
1740
+ sprites: PokemonFormSprites;
1741
+ /** The version group this Pokémon form was introduced in */
1742
+ version_group: NamedAPIResource;
1743
+ /** The form specific full name of this Pokémon form, or empty if the form does not have a specific name */
1744
+ names: Name[];
1745
+ /** The form specific form name of this Pokémon form, or empty if the form does not have a specific name */
1746
+ form_names: Name[];
1747
+ /** A list of details showing types this Pokémon has */
1748
+ types: PokemonType[];
1749
+ }
1750
+ /**
1751
+ * Sprites used to depict this Pokémon form in the game
1752
+ */
1753
+ interface PokemonFormSprites {
1754
+ /** The default depiction of this Pokémon form from the front in battle */
1755
+ front_default: string | null;
1756
+ /** The female depiction of this Pokémon form from the front in battle */
1757
+ front_female: string | null;
1758
+ /** The shiny depiction of this Pokémon form from the front in battle */
1759
+ front_shiny: string | null;
1760
+ /** The shiny female depiction of this Pokémon form from the front in battle */
1761
+ front_shiny_female: string | null;
1762
+ /** The default depiction of this Pokémon form from the back in battle */
1763
+ back_default: string | null;
1764
+ /** The female depiction of this Pokémon form from the back in battle */
1765
+ back_female: string | null;
1766
+ /** The shiny depiction of this Pokémon form from the back in battle */
1767
+ back_shiny: string | null;
1768
+ /** The shiny female depiction of this Pokémon form from the back in battle */
1769
+ back_shiny_female: string | null;
1770
+ }
1771
+ /**
1772
+ * ## Pokemon Habitat
1773
+ * Habitats are generally different terrain Pokémon can be found in
1774
+ * but can also be areas designated for rare or legendary Pokémon
1775
+ */
1776
+ interface PokemonHabitat {
1777
+ /** The identifier for this resource */
1778
+ id: number;
1779
+ /** The name for this resource */
1780
+ name: 'cave' | 'forest' | 'grassland' | 'mountain' | 'rare' | 'rough-terrain' | 'sea' | 'urban' | 'waters-edge';
1781
+ /** The name of this resource listed in different languages */
1782
+ names: Name[];
1783
+ /** A list of the Pokémon species that can be found in this habitat */
1784
+ pokemon_species: NamedAPIResource[];
1785
+ }
1786
+ /**
1787
+ * ## Pokemon Shape
1788
+ * Shapes used for sorting Pokémon in a Pokédex
1789
+ */
1790
+ interface PokemonShape {
1791
+ /** The identifier for this resource */
1792
+ id: number;
1793
+ /** The name for this resource */
1794
+ name: string;
1795
+ /** The "scientific" name of this Pokémon shape listed in different languages */
1796
+ awesome_names: AwesomeName[];
1797
+ /** The name of this resource listed in different languages */
1798
+ names: Name[];
1799
+ /** A list of the Pokémon species that have this shape */
1800
+ pokemon_species: NamedAPIResource[];
1801
+ }
1802
+ /**
1803
+ * The "scientific" name of the Pokémon shape listed in different languages
1804
+ */
1805
+ interface AwesomeName {
1806
+ /** The localized "scientific" name for an API resource in a specific language */
1807
+ awesome_name: string;
1808
+ /** The language this "scientific" name is in */
1809
+ language: NamedAPIResource;
1810
+ }
1811
+ /**
1812
+ * ## Pokemon Species
1813
+ * A Pokémon Species forms the basis for at least one Pokémon.
1814
+ * Attributes of a Pokémon species are shared across all varieties of Pokémon within the species.
1815
+ * A good example is Wormadam; Wormadam is the species which can be found in three different varieties,
1816
+ * Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant */
1817
+ interface PokemonSpecies {
1818
+ /** The identifier for this resource */
1819
+ id: number;
1820
+ /** The name for this resource */
1821
+ name: string;
1822
+ /** The order in which species should be sorted. Based on National Dex order, except families are grouped together and sorted by stage */
1823
+ order: number;
1824
+ /** The chance of this Pokémon being female, in eighths; or -1 for genderless */
1825
+ gender_rate: number;
1826
+ /** The base capture rate; up to 255. The higher the number, the easier the catch */
1827
+ capture_rate: number;
1828
+ /** The happiness when caught by a normal Pokéball; up to 255. The higher the number, the happier the Pokémon */
1829
+ base_happiness: number;
1830
+ /** Whether or not this is a baby Pokémon */
1831
+ is_baby: boolean;
1832
+ /** Whether or not this is a legendary Pokémon */
1833
+ is_legendary: boolean;
1834
+ /** Whether or not this is a mythical Pokémon */
1835
+ is_mythical: boolean;
1836
+ /** Initial hatch counter: one must walk 255 × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's */
1837
+ hatch_counter: number;
1838
+ /** Whether or not this Pokémon has visual gender differences */
1839
+ has_gender_differences: boolean;
1840
+ /** Whether or not this Pokémon has multiple forms and can switch between them */
1841
+ forms_switchable: boolean;
1842
+ /** The rate at which this Pokémon species gains levels */
1843
+ growth_rate: NamedAPIResource;
1844
+ /** A list of Pokedexes and the indexes reserved within them for this Pokémon species */
1845
+ pokedex_numbers: PokemonSpeciesDexEntry[];
1846
+ /** A list of egg groups this Pokémon species is a member of */
1847
+ egg_groups: NamedAPIResource[];
1848
+ /** The color of this Pokémon for Pokédex search */
1849
+ color: NamedAPIResource;
1850
+ /** The shape of this Pokémon for Pokédex search */
1851
+ shape: NamedAPIResource;
1852
+ /** The Pokémon species that evolves into this Pokemon_species */
1853
+ evolves_from_species: NamedAPIResource;
1854
+ /** The evolution chain this Pokémon species is a member of */
1855
+ evolution_chain: APIResource;
1856
+ /** The habitat this Pokémon species can be encountered in */
1857
+ habitat: NamedAPIResource;
1858
+ /** The generation this Pokémon species was introduced in */
1859
+ generation: NamedAPIResource;
1860
+ /** The name of this resource listed in different languages */
1861
+ names: Name[];
1862
+ /** A list of encounters that can be had with this Pokémon species in pal park */
1863
+ pal_park_encounters: PalParkEncounterArea[];
1864
+ /** A list of flavor text entries for this Pokémon species */
1865
+ flavor_text_entries: FlavorText[];
1866
+ /** Descriptions of different forms Pokémon take on within the Pokémon species */
1867
+ form_descriptions: Description[];
1868
+ /** The genus of this Pokémon species listed in multiple languages */
1869
+ genera: Genus[];
1870
+ /** A list of the Pokémon that exist within this Pokémon species */
1871
+ varieties: PokemonSpeciesVariety[];
1872
+ }
1873
+ /**
1874
+ * The genus of the given Pokémon species listed in multiple languages
1875
+ */
1876
+ interface Genus {
1877
+ /** The localized genus for the referenced Pokémon species */
1878
+ genus: string;
1879
+ /** The language this genus is in */
1880
+ language: NamedAPIResource;
1881
+ }
1882
+ /** Pokedexes and the indexes reserved within them for the given Pokémon species */
1883
+ interface PokemonSpeciesDexEntry {
1884
+ /** The index number within the Pokédex */
1885
+ entry_number: number;
1886
+ /** The Pokédex the referenced Pokémon species can be found in */
1887
+ pokedex: NamedAPIResource;
1888
+ }
1889
+ /**
1890
+ * Encounter that can be had with the given Pokémon species in pal park
1891
+ */
1892
+ interface PalParkEncounterArea {
1893
+ /** The base score given to the player when the referenced Pokémon is caught during a pal park run */
1894
+ base_score: number;
1895
+ /** The base rate for encountering the referenced Pokémon in this pal park area */
1896
+ rate: number;
1897
+ /** The pal park area where this encounter happens */
1898
+ area: NamedAPIResource;
1899
+ }
1900
+ /**
1901
+ * Pokémons that exist within this Pokémon species
1902
+ */
1903
+ interface PokemonSpeciesVariety {
1904
+ /** Whether this variety is the default variety */
1905
+ is_default: boolean;
1906
+ /** The Pokémon variety */
1907
+ pokemon: NamedAPIResource;
1908
+ }
1909
+
1910
+ /**
1911
+ * ## Move Target
1912
+ * Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.
1913
+ */
1914
+ interface MoveTarget {
1915
+ /** The identifier for this resource. */
1916
+ id: number;
1917
+ /** The name for this resource. */
1918
+ name: string;
1919
+ /** The description of this resource listed in different languages. */
1920
+ descriptions: Description[];
1921
+ /** A list of moves that that are directed at this target. */
1922
+ moves: NamedAPIResource[];
1923
+ /** The name of this resource listed in different languages. */
1924
+ names: Name[];
1925
+ }
1926
+ /**
1927
+ * ## Move Learn Method
1928
+ * Methods by which Pokémon can learn moves.
1929
+ */
1930
+ interface MoveLearnMethod {
1931
+ /** The identifier for this resource. */
1932
+ id: number;
1933
+ /** The name for this resource. */
1934
+ name: string;
1935
+ /** The description of this resource listed in different languages. */
1936
+ descriptions: Description[];
1937
+ /** The name of this resource listed in different languages. */
1938
+ names: Name[];
1939
+ /** A list of version groups where moves can be learned through this method. */
1940
+ version_groups: NamedAPIResource[];
1941
+ }
1942
+ /**
1943
+ * ## Move Damage Class
1944
+ * Damage classes moves can have, e.g. physical, special, or non-damaging.
1945
+ */
1946
+ interface MoveDamageClass {
1947
+ /** The identifier for this resource. */
1948
+ id: number;
1949
+ /** The name for this resource. */
1950
+ name: string;
1951
+ /** The description of this resource listed in different languages. */
1952
+ descriptions: Description[];
1953
+ /** A list of moves that fall into this damage class. */
1954
+ moves: NamedAPIResource[];
1955
+ /** The name of this resource listed in different languages. */
1956
+ names: Name[];
1957
+ }
1958
+ /**
1959
+ * ## Move Category
1960
+ * Very general categories that loosely group move effects.
1961
+ */
1962
+ interface MoveCategory {
1963
+ /** The identifier for this resource. */
1964
+ id: number;
1965
+ /** The name for this resource. */
1966
+ name: string;
1967
+ /** A list of moves that fall into this category. */
1968
+ moves: NamedAPIResource[];
1969
+ /** The description of this resource listed in different languages. */
1970
+ descriptions: Description[];
1971
+ }
1972
+ /**
1973
+ * ## Move Battle Style
1974
+ * Styles of moves when used in the Battle Palace.
1975
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III)) for greater details.
1976
+ */
1977
+ interface MoveBattleStyle {
1978
+ /** The identifier for this resource. */
1979
+ id: number;
1980
+ /** The name for this resource. */
1981
+ name: 'attack' | 'defense' | 'support';
1982
+ /** The name of this resource listed in different languages. */
1983
+ names: Name[];
1984
+ }
1985
+ /**
1986
+ * ## Move Ailment
1987
+ * Move Ailments are status conditions caused by moves used during battle.
1988
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition) for greater details.
1989
+ */
1990
+ interface MoveAilment {
1991
+ /** The identifier for this resource. */
1992
+ id: number;
1993
+ /** The name for this resource. */
1994
+ name: string;
1995
+ /** A list of moves that cause this ailment. */
1996
+ moves: NamedAPIResource[];
1997
+ /** The name of this resource listed in different languages. */
1998
+ names: Name[];
1999
+ }
2000
+ interface PastMoveStatValues {
2001
+ /** The percent value of how likely this move is to be successful. */
2002
+ accuracy: number | null;
2003
+ /** The percent value of how likely it is this moves effect will take effect. */
2004
+ effect_chance: number | null;
2005
+ /** The base power of this move with a value of 0 if it does not have a base power. */
2006
+ power: number | null;
2007
+ /** Power points. The number of times this move can be used. */
2008
+ pp: number | null;
2009
+ /** The effect of this move listed in different languages. */
2010
+ effect_entries: VerboseEffect[];
2011
+ /** The elemental type of this move. */
2012
+ type: NamedAPIResource | null;
2013
+ /** The version group in which these move stat values were in effect. */
2014
+ version_group: NamedAPIResource;
2015
+ }
2016
+ /** */
2017
+ interface MoveStatChange {
2018
+ /** The amount of change. */
2019
+ change: number;
2020
+ /** The stat being affected. */
2021
+ stat: NamedAPIResource;
2022
+ }
2023
+ /**
2024
+ * Metadata about this move
2025
+ */
2026
+ interface MoveMetaData {
2027
+ /** The status ailment this move inflicts on its target. */
2028
+ ailment: NamedAPIResource;
2029
+ /** The category of move this move falls under, e.g. damage or ailment. */
2030
+ category: NamedAPIResource;
2031
+ /** The minimum number of times this move hits. Null if it always only hits once. */
2032
+ min_hits: number | null;
2033
+ /** The maximum number of times this move hits. Null if it always only hits once. */
2034
+ max_hits: number | null;
2035
+ /** The minimum number of turns this move continues to take effect. Null if it always only lasts one turn. */
2036
+ min_turns: number | null;
2037
+ /** The maximum number of turns this move continues to take effect. Null if it always only lasts one turn. */
2038
+ max_turns: number | null;
2039
+ /** HP drain (if positive) or Recoil damage (if negative), in percent of damage done. */
2040
+ drain: number;
2041
+ /** The amount of hp gained by the attacking Pokemon, in percent of it's maximum HP. */
2042
+ healing: number;
2043
+ /** Critical hit rate bonus. */
2044
+ crit_rate: number;
2045
+ /** The likelihood this attack will cause an ailment. */
2046
+ ailment_chance: number;
2047
+ /** The likelihood this attack will cause the target Pokémon to flinch. */
2048
+ flinch_chance: number;
2049
+ /** The likelihood this attack will cause a stat change in the target Pokémon. */
2050
+ stat_chance: number;
2051
+ }
2052
+ /**
2053
+ * The flavor text of this move.
2054
+ */
2055
+ interface MoveFlavorText {
2056
+ /** The localized flavor text for an api resource in a specific language. */
2057
+ flavor_text: string;
2058
+ /** The language this name is in. */
2059
+ language: NamedAPIResource;
2060
+ /** The version group that uses this flavor text. */
2061
+ version_group: NamedAPIResource;
2062
+ }
2063
+ /**
2064
+ * A detail of moves this move can be used before or after, granting additional appeal points in super contests.
2065
+ */
2066
+ interface ContestComboDetail {
2067
+ /** A list of moves to use before this move. */
2068
+ use_before: NamedAPIResource[] | null;
2069
+ /** A list of moves to use after this move. */
2070
+ use_after: NamedAPIResource[] | null;
2071
+ }
2072
+ /**
2073
+ * A detail of normal and super contest combos that require this move.
2074
+ */
2075
+ interface ContestComboSets {
2076
+ /** A detail of moves this move can be used before or after, granting additional appeal points in contests. */
2077
+ normal: ContestComboDetail;
2078
+ /** A detail of moves this move can be used before or after, granting additional appeal points in super contests. */
2079
+ super: ContestComboDetail;
2080
+ }
2081
+ /**
2082
+ * ## Move
2083
+ * Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn.
2084
+ * Some moves (including those learned by Hidden Machine) can be used outside of battle as well,
2085
+ * usually for the purpose of removing obstacles or exploring new areas.
2086
+ * - See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Move) for greater detaill
2087
+ */
2088
+ interface Move {
2089
+ /** The identifier for this resource */
2090
+ id: number;
2091
+ /** The name for this resource */
2092
+ name: string;
2093
+ /** The percent value of how likely this move is to be successful */
2094
+ accuracy: number | null;
2095
+ /** The percent value of how likely it is this moves effect will happen */
2096
+ effect_chance: number | null;
2097
+ /** Power points. The number of times this move can be used */
2098
+ pp: number | null;
2099
+ /**
2100
+ * A value between -8 and 8. Sets the order in which moves are executed during battle.
2101
+ * See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Priority) for greater detail
2102
+ */
2103
+ priority: -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
2104
+ /** The base power of this move with a value of 0 if it does not have a base power */
2105
+ power: number | null;
2106
+ /** A detail of normal and super contest combos that require this move */
2107
+ contest_combos: ContestComboSets | null;
2108
+ /** The type of appeal this move gives a Pokémon when used in a contest */
2109
+ contest_types: NamedAPIResource | null;
2110
+ /** The effect the move has when used in a contest */
2111
+ contest_effect: APIResource | null;
2112
+ /** The type of damage the move inflicts on the target, e.g. physical */
2113
+ damage_class: NamedAPIResource | null;
2114
+ /** The effect of this move listed in different languages */
2115
+ effect_entries: VerboseEffect[];
2116
+ /** The list of previous effects this move has had across version groups of the games */
2117
+ effect_changes: AbilityEffectChange[];
2118
+ /** The flavor text of this move listed in different languages */
2119
+ flavor_text_entries: MoveFlavorText[];
2120
+ /** The generation in which this move was introduced */
2121
+ generation: NamedAPIResource;
2122
+ /** A list of the machines that teach this move */
2123
+ machines: MachineVersionDetail[];
2124
+ /** Metadata about this move */
2125
+ meta: MoveMetaData | null;
2126
+ /** The name of this resource listed in different languages */
2127
+ names: Name[];
2128
+ /** A list of move resource value changes across version groups of the game */
2129
+ past_values: PastMoveStatValues[];
2130
+ /** A list of stats this moves effects and how much it effects them */
2131
+ stat_changes: MoveStatChange[];
2132
+ /** The effect the move has when used in a super contest */
2133
+ super_contest_effect: APIResource | null;
2134
+ /** The type of target that will receive the effects of the attack */
2135
+ target: NamedAPIResource;
2136
+ /** The elemental type of this move */
2137
+ type: NamedAPIResource;
2138
+ /** A list of Pokémons that learned this move */
2139
+ learned_by_pokemon: NamedAPIResource[];
2140
+ }
2141
+
2142
+ /**
2143
+ * ## Client Args
2144
+ * Used to pass optional configuration for logging and cache to the clients.
2145
+ */
2146
+ interface ClientArgs {
2147
+ /**
2148
+ * ## Logger Options
2149
+ * Options for the client logger.
2150
+ * @see https://getpino.io/#/docs/api?id=options
2151
+ */
2152
+ logOptions?: pino.LoggerOptions;
2153
+ /**
2154
+ * ## Axios Cache Options
2155
+ * Options for cache.
2156
+ * @see https://github.com/RasCarlito/axios-cache-adapter
2157
+ */
2158
+ cacheOptions?: CacheOptions;
2159
+ /**
2160
+ * ## Base URL
2161
+ * Location of the PokéAPI. Leave empty to use the official PokéAPI instance.
2162
+ */
2163
+ baseURL?: string;
2164
+ }
2165
+ /**
2166
+ * ### Base Client
2167
+ */
2168
+ declare class BaseClient {
2169
+ protected api: AxiosCacheInstance;
2170
+ private logger;
2171
+ /**
2172
+ *
2173
+ */
2174
+ constructor(clientOptions?: ClientArgs);
2175
+ }
2176
+
2177
+ /**
2178
+ * ### Berry Client
2179
+ *
2180
+ * Client used to access the Berry Endpoints:
2181
+ * - [Berries](https://pokeapi.co/docs/v2#berries)
2182
+ * - [Berry Firmnesses](https://pokeapi.co/docs/v2#berry-firmnesses)
2183
+ * - [Berry Flavors](https://pokeapi.co/docs/v2#berry-flavors)
2184
+ *
2185
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#berries-section)
2186
+ */
2187
+ declare class BerryClient extends BaseClient {
2188
+ constructor(clientOptions?: ClientArgs);
2189
+ /**
2190
+ * Get a Berry by it's name
2191
+ * @param name The berry name
2192
+ * @returns A Berry
2193
+ */
2194
+ getBerryByName(name: string): Promise<Berry>;
2195
+ /**
2196
+ * Get a Berry by it's ID
2197
+ * @param id The Berry ID
2198
+ * @returns A Berry
2199
+ */
2200
+ getBerryById(id: number): Promise<Berry>;
2201
+ /**
2202
+ * Get a Berry Firmness by it's ID
2203
+ * @param id The Berry ID
2204
+ * @returns Berry Firmness
2205
+ */
2206
+ getBerryFirmnessById(id: number): Promise<BerryFirmness>;
2207
+ /**
2208
+ * Get a Berry Firmness by it's ID
2209
+ * @param name The Berry name
2210
+ * @returns Berry Firmness
2211
+ */
2212
+ getBerryFirmnessByName(name: string): Promise<BerryFirmness>;
2213
+ /**
2214
+ * Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature.
2215
+ * Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.
2216
+ * @param id The Berry Flavor ID
2217
+ * @returns Berry Flavor
2218
+ */
2219
+ getBerryFlavorById(id: number): Promise<BerryFlavor>;
2220
+ /**
2221
+ * Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature.
2222
+ * Check out [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.
2223
+ * @param name The Berry Flavor name
2224
+ * @returns Berry Flavor
2225
+ */
2226
+ getBerryFlavorByName(name: string): Promise<BerryFlavor>;
2227
+ /**
2228
+ * List Berries
2229
+ * @param offset The first item that you will get
2230
+ * @param limit How many berries per page
2231
+ * @returns A list of berries
2232
+ */
2233
+ listBerries(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2234
+ /**
2235
+ * List Berries
2236
+ * @param offset The first item that you will get
2237
+ * @param limit How many berry firmnesses per page
2238
+ * @returns A list of berry firmnesses
2239
+ */
2240
+ listBerryFirmnesses(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2241
+ /**
2242
+ * List Berry Flavors
2243
+ * @param offset The first item that you will get
2244
+ * @param limit How many Berry Flavors per page
2245
+ * @returns A list of Berry Flavors
2246
+ */
2247
+ listBerryFlavors(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2248
+ }
2249
+
2250
+ /**
2251
+ * ### Contest Client
2252
+ *
2253
+ * Client used to access the Contest Endpoints:
2254
+ * - [Contest Types](https://pokeapi.co/docs/v2#contest-types)
2255
+ * - [Contest Effects](https://pokeapi.co/docs/v2#contest-effects)
2256
+ * - [Super Contest Effects](https://pokeapi.co/docs/v2#super-contest-effects)
2257
+ * ---
2258
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#contests-section)
2259
+ */
2260
+ declare class ContestClient extends BaseClient {
2261
+ /**
2262
+ * @argument clientOptions Options for the client.
2263
+ */
2264
+ constructor(clientOptions?: ClientArgs);
2265
+ /**
2266
+ * Get a Contest Type by it's name
2267
+ * @param name The contest type name
2268
+ * @returns A Contest Type
2269
+ */
2270
+ getContestTypeByName(name: string): Promise<ContestType>;
2271
+ /**
2272
+ * Get a Contest Type by it's ID
2273
+ * @param id The Contest Type ID
2274
+ * @returns A Contest Type
2275
+ */
2276
+ getContestTypeById(id: number): Promise<ContestType>;
2277
+ /**
2278
+ * Get a Contest Effect by it's ID
2279
+ * @param id The Contest Effect ID
2280
+ * @returns Contest Effect
2281
+ */
2282
+ getContestEffectById(id: number): Promise<ContestEffect>;
2283
+ /**
2284
+ * Get a Super Contest Effect by it's ID
2285
+ * @param id The Super Contest Effect ID
2286
+ * @returns Super Contest Effect
2287
+ */
2288
+ getSuperContestEffectById(id: number): Promise<SuperContestEffect>;
2289
+ /**
2290
+ * List Contest Types
2291
+ * @param offset The first item that you will get
2292
+ * @param limit How many contest types per page
2293
+ * @returns A list of contest types
2294
+ */
2295
+ listContestTypes(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2296
+ /**
2297
+ * List Contest Effects
2298
+ * @param offset The first item that you will get
2299
+ * @param limit How many contest effects per page
2300
+ * @returns A list of contest effects
2301
+ */
2302
+ listContestEffects(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2303
+ /**
2304
+ * List Super Contest Effects
2305
+ * @param offset The first item that you will get
2306
+ * @param limit How many Super Contest Effect per page
2307
+ * @returns A list of Super Contest Effect
2308
+ */
2309
+ listSuperContestEffects(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2310
+ }
2311
+
2312
+ /**
2313
+ * ### Encounter Client
2314
+ *
2315
+ * Client used to access the Encounter Endpoints:
2316
+ * - [Encounter Methods](https://pokeapi.co/docs/v2#encounter-methods)
2317
+ * - [Encounter Conditions](https://pokeapi.co/docs/v2#encounter-conditions)
2318
+ * - [Encounter Condition Values](https://pokeapi.co/docs/v2#encounter-condition-values)
2319
+ * ---
2320
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#encounters-section)
2321
+ */
2322
+ declare class EncounterClient extends BaseClient {
2323
+ /**
2324
+ * @argument clientOptions Options for the client.
2325
+ */
2326
+ constructor(clientOptions?: ClientArgs);
2327
+ /**
2328
+ * Get an Encounter Method by it's name
2329
+ * @param name The Encounter Method name
2330
+ * @returns An Encounter Method
2331
+ */
2332
+ getEncounterMethodByName(name: string): Promise<EncounterMethod>;
2333
+ /**
2334
+ * Get an Encounter Method by it's ID
2335
+ * @param id The Encounter Method ID
2336
+ * @returns An Encounter Method
2337
+ */
2338
+ getEncounterMethodById(id: number): Promise<EncounterMethod>;
2339
+ /**
2340
+ * Get an Encounter Condition by it's ID
2341
+ * @param id The Encounter Condition ID
2342
+ * @returns An Encounter Condition
2343
+ */
2344
+ getEncounterConditionById(id: number): Promise<EncounterCondition>;
2345
+ /**
2346
+ * Get an Encounter Condition by it's name
2347
+ * @param name The Encounter Condition name
2348
+ * @returns An Encounter Condition
2349
+ */
2350
+ getEncounterConditionByName(name: string): Promise<EncounterCondition>;
2351
+ /**
2352
+ * Get an Encounter Condition Value by it's name
2353
+ * @param name The Encounter Condition Value name
2354
+ * @returns An Encounter Condition Value
2355
+ */
2356
+ getEncounterConditionValueByName(name: string): Promise<EncounterConditionValue>;
2357
+ /**
2358
+ * Get an Encounter Condition Value by it's ID
2359
+ * @param id The Encounter Condition Value ID
2360
+ * @returns An Encounter Condition Value
2361
+ */
2362
+ getEncounterConditionValueById(id: number): Promise<EncounterConditionValue>;
2363
+ /**
2364
+ * List Encounter Methods
2365
+ * @param offset The first item that you will get
2366
+ * @param limit How many Encounter Methods per page
2367
+ * @returns A list of Encounter Methods
2368
+ */
2369
+ listEncounterMethods(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2370
+ /**
2371
+ * List Encounter Conditions
2372
+ * @param offset The first item that you will get
2373
+ * @param limit How many Encounter Conditions per page
2374
+ * @returns A list of Encounter Methods
2375
+ */
2376
+ listEncounterConditions(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2377
+ /**
2378
+ * List Encounter Condition Values
2379
+ * @param offset The first item that you will get
2380
+ * @param limit How many Encounter Condition Values per page
2381
+ * @returns A list of Encounter Condition Values
2382
+ */
2383
+ listEncounterConditionValues(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2384
+ }
2385
+
2386
+ /**
2387
+ * ### Evolution Client
2388
+ *
2389
+ * Client used to access the Berry Endpoints:
2390
+ * - [Evolution Chains](https://pokeapi.co/docs/v2#evolution-chains)
2391
+ * - [Evolution Triggers](https://pokeapi.co/docs/v2#evolution-triggers)
2392
+ * ---
2393
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#evolution-section)
2394
+ */
2395
+ declare class EvolutionClient extends BaseClient {
2396
+ /**
2397
+ * @argument clientOptions Options for the client.
2398
+ */
2399
+ constructor(clientOptions?: ClientArgs);
2400
+ /**
2401
+ * Get an Evolution Chain by it's ID
2402
+ * @param id The Evolution Chain ID
2403
+ * @returns An Evolution Chain
2404
+ */
2405
+ getEvolutionChainById(id: number): Promise<EvolutionChain>;
2406
+ /**
2407
+ * Get an Evolution Trigger by it's ID
2408
+ * @param id The Evolution Trigger ID
2409
+ * @returns An Evolution Trigger
2410
+ */
2411
+ getEvolutionTriggerById(id: number): Promise<EvolutionTrigger>;
2412
+ /**
2413
+ * Get an Evolution Trigger by it's name
2414
+ * @param name The Evolution Trigger name
2415
+ * @returns An Evolution Trigger
2416
+ */
2417
+ getEvolutionTriggerByName(name: string): Promise<EvolutionTrigger>;
2418
+ /**
2419
+ * List Evolution Chains
2420
+ * @param offset The first item that you will get
2421
+ * @param limit How many Evolution Chains per page
2422
+ * @returns A list of Evolution Chains
2423
+ */
2424
+ listEvolutionChains(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2425
+ /**
2426
+ * List Evolution Triggers
2427
+ * @param offset The first item that you will get
2428
+ * @param limit How many Evolution Triggers per page
2429
+ * @returns A list of Evolution Triggers
2430
+ */
2431
+ listEvolutionTriggers(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2432
+ }
2433
+
2434
+ /**
2435
+ * ### Game Client
2436
+ *
2437
+ * Client used to access the Game Endpoints:
2438
+ * - [Generations](https://pokeapi.co/docs/v2#generations)
2439
+ * - [Pokedexes](https://pokeapi.co/docs/v2#pokedexes)
2440
+ * - [Versions](https://pokeapi.co/docs/v2#version)
2441
+ * - [Version Groups](https://pokeapi.co/docs/v2#version-groups)
2442
+ * ---
2443
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#games-section)
2444
+ */
2445
+ declare class GameClient extends BaseClient {
2446
+ /**
2447
+ * @argument clientOptions Options for the client.
2448
+ */
2449
+ constructor(clientOptions?: ClientArgs);
2450
+ /**
2451
+ * Get a Generation by it's name
2452
+ * @param name The generation name
2453
+ * @returns A Generation
2454
+ */
2455
+ getGenerationByName(name: string): Promise<Generation>;
2456
+ /**
2457
+ * Get a Generation by it's ID
2458
+ * @param id The generation ID
2459
+ * @returns A Generation
2460
+ */
2461
+ getGenerationById(id: number): Promise<Generation>;
2462
+ /**
2463
+ * Get a Pokedex by it's name
2464
+ * @param name The pokedex name
2465
+ * @returns A Pokedex
2466
+ */
2467
+ getPokedexByName(name: string): Promise<Pokedex>;
2468
+ /**
2469
+ * Get a Pokedex by it's ID
2470
+ * @param id The pokedex ID
2471
+ * @returns A Pokedex
2472
+ */
2473
+ getPokedexById(id: number): Promise<Pokedex>;
2474
+ /**
2475
+ * Get a Version by it's name
2476
+ * @param name The version name
2477
+ * @returns A Version
2478
+ */
2479
+ getVersionByName(name: string): Promise<Version>;
2480
+ /**
2481
+ * Get a Version by it's ID
2482
+ * @param id The version ID
2483
+ * @returns A Version
2484
+ */
2485
+ getVersionById(id: number): Promise<Version>;
2486
+ /**
2487
+ * Get a Version Group by it's name
2488
+ * @param name The version group name
2489
+ * @returns A Version Group
2490
+ */
2491
+ getVersionGroupByName(name: string): Promise<VersionGroup>;
2492
+ /**
2493
+ * Get a Version Group by it's ID
2494
+ * @param id The version group ID
2495
+ * @returns A Version Group
2496
+ */
2497
+ getVersionGroupById(id: number): Promise<VersionGroup>;
2498
+ /**
2499
+ * List Generations
2500
+ * @param offset The first item that you will get
2501
+ * @param limit How many Generations per page
2502
+ * @returns A list of Generations
2503
+ */
2504
+ listGenerations(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2505
+ /**
2506
+ * List Pokedexes
2507
+ * @param offset The first item that you will get
2508
+ * @param limit How many Pokedexes per page
2509
+ * @returns A list of Pokedexes
2510
+ */
2511
+ listPokedexes(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2512
+ /**
2513
+ * List Versions
2514
+ * @param offset The first item that you will get
2515
+ * @param limit How many Versions per page
2516
+ * @returns A list of Versions
2517
+ */
2518
+ listVersions(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2519
+ /**
2520
+ * List Version Groups
2521
+ * @param offset The first item that you will get
2522
+ * @param limit How many Version Groups per page
2523
+ * @returns A list of Version Groups
2524
+ */
2525
+ listVersionGroups(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2526
+ }
2527
+
2528
+ /**
2529
+ * ### Item Client
2530
+ *
2531
+ * Client used to access the Item Endpoints:
2532
+ * - [Item](https://pokeapi.co/docs/v2#item)
2533
+ * - [Item Attributes](https://pokeapi.co/docs/v2#item-attributes)
2534
+ * - [Item Categories](https://pokeapi.co/docs/v2#item-categories)
2535
+ * - [Item Filing Effects](https://pokeapi.co/docs/v2#item-fling-effects)
2536
+ * - [Item Pockets](https://pokeapi.co/docs/v2#item-pockets)
2537
+ * ---
2538
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#items-section)
2539
+ */
2540
+ declare class ItemClient extends BaseClient {
2541
+ /**
2542
+ * @argument clientOptions Options for the client.
2543
+ */
2544
+ constructor(clientOptions?: ClientArgs);
2545
+ /**
2546
+ * Get an Item by it's name
2547
+ * @param name The item name
2548
+ * @returns An Item
2549
+ */
2550
+ getItemByName(name: string): Promise<Item>;
2551
+ /**
2552
+ * Get an Item by it's ID
2553
+ * @param id The item ID
2554
+ * @returns An Item
2555
+ */
2556
+ getItemById(id: number): Promise<Item>;
2557
+ /**
2558
+ * Get an Item Attribute by it's name
2559
+ * @param name The item attribute name
2560
+ * @returns An Item Attribute
2561
+ */
2562
+ getItemAttributeByName(name: string): Promise<ItemAttribute>;
2563
+ /**
2564
+ * Get an Item Attribute by it's ID
2565
+ * @param id The item attribute ID
2566
+ * @returns An Item Attribute
2567
+ */
2568
+ getItemAttributeById(id: number): Promise<ItemAttribute>;
2569
+ /**
2570
+ * Get an Item Category by it's name
2571
+ * @param name The item category name
2572
+ * @returns An Item Category
2573
+ */
2574
+ getItemCategoryByName(name: string): Promise<ItemCategory>;
2575
+ /**
2576
+ * Get an Item Category by it's ID
2577
+ * @param id The item category ID
2578
+ * @returns An Item Category
2579
+ */
2580
+ getItemCategoryById(id: number): Promise<ItemCategory>;
2581
+ /**
2582
+ * Get an Item Filing Effect by it's name
2583
+ * @param name The item filing effect name
2584
+ * @returns An Item Filing Effect
2585
+ */
2586
+ getItemFlingEffectByName(name: string): Promise<ItemFlingEffect>;
2587
+ /**
2588
+ * Get an Item Filing Effect by it's ID
2589
+ * @param id The item filing effect ID
2590
+ * @returns An Item Filing Effect
2591
+ */
2592
+ getItemFlingEffectById(id: number): Promise<ItemFlingEffect>;
2593
+ /**
2594
+ * Get an Item Pocket by it's name
2595
+ * @param name The item pocket name
2596
+ * @returns An Item Pocket
2597
+ */
2598
+ getItemPocketByName(name: string): Promise<ItemPocket>;
2599
+ /**
2600
+ * Get an Item Pocket by it's ID
2601
+ * @param id The item pocket ID
2602
+ * @returns An Item Pocket
2603
+ */
2604
+ getItemPocketById(id: number): Promise<ItemPocket>;
2605
+ /**
2606
+ * List Items
2607
+ * @param offset The first item that you will get
2608
+ * @param limit How many Items per page
2609
+ * @returns A list of Items
2610
+ */
2611
+ listItems(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2612
+ /**
2613
+ * List Item Attributes
2614
+ * @param offset The first item that you will get
2615
+ * @param limit How many Item Attributes per page
2616
+ * @returns A list of Item Attributes
2617
+ */
2618
+ listItemAttributes(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2619
+ /**
2620
+ * List Item Categories
2621
+ * @param offset The first item that you will get
2622
+ * @param limit How many Item Categories per page
2623
+ * @returns A list of Item Categories
2624
+ */
2625
+ listItemCategories(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2626
+ /**
2627
+ * List Item Filing Effects
2628
+ * @param offset The first item that you will get
2629
+ * @param limit How many Item Filing Effects per page
2630
+ * @returns A list of Item Filing Effects
2631
+ */
2632
+ listItemFilingEffects(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2633
+ /**
2634
+ * List Item Pockets
2635
+ * @param offset The first item that you will get
2636
+ * @param limit How many Item Pockets per page
2637
+ * @returns A list of Item Pockets
2638
+ */
2639
+ listItemPockets(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2640
+ }
2641
+
2642
+ /**
2643
+ * ### Location Client
2644
+ *
2645
+ * Client used to access the Location Endpoints:
2646
+ * - [Locations](https://pokeapi.co/docs/v2#locations)
2647
+ * - [Location Areas](https://pokeapi.co/docs/v2#location-areas)
2648
+ * - [Pal Park Areas](https://pokeapi.co/docs/v2#pal-park-areas)
2649
+ * - [Regions](https://pokeapi.co/docs/v2#regions)
2650
+ * ---
2651
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#locations-section)
2652
+ */
2653
+ declare class LocationClient extends BaseClient {
2654
+ /**
2655
+ * @argument clientOptions Options for the client.
2656
+ */
2657
+ constructor(clientOptions?: ClientArgs);
2658
+ /**
2659
+ * Get a Location by it's name
2660
+ * @param name The Location name
2661
+ * @returns A Location
2662
+ */
2663
+ getLocationByName(name: string): Promise<Location>;
2664
+ /**
2665
+ * Get a Location by it's ID
2666
+ * @param id The Location ID
2667
+ * @returns A location
2668
+ */
2669
+ getLocationById(id: number): Promise<Location>;
2670
+ /**
2671
+ * Get a Location Area by it's name
2672
+ * @param name The Location Area name
2673
+ * @returns A Location Area
2674
+ */
2675
+ getLocationAreaByName(name: string): Promise<LocationArea>;
2676
+ /**
2677
+ * Get a Location Area by it's ID
2678
+ * @param id The Location Area ID
2679
+ * @returns A Location Area
2680
+ */
2681
+ getLocationAreaById(id: number): Promise<LocationArea>;
2682
+ /**
2683
+ * Get a Pal Park Area by it's name
2684
+ * @param name The Pal Park Area name
2685
+ * @returns A Pal Park Area
2686
+ */
2687
+ getPalParkAreaByName(name: string): Promise<PalParkArea>;
2688
+ /**
2689
+ * Get a Pal Park Area by it's ID
2690
+ * @param id The Pal Park Area ID
2691
+ * @returns A Pal Park Area
2692
+ */
2693
+ getPalParkAreaById(id: number): Promise<PalParkArea>;
2694
+ /**
2695
+ * Get a Region by it's name
2696
+ * @param name The Region name
2697
+ * @returns A Region
2698
+ */
2699
+ getRegionByName(name: string): Promise<Region>;
2700
+ /**
2701
+ * Get a Region by it's ID
2702
+ * @param id The Region ID
2703
+ * @returns A Region
2704
+ */
2705
+ getRegionById(id: number): Promise<Region>;
2706
+ /**
2707
+ * List Locations
2708
+ * @param offset The first item that you will get
2709
+ * @param limit How many Locations per page
2710
+ * @returns A list of Locations
2711
+ */
2712
+ listLocations(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2713
+ /**
2714
+ * List Location Areas
2715
+ * @param offset The first item that you will get
2716
+ * @param limit How many Locations per page
2717
+ * @returns A list of Location Areas
2718
+ */
2719
+ listLocationAreas(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2720
+ /**
2721
+ * List Pal Park Areas
2722
+ * @param offset The first item that you will get
2723
+ * @param limit How many Pal Park Areas per page
2724
+ * @returns A list of Pal Park Areas
2725
+ */
2726
+ listPalParkAreas(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2727
+ /**
2728
+ * List Regions
2729
+ * @param offset The first item that you will get
2730
+ * @param limit How many Regions per page
2731
+ * @returns A list of Regions
2732
+ */
2733
+ listRegions(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2734
+ }
2735
+
2736
+ /**
2737
+ * ### Machine Client
2738
+ *
2739
+ * Client used to access the Machine Endpoints:
2740
+ * - [Machines](https://pokeapi.co/docs/v2#machines)
2741
+ *
2742
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#machines-section)
2743
+ */
2744
+ declare class MachineClient extends BaseClient {
2745
+ /**
2746
+ * @argument clientOptions Options for the client.
2747
+ */
2748
+ constructor(clientOptions?: ClientArgs);
2749
+ /**
2750
+ * Get a Machine by it's ID
2751
+ * @param id The Machine ID
2752
+ * @returns A Machine
2753
+ */
2754
+ getMachineById(id: number): Promise<Machine>;
2755
+ /**
2756
+ * List Machines
2757
+ * @param offset The first item that you will get
2758
+ * @param limit How many Machines per page
2759
+ * @returns A list of Machines
2760
+ */
2761
+ listMachines(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2762
+ }
2763
+
2764
+ /**
2765
+ * ### Move Client
2766
+ *
2767
+ * Client used to access the Move Endpoints:
2768
+ * - [Moves](https://pokeapi.co/docs/v2#moves)
2769
+ * - [Move Ailments](https://pokeapi.co/docs/v2#move-ailments)
2770
+ * - [Move Battle Styles](https://pokeapi.co/docs/v2#move-battle-styles)
2771
+ * - [Move Categories](https://pokeapi.co/docs/v2#move-categories)
2772
+ * - [Move Damage Classes](https://pokeapi.co/docs/v2#move-damage-classes)
2773
+ * - [Move Learn Methods](https://pokeapi.co/docs/v2#move-learn-methods)
2774
+ * - [Move Move Targets](https://pokeapi.co/docs/v2#move-targets)
2775
+ * ---
2776
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#moves-section)
2777
+ */
2778
+ declare class MoveClient extends BaseClient {
2779
+ /**
2780
+ * @argument clientOptions Options for the client.
2781
+ */
2782
+ constructor(clientOptions?: ClientArgs);
2783
+ /**
2784
+ * Get a Move by it's name
2785
+ * @param name The move name
2786
+ * @returns A Move
2787
+ */
2788
+ getMoveByName(name: string): Promise<Move>;
2789
+ /**
2790
+ * Get a Move by it's ID
2791
+ * @param id The Move ID
2792
+ * @returns A Move
2793
+ */
2794
+ getMoveById(id: number): Promise<Move>;
2795
+ /**
2796
+ * Get a Move Ailment by it's name
2797
+ * @param name The Move Ailment name
2798
+ * @returns A Move Ailment
2799
+ */
2800
+ getMoveAilmentByName(name: string): Promise<MoveAilment>;
2801
+ /**
2802
+ * Get a Move Ailment by it's ID
2803
+ * @param id The Move Ailment ID
2804
+ * @returns A Move Ailment
2805
+ */
2806
+ getMoveAilmentById(id: number): Promise<MoveAilment>;
2807
+ /**
2808
+ * Get a Move Battle Style by it's name
2809
+ * @param name The Move Battle Style name
2810
+ * @returns A Move Battle Style
2811
+ */
2812
+ getMoveBattleStyleByName(name: string): Promise<MoveBattleStyle>;
2813
+ /**
2814
+ * Get a Move Battle Style by it's ID
2815
+ * @param id The Move Battle Style ID
2816
+ * @returns A Move Battle Style
2817
+ */
2818
+ getMoveBattleStyleById(id: number): Promise<MoveBattleStyle>;
2819
+ /**
2820
+ * Get a Move Battle Category by it's name
2821
+ * @param name The Move Category name
2822
+ * @returns A Move Category
2823
+ */
2824
+ getMoveCategoryByName(name: string): Promise<MoveCategory>;
2825
+ /**
2826
+ * Get a Move Battle Category by it's ID
2827
+ * @param id The Move Category ID
2828
+ * @returns A Move Category
2829
+ */
2830
+ getMoveCategoryById(id: number): Promise<MoveCategory>;
2831
+ /**
2832
+ * Get a Move Damage Class by it's name
2833
+ * @param name The Move Damage Class name
2834
+ * @returns A Move Damage Class
2835
+ */
2836
+ getMoveDamageClassByName(name: string): Promise<MoveDamageClass>;
2837
+ /**
2838
+ * Get a Move Damage Class by it's ID
2839
+ * @param id The Move Damage Class ID
2840
+ * @returns A Move Damage Class
2841
+ */
2842
+ getMoveDamageClassById(id: number): Promise<MoveDamageClass>;
2843
+ /**
2844
+ * Get a Move Learn Method by it's name
2845
+ * @param name The Move Learn Method name
2846
+ * @returns A Move Learn Method
2847
+ */
2848
+ getMoveLearnMethodByName(name: string): Promise<MoveLearnMethod>;
2849
+ /**
2850
+ * Get a Move Learn Method by it's ID
2851
+ * @param id The Move Learn Method ID
2852
+ * @returns A Move Learn Method
2853
+ */
2854
+ getMoveLearnMethodById(id: number): Promise<MoveLearnMethod>;
2855
+ /**
2856
+ * Get a Move Target by it's name
2857
+ * @param name The Move Target name
2858
+ * @returns A Move Target
2859
+ */
2860
+ getMoveTargetByName(name: string): Promise<MoveTarget>;
2861
+ /**
2862
+ * Get a Move Target by it's ID
2863
+ * @param id The Move Target ID
2864
+ * @returns A Move Target
2865
+ */
2866
+ getMoveTargetById(id: number): Promise<MoveTarget>;
2867
+ /**
2868
+ * List Moves
2869
+ * @param offset The first item that you will get
2870
+ * @param limit How many Moves per page
2871
+ * @returns A list of Moves
2872
+ */
2873
+ listMoves(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2874
+ /**
2875
+ * List Move Ailments
2876
+ * @param offset The first item that you will get
2877
+ * @param limit How many Move Ailments per page
2878
+ * @returns A list of Move Ailments
2879
+ */
2880
+ listMoveAilments(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2881
+ /**
2882
+ * List Move Battle Styles
2883
+ * @param offset The first item that you will get
2884
+ * @param limit How many Move Battle Styles per page
2885
+ * @returns A list of Move Battle Styles
2886
+ */
2887
+ listMoveBattleStyles(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2888
+ /**
2889
+ * List Move Categories
2890
+ * @param offset The first item that you will get
2891
+ * @param limit How many Move Categories per page
2892
+ * @returns A list of Move Categories
2893
+ */
2894
+ listMoveCategories(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2895
+ /**
2896
+ * List Move Damage Classes
2897
+ * @param offset The first item that you will get
2898
+ * @param limit How many Move Damage Classes per page
2899
+ * @returns A list of Move Damage Classes
2900
+ */
2901
+ listMoveDamageClasses(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2902
+ /**
2903
+ * List Move Learn Methods
2904
+ * @param offset The first item that you will get
2905
+ * @param limit How many Move Learn Methods per page
2906
+ * @returns A list of Move Learn Methods
2907
+ */
2908
+ listMoveLearnMethods(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2909
+ /**
2910
+ * List Move Targets
2911
+ * @param offset The first item that you will get
2912
+ * @param limit How many Move Targets per page
2913
+ * @returns A list of Move Targets
2914
+ */
2915
+ listMoveTargets(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
2916
+ }
2917
+
2918
+ /**
2919
+ * ### Pokemon Client
2920
+ *
2921
+ * Client used to access the Pokemon Endpoints:
2922
+ * - [Abilities](https://pokeapi.co/docs/v2#abilities)
2923
+ * - [Characteristics](https://pokeapi.co/docs/v2#characteristics)
2924
+ * - [Egg Groups](https://pokeapi.co/docs/v2#egg-groups)
2925
+ * - [Genders](https://pokeapi.co/docs/v2#genders)
2926
+ * - [Growth Rates](https://pokeapi.co/docs/v2#growth-rates)
2927
+ * - [Natures](https://pokeapi.co/docs/v2#natures)
2928
+ * - [Pokeathlon Stats](https://pokeapi.co/docs/v2#pokeathlon-stats)
2929
+ * - [Pokemon](https://pokeapi.co/docs/v2#pokemon)
2930
+ * - [Pokemon Location Areas](https://pokeapi.co/docs/v2#pokemon-location-areas)
2931
+ * - [Pokemon Colors](https://pokeapi.co/docs/v2#pokemon-colors)
2932
+ * - [Pokemon Forms](https://pokeapi.co/docs/v2#pokemon-forms)
2933
+ * - [Pokemon Habitats](https://pokeapi.co/docs/v2#pokemon-habitats)
2934
+ * - [Pokemon Shapes](https://pokeapi.co/docs/v2#pokemon-shapes)
2935
+ * - [Pokemon Species](https://pokeapi.co/docs/v2#pokemon-species)
2936
+ * - [Stats](https://pokeapi.co/docs/v2#stats)
2937
+ * - [Types](https://pokeapi.co/docs/v2#types)
2938
+ * ---
2939
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#pokemon-section)
2940
+ */
2941
+ declare class PokemonClient extends BaseClient {
2942
+ /**
2943
+ * @argument clientOptions Options for the client.
2944
+ */
2945
+ constructor(clientOptions?: ClientArgs);
2946
+ /**
2947
+ * Get an Ability by it's name
2948
+ * @param name The Ability name
2949
+ * @returns An Ability
2950
+ */
2951
+ getAbilityByName(name: string): Promise<Ability>;
2952
+ /**
2953
+ * Get an Ability by it's ID
2954
+ * @param id The Ability ID
2955
+ * @returns An Ability
2956
+ */
2957
+ getAbilityById(id: number): Promise<Ability>;
2958
+ /**
2959
+ * Get a Characteristic by it's ID
2960
+ * @param id The Characteristic ID
2961
+ * @returns A Characteristic
2962
+ */
2963
+ getCharacteristicById(id: number): Promise<Characteristic>;
2964
+ /**
2965
+ * Get an Egg Group by it's name
2966
+ * @param name The Egg Group name
2967
+ * @returns An Egg Group
2968
+ */
2969
+ getEggGroupByName(name: string): Promise<EggGroup>;
2970
+ /**
2971
+ * Get an Egg Group by it's ID
2972
+ * @param id The Egg Group ID
2973
+ * @returns An Egg Group
2974
+ */
2975
+ getEggGroupById(id: number): Promise<EggGroup>;
2976
+ /**
2977
+ * Get a Gender by it's name
2978
+ * @param name The gender name
2979
+ * @returns An Egg Group
2980
+ */
2981
+ getGenderByName(name: string): Promise<Gender>;
2982
+ /**
2983
+ * Get a Gender by it's ID
2984
+ * @param id The Gender ID
2985
+ * @returns A Gender
2986
+ */
2987
+ getGenderById(id: number): Promise<Gender>;
2988
+ /**
2989
+ * Get a Growth Rate by it's name
2990
+ * @param name The Growth Rate name
2991
+ * @returns A Growth Rate
2992
+ */
2993
+ getGrowthRateByName(name: string): Promise<GrowthRate>;
2994
+ /**
2995
+ * Get a Growth Rate by it's ID
2996
+ * @param id The Growth Rate ID
2997
+ * @returns A Growth Rate
2998
+ */
2999
+ getGrowthRateById(id: number): Promise<GrowthRate>;
3000
+ /**
3001
+ * Get a Nature by it's name
3002
+ * @param name The Nature name
3003
+ * @returns A Nature
3004
+ */
3005
+ getNatureByName(name: string): Promise<Nature>;
3006
+ /**
3007
+ * Get a Nature by it's ID
3008
+ * @param id The Nature ID
3009
+ * @returns A Nature
3010
+ */
3011
+ getNatureById(id: number): Promise<Nature>;
3012
+ /**
3013
+ * Get a Pokeathlon Stat by it's name
3014
+ * @param name The Pokeathlon Stat name
3015
+ * @returns A Pokeathlon Stat
3016
+ */
3017
+ getPokeathlonStatByName(name: string): Promise<PokeathlonStat>;
3018
+ /**
3019
+ * Get a Pokeathlon Stat by it's ID
3020
+ * @param id The Pokeathlon Stat ID
3021
+ * @returns A Pokeathlon Stat
3022
+ */
3023
+ getPokeathlonStatById(id: number): Promise<PokeathlonStat>;
3024
+ /**
3025
+ * Get a Pokemon by it's name
3026
+ * @param name The Pokemon name
3027
+ * @returns A Pokemon Stat
3028
+ */
3029
+ getPokemonByName(name: string): Promise<Pokemon>;
3030
+ /**
3031
+ * Get a Pokemon by it's ID
3032
+ * @param id The Pokemon ID
3033
+ * @returns A Pokemon
3034
+ */
3035
+ getPokemonById(id: number): Promise<Pokemon>;
3036
+ /**
3037
+ * Get a Pokemon Location Area by it's ID
3038
+ * @param id The Pokemon Location Area ID
3039
+ * @returns A Pokemon Location Area
3040
+ */
3041
+ getPokemonLocationAreaById(id: number): Promise<LocationAreaEncounter[]>;
3042
+ /**
3043
+ * Get a Pokemon Color by it's name
3044
+ * @param name The Pokemon Color name
3045
+ * @returns A Pokemon Color
3046
+ */
3047
+ getPokemonColorByName(name: string): Promise<PokemonColor>;
3048
+ /**
3049
+ * Get a Pokemon Color by it's ID
3050
+ * @param id The Pokemon Color ID
3051
+ * @returns A Pokemon Color
3052
+ */
3053
+ getPokemonColorById(id: number): Promise<PokemonColor>;
3054
+ /**
3055
+ * Get a Pokemon Form by it's name
3056
+ * @param name The Pokemon Form name
3057
+ * @returns A Pokemon Form
3058
+ */
3059
+ getPokemonFormByName(name: string): Promise<PokemonForm>;
3060
+ /**
3061
+ * Get a Pokemon Form by it's ID
3062
+ * @param id The Pokemon Form ID
3063
+ * @returns A Pokemon Form
3064
+ */
3065
+ getPokemonFormById(id: number): Promise<PokemonForm>;
3066
+ /**
3067
+ * Get a Pokemon Habitat by it's name
3068
+ * @param name The Pokemon Habitat name
3069
+ * @returns A Pokemon Habitat
3070
+ */
3071
+ getPokemonHabitatByName(name: string): Promise<PokemonHabitat>;
3072
+ /**
3073
+ * Get a Pokemon Habitat by it's ID
3074
+ * @param id The Pokemon Habitat Form ID
3075
+ * @returns A Pokemon Habitat
3076
+ */
3077
+ getPokemonHabitatById(id: number): Promise<PokemonHabitat>;
3078
+ /**
3079
+ * Get a Pokemon Shape by it's name
3080
+ * @param name The Pokemon Shape name
3081
+ * @returns A Pokemon Shape
3082
+ */
3083
+ getPokemonShapeByName(name: string): Promise<PokemonShape>;
3084
+ /**
3085
+ * Get a Pokemon Shape by it's ID
3086
+ * @param id The Pokemon Shape Form ID
3087
+ * @returns A Pokemon Shape
3088
+ */
3089
+ getPokemonShapeById(id: number): Promise<PokemonShape>;
3090
+ /**
3091
+ * Get a Pokemon Species by it's name
3092
+ * @param name The Pokemon Species name
3093
+ * @returns A Pokemon Species
3094
+ */
3095
+ getPokemonSpeciesByName(name: string): Promise<PokemonSpecies>;
3096
+ /**
3097
+ * Get a Pokemon Species by it's ID
3098
+ * @param id The Pokemon Species Form ID
3099
+ * @returns A Pokemon Species
3100
+ */
3101
+ getPokemonSpeciesById(id: number): Promise<PokemonSpecies>;
3102
+ /**
3103
+ * Get a Stat by it's name
3104
+ * @param name The Stat name
3105
+ * @returns A Stat
3106
+ */
3107
+ getStatByName(name: string): Promise<Stat>;
3108
+ /**
3109
+ * Get a Stat by it's ID
3110
+ * @param id The Stat ID
3111
+ * @returns A Stat
3112
+ */
3113
+ getStatById(id: number): Promise<Stat>;
3114
+ /**
3115
+ * Get a Type by it's name
3116
+ * @param name The Type name
3117
+ * @returns A Type
3118
+ */
3119
+ getTypeByName(name: string): Promise<Type>;
3120
+ /**
3121
+ * Get a Type by it's ID
3122
+ * @param id The Type ID
3123
+ * @returns A Type
3124
+ */
3125
+ getTypeById(id: number): Promise<Type>;
3126
+ /**
3127
+ * List Abilities
3128
+ * @param offset The first item that you will get
3129
+ * @param limit How many Abilities per page
3130
+ * @returns A list of Abilities
3131
+ */
3132
+ listAbilities(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3133
+ /**
3134
+ * List Characteristics
3135
+ * @param offset The first item that you will get
3136
+ * @param limit How many Characteristics per page
3137
+ * @returns A list of Characteristics
3138
+ */
3139
+ listCharacteristics(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3140
+ /**
3141
+ * List Egg Groups
3142
+ * @param offset The first item that you will get
3143
+ * @param limit How many Egg Groups per page
3144
+ * @returns A list of Egg Groups
3145
+ */
3146
+ listEggGroups(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3147
+ /**
3148
+ * List Genders
3149
+ * @param offset The first item that you will get
3150
+ * @param limit How many Genders per page
3151
+ * @returns A list of Genders
3152
+ */
3153
+ listGenders(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3154
+ /**
3155
+ * List Growth Rates
3156
+ * @param offset The first item that you will get
3157
+ * @param limit How many Growth Rates per page
3158
+ * @returns A list of Growth Rates
3159
+ */
3160
+ listGrowthRates(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3161
+ /**
3162
+ * List Natures
3163
+ * @param offset The first item that you will get
3164
+ * @param limit How many Growth Natures per page
3165
+ * @returns A list of Natures
3166
+ */
3167
+ listNatures(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3168
+ /**
3169
+ * List Pokeathlon Stats
3170
+ * @param offset The first item that you will get
3171
+ * @param limit How many Pokeathlon Stats per page
3172
+ * @returns A list of Pokeathlon Stats
3173
+ */
3174
+ listPokeathlonStats(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3175
+ /**
3176
+ * List Pokemons
3177
+ * @param offset The first item that you will get
3178
+ * @param limit How many Pokemons Stats per page
3179
+ * @returns A list of Pokemons
3180
+ */
3181
+ listPokemons(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3182
+ /**
3183
+ * List Pokemon Colors
3184
+ * @param offset The first item that you will get
3185
+ * @param limit How many Pokemon Colors per page
3186
+ * @returns A list of Pokemon Colors
3187
+ */
3188
+ listPokemonColors(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3189
+ /**
3190
+ * List Pokemon Forms
3191
+ * @param offset The first item that you will get
3192
+ * @param limit How many Pokemon Forms per page
3193
+ * @returns A list of Pokemon Forms
3194
+ */
3195
+ listPokemonForms(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3196
+ /**
3197
+ * List Pokemon Habitats
3198
+ * @param offset The first item that you will get
3199
+ * @param limit How many Pokemon Habitats per page
3200
+ * @returns A list of Pokemon Habitats
3201
+ */
3202
+ listPokemonHabitats(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3203
+ /**
3204
+ * List Pokemon Shapes
3205
+ * @param offset The first item that you will get
3206
+ * @param limit How many Pokemon Shapes per page
3207
+ * @returns A list of Pokemon Shapes
3208
+ */
3209
+ listPokemonShapes(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3210
+ /**
3211
+ * List Pokemon Species
3212
+ * @param offset The first item that you will get
3213
+ * @param limit How many Pokemon Species per page
3214
+ * @returns A list of Pokemon Species
3215
+ */
3216
+ listPokemonSpecies(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3217
+ /**
3218
+ * List Stats
3219
+ * @param offset The first item that you will get
3220
+ * @param limit How many Stats per page
3221
+ * @returns A list of Stats
3222
+ */
3223
+ listStats(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3224
+ /**
3225
+ * List Types
3226
+ * @param offset The first item that you will get
3227
+ * @param limit How many Types per page
3228
+ * @returns A list of Types
3229
+ */
3230
+ listTypes(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3231
+ }
3232
+
3233
+ /**
3234
+ * ### Utility Client
3235
+ *
3236
+ * Client used to access the Utility Endpoints:
3237
+ * - [Languages](https://pokeapi.co/docs/v2#utility-section)
3238
+ * - Resources
3239
+ * ---
3240
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2#utility-section)
3241
+ */
3242
+ declare class UtilityClient extends BaseClient {
3243
+ constructor(clientOptions?: ClientArgs);
3244
+ /**
3245
+ * Get a Language by it's ID
3246
+ * @param id The Language ID
3247
+ * @returns Language
3248
+ */
3249
+ getLanguageById(id: number): Promise<Language>;
3250
+ /**
3251
+ * Get a Language by it's name
3252
+ * @param name The Language name
3253
+ * @returns Language
3254
+ */
3255
+ getLanguageByName(name: string): Promise<Language>;
3256
+ /**
3257
+ * Get a Resource by it's url
3258
+ * @param url The Resource url
3259
+ * @returns Resource
3260
+ */
3261
+ getResourceByUrl<T>(url: string): Promise<T>;
3262
+ /**
3263
+ * List Languages
3264
+ * @param offset The first item that you will get
3265
+ * @param limit How many Languages per page
3266
+ * @returns A list of Languages
3267
+ */
3268
+ listLanguages(offset?: number, limit?: number): Promise<NamedAPIResourceList>;
3269
+ }
3270
+
3271
+ /**
3272
+ * ### Main Client
3273
+ *
3274
+ * The main client used to access all the PokéAPI Endpoints:
3275
+ * - [Berries](https://pokeapi.co/docs/v2#berries-section)
3276
+ * - [Contests](https://pokeapi.co/docs/v2#contests-section)
3277
+ * - [Encounters](https://pokeapi.co/docs/v2#encounters-section)
3278
+ * - [Evolution](https://pokeapi.co/docs/v2#evolution-section)
3279
+ * - [Games](https://pokeapi.co/docs/v2#games-section)
3280
+ * - [Items](https://pokeapi.co/docs/v2#items-section)
3281
+ * - [Locations](https://pokeapi.co/docs/v2#locations-section)
3282
+ * - [Machines](https://pokeapi.co/docs/v2#machines-section)
3283
+ * - [Moves](https://pokeapi.co/docs/v2#moves-section)
3284
+ * - [Pokémon](https://pokeapi.co/docs/v2#pokemon-section)
3285
+ * - [Utility](https://pokeapi.co/docs/v2#utility-section)
3286
+ * ---
3287
+ * See [PokéAPI Documentation](https://pokeapi.co/docs/v2)
3288
+ */
3289
+ declare class MainClient extends BaseClient {
3290
+ berry: BerryClient;
3291
+ contest: ContestClient;
3292
+ encounter: EncounterClient;
3293
+ evolution: EvolutionClient;
3294
+ game: GameClient;
3295
+ item: ItemClient;
3296
+ location: LocationClient;
3297
+ machine: MachineClient;
3298
+ move: MoveClient;
3299
+ pokemon: PokemonClient;
3300
+ constructor(clientOptions?: ClientArgs);
3301
+ }
3302
+
3303
+ declare enum BaseURL {
3304
+ REST = "https://pokeapi.co/api/v2"
3305
+ }
3306
+
3307
+ /**
3308
+ * Endpoints of the PokéAPI
3309
+ */
3310
+ declare enum Endpoints {
3311
+ Berry = "/berry",
3312
+ BerryFirmness = "/berry-firmness",
3313
+ BerryFlavor = "/berry-flavor",
3314
+ ContestType = "/contest-type",
3315
+ ContestEffect = "/contest-effect",
3316
+ SuperContestEffect = "/super-contest-effect",
3317
+ EncouterMethod = "/encounter-method",
3318
+ EncounterCondition = "/encounter-condition",
3319
+ EncouterConditionValue = "/encounter-condition-value",
3320
+ EvolutionChain = "/evolution-chain",
3321
+ EvolutionTrigger = "/evolution-trigger",
3322
+ Generation = "/generation",
3323
+ Pokedex = "/pokedex",
3324
+ Version = "/version",
3325
+ VersionGroup = "/version-group",
3326
+ Item = "/item",
3327
+ ItemAttribute = "/item-attribute",
3328
+ ItemCategory = "/item-category",
3329
+ ItemFlingEffect = "/item-fling-effect",
3330
+ ItemPocket = "/item-pocket",
3331
+ Location = "/location",
3332
+ LocationArea = "/location-area",
3333
+ PalParkArea = "/pal-park-area",
3334
+ Region = "/region",
3335
+ Machine = "/machine",
3336
+ Move = "/move",
3337
+ MoveAilment = "/move-ailment",
3338
+ MoveBattleStyle = "/move-battle-style",
3339
+ MoveCategory = "/move-category",
3340
+ MoveDamageClass = "/move-damage-class",
3341
+ MoveLearnMethod = "/move-learn-method",
3342
+ MoveTarget = "/move-target",
3343
+ Ability = "/ability",
3344
+ Characteristic = "/characteristic",
3345
+ EggGroup = "/egg-group",
3346
+ Gender = "/gender",
3347
+ GrowthRate = "/growth-rate",
3348
+ Nature = "/nature",
3349
+ PokeathlonStat = "/pokeathlon-stat",
3350
+ Pokemon = "/pokemon",
3351
+ PokemonLocationArea = "/pokemon/:id/encounters",
3352
+ PokemonColor = "/pokemon-color",
3353
+ PokemonForm = "/pokemon-form",
3354
+ PokemonHabitat = "/pokemon-habitat",
3355
+ PokemonShape = "/pokemon-shape",
3356
+ PokemonSpecies = "/pokemon-species",
3357
+ Stat = "/stat",
3358
+ Type = "/type",
3359
+ Language = "/language"
3360
+ }
3361
+
3362
+ /** Enum of Berries (NAME - ID) */
3363
+ declare enum Berries {
3364
+ CHERI = 1,
3365
+ CHESTO = 2,
3366
+ PECHA = 3,
3367
+ RAWST = 4,
3368
+ ASPEAR = 5,
3369
+ LEPPA = 6,
3370
+ ORAN = 7,
3371
+ PERSIM = 8,
3372
+ LUM = 9,
3373
+ SITRUS = 10,
3374
+ FIGY = 11,
3375
+ WIKI = 12,
3376
+ MAGO = 13,
3377
+ AGUAV = 14,
3378
+ IAPAPA = 15,
3379
+ RAZZ = 16,
3380
+ BLUK = 17,
3381
+ NANAB = 18,
3382
+ WEPEAR = 19,
3383
+ PINAP = 20,
3384
+ POMEG = 21,
3385
+ KELPSY = 22,
3386
+ QUALOT = 23,
3387
+ HONDEW = 24,
3388
+ GREPA = 25,
3389
+ TAMATO = 26,
3390
+ CORNN = 27,
3391
+ MAGOST = 28,
3392
+ RABUTA = 29,
3393
+ NOMEL = 30,
3394
+ SPELON = 31,
3395
+ PAMTRE = 32,
3396
+ WATMEL = 33,
3397
+ DURIN = 34,
3398
+ BELUE = 35,
3399
+ OCCA = 36,
3400
+ PASSHO = 37,
3401
+ WACAN = 38,
3402
+ RINDO = 39,
3403
+ YACHE = 40,
3404
+ CHOPLE = 41,
3405
+ KEBIA = 42,
3406
+ SHUCA = 43,
3407
+ COBA = 44,
3408
+ PAYAPA = 45,
3409
+ TANGA = 46,
3410
+ CHARTI = 47,
3411
+ KASIB = 48,
3412
+ HABAN = 49,
3413
+ COLBUR = 50,
3414
+ BABIRI = 51,
3415
+ CHILAN = 52,
3416
+ LIECHI = 53,
3417
+ GANLON = 54,
3418
+ SALAC = 55,
3419
+ PETAYA = 56,
3420
+ APICOT = 57,
3421
+ LANSAT = 58,
3422
+ STARF = 59,
3423
+ ENIGMA = 60,
3424
+ MICLE = 61,
3425
+ CUSTAP = 62,
3426
+ JABOCA = 63,
3427
+ ROWAP = 64
3428
+ }
3429
+ /** Enum of Berry Firmnesses (NAME - ID) */
3430
+ declare enum BerryFirmnesses {
3431
+ VERY_SOFT = 1,
3432
+ SOFT = 2,
3433
+ HARD = 3,
3434
+ VERY_HARD = 4,
3435
+ SUPER_HARD = 5
3436
+ }
3437
+ declare enum BerryFlavors {
3438
+ SPICY = 1,
3439
+ DRY = 2,
3440
+ SWEET = 3,
3441
+ BITTER = 4,
3442
+ SOUR = 5
3443
+ }
3444
+
3445
+ declare enum ContestTypes {
3446
+ COOL = 1,
3447
+ BEAUTY = 2,
3448
+ CUTE = 3,
3449
+ SMART = 4,
3450
+ TOUGH = 5
3451
+ }
3452
+
3453
+ declare enum EncounterMethods {
3454
+ WALK = 1,
3455
+ OLD_ROD = 2,
3456
+ GOOD_ROD = 3,
3457
+ SUPER_ROD = 4,
3458
+ SURF = 5,
3459
+ ROCK_SMASH = 6,
3460
+ HEADBUTT = 7,
3461
+ DARK_GRASS = 8,
3462
+ GRASS_SPOTS = 9,
3463
+ CAVE_SPOTS = 10,
3464
+ BRIDGE_SPOTS = 11,
3465
+ SUPER_ROD_SPOTS = 12,
3466
+ SURF_SPOTS = 13,
3467
+ YELLOW_FLOWERS = 14,
3468
+ PURPLE_FLOWERS = 15,
3469
+ RED_FLOWERS = 16,
3470
+ ROUGH_TERRAIN = 17,
3471
+ GIFT = 18,
3472
+ GIFT_EGG = 19,
3473
+ ONLY_ONE = 20,
3474
+ POKEFLUTE = 21,
3475
+ HEADBUTT_LOW = 22,
3476
+ HEADBUTT_NORMAL = 23,
3477
+ HEADBUT_HIGH = 24,
3478
+ SQUIRT_BOTTLE = 25,
3479
+ WAILMER_PAIL = 26,
3480
+ SEAWEED = 27
3481
+ }
3482
+ declare enum EncounterConditions {
3483
+ SWARM = 1,
3484
+ TIME = 2,
3485
+ RADAR = 3,
3486
+ SLOT2 = 4,
3487
+ RADIO = 5,
3488
+ SEASON = 6,
3489
+ STARTER = 7,
3490
+ TV_OPTION = 8,
3491
+ STORY_PROGRESS = 9,
3492
+ OTHER = 10
3493
+ }
3494
+ declare enum EncounterConditionValues {
3495
+ SWARM_YES = 1,
3496
+ SWARM_NO = 2,
3497
+ TIME_MORNING = 3,
3498
+ TIME_DAY = 4,
3499
+ TIME_NIGHT = 5,
3500
+ RADAR_ON = 6,
3501
+ RADAR_OFF = 7,
3502
+ SLOT2_NONE = 8,
3503
+ SLOT2_RUBY = 9,
3504
+ SLOT2_SAPHIRE = 10,
3505
+ SLOT2_EMERALD = 11,
3506
+ SLOT2_FIRERED = 12,
3507
+ SLOT2_LEAFGREEN = 13,
3508
+ RADIO_OFF = 14,
3509
+ RADIO_HOEN = 15,
3510
+ RADIO_SINNOH = 16,
3511
+ SEASON_SPRING = 17,
3512
+ SEASON_SUMMER = 18,
3513
+ SWASON_AUTUMN = 19,
3514
+ SEASON_WINTER = 20,
3515
+ STARTER_BULBASAUR = 21,
3516
+ STARTER_SQUIRTLE = 22,
3517
+ STARTER_CHARMANDER = 23,
3518
+ STARTER_CHESPIN = 24,
3519
+ STARTER_FENNEKIN = 25,
3520
+ STARTER_FROAKIE = 26,
3521
+ TV_OPTION_BLUE = 27,
3522
+ TV_OPTION_RED = 28,
3523
+ STORY_PROGRESS_AWAKENED_BEASTS = 29,
3524
+ STORY_PROGRESS_BEAT_GALACTIC_CORONET = 30,
3525
+ STORY_PROGRESS_OAK_ETERNA_CITY = 31,
3526
+ STORY_PROGRESS_OAK_VERMILION_COPYCAT = 32,
3527
+ STORY_PROGRESS_MET_TORNADUS_THUNDURUS = 33,
3528
+ STORY_PROGRESS_BEAT_ELITE_FOUR_ROUND_TWO = 34,
3529
+ STORY_PROGRESS_HALL_OF_FAME = 35,
3530
+ STORY_PROGRESS_NONE = 36,
3531
+ STORY_PROGRESS_NATIONAL_DEX = 37,
3532
+ OTHER_NONE = 38,
3533
+ OTHER_SNORLAX_LL_BEAT_LEAGUE = 39
3534
+ }
3535
+
3536
+ declare enum EvolutionTriggers {
3537
+ LEVEL_UP = 1,
3538
+ TRADE = 2,
3539
+ USE_ITEM = 3,
3540
+ SHED = 4,
3541
+ SPIN = 5,
3542
+ TOWER_OF_DARKNESS = 6,
3543
+ TOWER_OF_WATER = 7,
3544
+ THREE_CRITICAL_HITS = 8,
3545
+ TAKE_DAMAGE = 9,
3546
+ OTHER = 10
3547
+ }
3548
+
3549
+ declare enum Generations {
3550
+ GENERATION_I = 1,
3551
+ GENERATION_II = 2,
3552
+ GENERATION_III = 3,
3553
+ GENERATION_IV = 4,
3554
+ GENERATION_V = 5,
3555
+ GENERATION_VI = 6,
3556
+ GENERATION_VII = 7,
3557
+ GENERATION_VIII = 8
3558
+ }
3559
+ declare enum Pokedexes {
3560
+ NATIONAL = 1,
3561
+ KANTO = 2,
3562
+ ORIGINAL_JOHTO = 3,
3563
+ HOENN = 4,
3564
+ ORIGINAL_SINNOH = 5,
3565
+ EXTENDED_SINNOH = 6,
3566
+ UPDATED_JOHTO = 7,
3567
+ ORIGINAL_UNOVA = 8,
3568
+ UPDATED_UNOVA = 9,
3569
+ CONQUEST_GALLERY = 11,
3570
+ KALOS_CENTRAL = 12,
3571
+ KALOS_COASTAL = 13,
3572
+ KALOS_MONTAIN = 14,
3573
+ UPDATED_HOENN = 15,
3574
+ ORIGINAL_ALOLA = 16,
3575
+ ORIGINAL_MELEMELE = 17,
3576
+ ORIGINAL_AKALA = 18,
3577
+ ORIGINAL_ULAULA = 19,
3578
+ ORIGINAL_PONI = 20,
3579
+ UPDATED_ALOLA = 21,
3580
+ UPDATED_MELEMELE = 22,
3581
+ UPDATED_AKALA = 23,
3582
+ UPDATED_ULAULA = 24,
3583
+ UPDATED_PONI = 25,
3584
+ UPDATED_KANTO = 26,
3585
+ GALAR = 27,
3586
+ ISLE_OF_ARMOR = 28,
3587
+ CROWN_TUNDRA = 29
3588
+ }
3589
+ declare enum Versions {
3590
+ RED = 1,
3591
+ BLUE = 2,
3592
+ YELLOW = 3,
3593
+ GOLD = 4,
3594
+ SILVER = 5,
3595
+ CRYSTAL = 6,
3596
+ RUBY = 7,
3597
+ SAPPHIRE = 8,
3598
+ EMERALD = 9,
3599
+ FIRERED = 10,
3600
+ LEAFGREEN = 11,
3601
+ DIAMOND = 12,
3602
+ PEARL = 13,
3603
+ PLATINUM = 14,
3604
+ HEARTGOLD = 15,
3605
+ SOULSILVER = 16,
3606
+ BLACK = 17,
3607
+ WHITE = 18,
3608
+ COLOSSEUM = 19,
3609
+ XD = 20,
3610
+ BLACK_2 = 21,
3611
+ WHITE_2 = 22,
3612
+ X = 23,
3613
+ Y = 24,
3614
+ OMEGA_RUBY = 25,
3615
+ ALPHA_SAPPHIRE = 26,
3616
+ SUN = 27,
3617
+ MOON = 28,
3618
+ ULTRA_SUN = 29,
3619
+ ULTRA_MOON = 30,
3620
+ LETS_GO_PIKACHU = 31,
3621
+ LETS_GO_EEVEE = 32,
3622
+ SWORD = 33,
3623
+ SHIELD = 34,
3624
+ THE_ISLE_OF_ARMOR = 35,
3625
+ THE_CROWN_TUNDRA = 36,
3626
+ BRILLIANT_DIAMOND = 37,
3627
+ SHINING_PEARL = 38,
3628
+ LEGENDS_ARCEUS = 39
3629
+ }
3630
+ declare enum VersionGroups {
3631
+ RED_BLUE = 1,
3632
+ YELLOW = 2,
3633
+ GOLD_SILVER = 3,
3634
+ CRYSTAL = 4,
3635
+ RUBY_SAPPHIRE = 5,
3636
+ EMERALD = 6,
3637
+ FIRERED_LEAFGREEN = 7,
3638
+ DIAMOND_PEARL = 8,
3639
+ PLATINUM = 9,
3640
+ HEARTGOLD_SOULSILVER = 10,
3641
+ BLACK_WHITE = 11,
3642
+ COLOSSEUM = 12,
3643
+ XD = 13,
3644
+ BLACK_2_WHITE_2 = 14,
3645
+ X_Y = 15,
3646
+ OMEGA_RUBY_ALPHA_SAPPHIRE = 16,
3647
+ SUN_MOON = 17,
3648
+ ULTRA_SUN_ULTRA_MOON = 18,
3649
+ LETS_GO = 19,
3650
+ SWORD_SHIELD = 20,
3651
+ THE_ISLE_OF_ARMOR = 21,
3652
+ THE_CROWN_TUNDRA = 22,
3653
+ BRILLIANT_DIAMOND_AND_SHINING_PEARL = 23,
3654
+ LEGENDS_ARCEUS = 24
3655
+ }
3656
+
3657
+ declare enum Regions {
3658
+ KANTO = 1,
3659
+ JOHTO = 2,
3660
+ HOENN = 3,
3661
+ SINNOH = 4,
3662
+ UNOVA = 5,
3663
+ KALOS = 6,
3664
+ ALOLA = 7,
3665
+ GALAR = 8,
3666
+ HISUI = 9
3667
+ }
3668
+ declare enum PalParkAreas {
3669
+ FOREST = 1,
3670
+ FIELD = 2,
3671
+ MOUNTAIN = 3,
3672
+ POND = 4,
3673
+ SEA = 5
3674
+ }
3675
+
3676
+ declare enum MoveAilmtents {
3677
+ UNKNOWN = -1,
3678
+ NONE = 0,
3679
+ PARALYSIS = 1,
3680
+ SLEEP = 2,
3681
+ FREEZE = 3,
3682
+ BURN = 4,
3683
+ POISON = 5,
3684
+ CONFUSION = 6,
3685
+ INFATUATION = 7,
3686
+ TRAP = 8,
3687
+ NIGHTMARE = 9,
3688
+ TORMENT = 12,
3689
+ DISABLE = 13,
3690
+ YAWN = 14,
3691
+ HEAL_BLOCK = 15,
3692
+ NO_TYPE_IMMUNITY = 17,
3693
+ LEECH_SEED = 18,
3694
+ EMBARGO = 19,
3695
+ PERISH_SONG = 20,
3696
+ INGRAIN = 21,
3697
+ SILENCE = 24,
3698
+ TAR_SHOT = 42
3699
+ }
3700
+ declare enum MoveBattleStyles {
3701
+ ATTACK = 1,
3702
+ DEFENSE = 2,
3703
+ SUPPORT = 3
3704
+ }
3705
+ declare enum MoveCategories {
3706
+ DAMAGE = 0,
3707
+ AILMENT = 1,
3708
+ NET_GOOD_STATS = 2,
3709
+ HEAL = 3,
3710
+ DAMAGE_AILMENT = 4,
3711
+ SWAGGER = 5,
3712
+ DAMAGE_LOWER = 6,
3713
+ DAMAGE_RAISE = 7,
3714
+ DAMAGE_HEAL = 8,
3715
+ OHKO = 9,
3716
+ WHOLE_FIELD_EFFECT = 10,
3717
+ FIELD_EFFECT = 11,
3718
+ FORCE_SWITCH = 12,
3719
+ UNIQUE = 13
3720
+ }
3721
+ declare enum MoveDamageClasses {
3722
+ STATUS = 1,
3723
+ PHYSICAL = 2,
3724
+ SPECIAL = 3
3725
+ }
3726
+ declare enum MoveLearnMethods {
3727
+ LEVEL_UP = 1,
3728
+ EGG = 2,
3729
+ TUTOR = 3,
3730
+ MACHINE = 4,
3731
+ STADIUM_SURFING_PIKACHU = 5,
3732
+ LIGHT_BALL_EGG = 6,
3733
+ COLOSSEUM_PURIFICATION = 7,
3734
+ XD_SHADOW = 8,
3735
+ XD_PURIFICATION = 9,
3736
+ FORM_CHANGE = 10
3737
+ }
3738
+ declare enum MoveTargets {
3739
+ SPECIFIC_MOVE = 1,
3740
+ SELECTED_POKEMON_ME_FIRST = 2,
3741
+ ALLY = 3,
3742
+ USERS_FIELD = 4,
3743
+ USER_OR_ALLY = 5,
3744
+ OPPONENTS_FIELD = 6,
3745
+ USER = 7,
3746
+ RANDOM_OPPONENT = 8,
3747
+ ALL_OTHER_POKEMON = 9,
3748
+ SELECTED_POKEMON = 10,
3749
+ ALL_OPPONENTS = 11,
3750
+ ENTIRE_FIELD = 12,
3751
+ USER_AND_ALIES = 13,
3752
+ ALL_POKEMON = 14,
3753
+ ALL_ALLIES = 15
3754
+ }
3755
+
3756
+ declare enum EggGroups {
3757
+ MONSTER = 1,
3758
+ WATER1 = 2,
3759
+ BUG = 3,
3760
+ FLYING = 4,
3761
+ GROUND = 5,
3762
+ FAIRY = 6,
3763
+ PLANT = 7,
3764
+ HUMANSHAPE = 8,
3765
+ WATER3 = 9,
3766
+ MINERAL = 10,
3767
+ INDETERMINATE = 11,
3768
+ WATER2 = 12,
3769
+ DITTO = 13,
3770
+ DRAGON = 14,
3771
+ NO_EGGS = 15
3772
+ }
3773
+ declare enum Genders {
3774
+ FEMALE = 1,
3775
+ MALE = 2,
3776
+ GENDERLESS = 3
3777
+ }
3778
+ declare enum GrowthRates {
3779
+ SLOW = 1,
3780
+ MEDIUM = 2,
3781
+ FAST = 3,
3782
+ MEDIUM_SLOW = 4,
3783
+ SLOW_THEN_VERY_FAST = 5,
3784
+ FAST_THEN_VERY_SLOW = 6
3785
+ }
3786
+ declare enum Natures {
3787
+ HARDY = 1,
3788
+ BOLD = 2,
3789
+ MODEST = 3,
3790
+ CALM = 4,
3791
+ TIMID = 5,
3792
+ LONELY = 6,
3793
+ DOCILE = 7,
3794
+ MILD = 8,
3795
+ GENTLE = 9,
3796
+ HASTY = 10,
3797
+ ADAMANT = 11,
3798
+ IMPISH = 12,
3799
+ BASHFUL = 13,
3800
+ CAREFUL = 14,
3801
+ RASH = 15,
3802
+ JOLLY = 16,
3803
+ NAUGHTY = 17,
3804
+ LAX = 18,
3805
+ QUIRKY = 19,
3806
+ NAIVE = 20,
3807
+ BRAVE = 21,
3808
+ RELAXED = 22,
3809
+ QUIET = 23,
3810
+ SASSY = 24,
3811
+ SERIOUS = 25
3812
+ }
3813
+ declare enum PokeathlonStats {
3814
+ SPEED = 1,
3815
+ POWER = 2,
3816
+ SKILL = 3,
3817
+ STAMINA = 4,
3818
+ JUMP = 5
3819
+ }
3820
+ declare enum PokemonColors {
3821
+ BLACK = 1,
3822
+ BLUE = 2,
3823
+ BROWN = 3,
3824
+ GRAY = 4,
3825
+ GREEN = 5,
3826
+ PINK = 6,
3827
+ PURPLE = 7,
3828
+ RED = 8,
3829
+ WHITE = 9,
3830
+ YELLOW = 10
3831
+ }
3832
+ declare enum PokemonHabitats {
3833
+ CAVE = 1,
3834
+ FOREST = 2,
3835
+ GRASSLAND = 3,
3836
+ MONTAIN = 4,
3837
+ RARE = 5,
3838
+ ROUGH_TERRAIN = 6,
3839
+ SEA = 7,
3840
+ URBAN = 8,
3841
+ WATERS_EDGE = 9
3842
+ }
3843
+ declare enum PokemonShapes {
3844
+ BALL = 1,
3845
+ SQUIGGLE = 2,
3846
+ FISH = 3,
3847
+ ARMS = 4,
3848
+ BLOB = 5,
3849
+ UPRIGHT = 6,
3850
+ LEGS = 7,
3851
+ QUADRUPED = 8,
3852
+ WINGS = 9,
3853
+ TENTACLES = 10,
3854
+ HEADS = 11,
3855
+ HUMANOID = 12,
3856
+ BUG_WINGS = 13,
3857
+ ARMOR = 14
3858
+ }
3859
+ declare enum Stats {
3860
+ HP = 1,
3861
+ ATTACK = 2,
3862
+ DEFENSE = 3,
3863
+ SPECIAL_ATTACK = 4,
3864
+ SPECIAL_DEFENSE = 5,
3865
+ SPEED = 6,
3866
+ ACCURACY = 7,
3867
+ EVASION = 8
3868
+ }
3869
+ declare enum Types {
3870
+ NORMAL = 1,
3871
+ FIGHTING = 2,
3872
+ FLYING = 3,
3873
+ POISON = 4,
3874
+ GROUND = 5,
3875
+ ROCK = 6,
3876
+ BUG = 7,
3877
+ GHOST = 8,
3878
+ STEEL = 9,
3879
+ FIRE = 10,
3880
+ WATER = 11,
3881
+ GRASS = 12,
3882
+ ELECTRIC = 13,
3883
+ PSYCHIC = 14,
3884
+ ICE = 15,
3885
+ DRAGON = 16,
3886
+ DARK = 17,
3887
+ FAIRY = 18,
3888
+ UNKNOWN = 10001,
3889
+ SHADOW = 10002
3890
+ }
3891
+
3892
+ declare enum Languages {
3893
+ JA_HRKT = 1,
3894
+ ROOMAJI = 2,
3895
+ KO = 3,
3896
+ ZH_HANT = 4,
3897
+ FR = 5,
3898
+ DE = 6,
3899
+ ES = 7,
3900
+ IT = 8,
3901
+ EN = 9,
3902
+ CS = 10,
3903
+ JA = 11,
3904
+ ZH_HANS = 12,
3905
+ PT_BR = 13
3906
+ }
3907
+
3908
+ declare enum ItemAttributes {
3909
+ COUNTABLE = 1,
3910
+ CONSUMABLE = 2,
3911
+ USABLE_OVERWORLD = 3,
3912
+ USABLE_IN_BATTLE = 4,
3913
+ HOLDABLE = 5,
3914
+ HOLDABLE_PASSIVE = 6,
3915
+ HOLDABLE_ACTIVE = 7,
3916
+ UNDERGROUND = 8
3917
+ }
3918
+ declare enum ItemCategories {
3919
+ STAT_BOOSTS = 1,
3920
+ EFFORT_DROP = 2,
3921
+ MEDICINE = 3,
3922
+ OTHER = 4,
3923
+ IN_A_PINCH = 5,
3924
+ PICKY_HEALING = 6,
3925
+ TYPE_PROTECTION = 7,
3926
+ BAKING_ONLY = 8,
3927
+ COLLECTIBLES = 9,
3928
+ EVOLUTION = 10,
3929
+ SPELUNKING = 11,
3930
+ HELD_ITEMS = 12,
3931
+ CHOICE = 13,
3932
+ EFFORT_TRAINING = 14,
3933
+ BAD_HELD_ITEMS = 15,
3934
+ TRAINING = 16,
3935
+ PLATES = 17,
3936
+ SPECIES_SPECIFIC = 18,
3937
+ TYPE_ENHANCEMENT = 19,
3938
+ EVENT_ITEMS = 20,
3939
+ GAMEPLAY = 21,
3940
+ PLOT_ADVANCEMENT = 22,
3941
+ UNUSED = 23,
3942
+ LOOT = 24,
3943
+ ALL_MAIL = 25,
3944
+ VITAMINS = 26,
3945
+ HEALING = 27,
3946
+ PP_RECOVERY = 28,
3947
+ REVIVAL = 29,
3948
+ STATUS_CURES = 30,
3949
+ MULCH = 32,
3950
+ SPECIAL_BALLS = 33,
3951
+ STANDARD_BALLS = 34,
3952
+ DEX_COMPLETION = 35,
3953
+ SCARVES = 36,
3954
+ ALL_MACHINES = 37,
3955
+ FLUTES = 38,
3956
+ APRICORN_BALLS = 39,
3957
+ APRICORN_BOX = 40,
3958
+ DATA_CARDS = 41,
3959
+ JEWELS = 42,
3960
+ MIRACLE_SHOOTER = 43,
3961
+ MEGA_STONES = 44,
3962
+ MEMORIES = 45,
3963
+ Z_CRYSTALS = 46,
3964
+ SPECIES_CANDIES = 47,
3965
+ CATCHING_BONUS = 48,
3966
+ DYNAMAX_CRISTALS = 49,
3967
+ NATURE_MINTS = 50,
3968
+ CURRY_INGREDIENTS = 51
3969
+ }
3970
+ declare enum ItemFlingEffects {
3971
+ BADLY_POISON = 1,
3972
+ BURN = 2,
3973
+ BERRY_EFFECT = 3,
3974
+ HERB_EFFECT = 4,
3975
+ PARALYZE = 5,
3976
+ POISON = 6,
3977
+ FLINCH = 7
3978
+ }
3979
+ declare enum ItemPockets {
3980
+ MISC = 1,
3981
+ MEDICINE = 2,
3982
+ POKEBALLS = 3,
3983
+ MACHINES = 4,
3984
+ BERRIES = 5,
3985
+ MAIL = 6,
3986
+ BATTLE = 7,
3987
+ KEY = 8
3988
+ }
3989
+
3990
+ type index_BaseURL = BaseURL;
3991
+ declare const index_BaseURL: typeof BaseURL;
3992
+ type index_Berries = Berries;
3993
+ declare const index_Berries: typeof Berries;
3994
+ type index_BerryFirmnesses = BerryFirmnesses;
3995
+ declare const index_BerryFirmnesses: typeof BerryFirmnesses;
3996
+ type index_BerryFlavors = BerryFlavors;
3997
+ declare const index_BerryFlavors: typeof BerryFlavors;
3998
+ type index_ContestTypes = ContestTypes;
3999
+ declare const index_ContestTypes: typeof ContestTypes;
4000
+ type index_EggGroups = EggGroups;
4001
+ declare const index_EggGroups: typeof EggGroups;
4002
+ type index_EncounterConditionValues = EncounterConditionValues;
4003
+ declare const index_EncounterConditionValues: typeof EncounterConditionValues;
4004
+ type index_EncounterConditions = EncounterConditions;
4005
+ declare const index_EncounterConditions: typeof EncounterConditions;
4006
+ type index_EncounterMethods = EncounterMethods;
4007
+ declare const index_EncounterMethods: typeof EncounterMethods;
4008
+ type index_Endpoints = Endpoints;
4009
+ declare const index_Endpoints: typeof Endpoints;
4010
+ type index_EvolutionTriggers = EvolutionTriggers;
4011
+ declare const index_EvolutionTriggers: typeof EvolutionTriggers;
4012
+ type index_Genders = Genders;
4013
+ declare const index_Genders: typeof Genders;
4014
+ type index_Generations = Generations;
4015
+ declare const index_Generations: typeof Generations;
4016
+ type index_GrowthRates = GrowthRates;
4017
+ declare const index_GrowthRates: typeof GrowthRates;
4018
+ type index_ItemAttributes = ItemAttributes;
4019
+ declare const index_ItemAttributes: typeof ItemAttributes;
4020
+ type index_ItemCategories = ItemCategories;
4021
+ declare const index_ItemCategories: typeof ItemCategories;
4022
+ type index_ItemFlingEffects = ItemFlingEffects;
4023
+ declare const index_ItemFlingEffects: typeof ItemFlingEffects;
4024
+ type index_ItemPockets = ItemPockets;
4025
+ declare const index_ItemPockets: typeof ItemPockets;
4026
+ type index_Languages = Languages;
4027
+ declare const index_Languages: typeof Languages;
4028
+ type index_MoveAilmtents = MoveAilmtents;
4029
+ declare const index_MoveAilmtents: typeof MoveAilmtents;
4030
+ type index_MoveBattleStyles = MoveBattleStyles;
4031
+ declare const index_MoveBattleStyles: typeof MoveBattleStyles;
4032
+ type index_MoveCategories = MoveCategories;
4033
+ declare const index_MoveCategories: typeof MoveCategories;
4034
+ type index_MoveDamageClasses = MoveDamageClasses;
4035
+ declare const index_MoveDamageClasses: typeof MoveDamageClasses;
4036
+ type index_MoveLearnMethods = MoveLearnMethods;
4037
+ declare const index_MoveLearnMethods: typeof MoveLearnMethods;
4038
+ type index_MoveTargets = MoveTargets;
4039
+ declare const index_MoveTargets: typeof MoveTargets;
4040
+ type index_Natures = Natures;
4041
+ declare const index_Natures: typeof Natures;
4042
+ type index_PalParkAreas = PalParkAreas;
4043
+ declare const index_PalParkAreas: typeof PalParkAreas;
4044
+ type index_PokeathlonStats = PokeathlonStats;
4045
+ declare const index_PokeathlonStats: typeof PokeathlonStats;
4046
+ type index_Pokedexes = Pokedexes;
4047
+ declare const index_Pokedexes: typeof Pokedexes;
4048
+ type index_PokemonColors = PokemonColors;
4049
+ declare const index_PokemonColors: typeof PokemonColors;
4050
+ type index_PokemonHabitats = PokemonHabitats;
4051
+ declare const index_PokemonHabitats: typeof PokemonHabitats;
4052
+ type index_PokemonShapes = PokemonShapes;
4053
+ declare const index_PokemonShapes: typeof PokemonShapes;
4054
+ type index_Regions = Regions;
4055
+ declare const index_Regions: typeof Regions;
4056
+ type index_Stats = Stats;
4057
+ declare const index_Stats: typeof Stats;
4058
+ type index_Types = Types;
4059
+ declare const index_Types: typeof Types;
4060
+ type index_VersionGroups = VersionGroups;
4061
+ declare const index_VersionGroups: typeof VersionGroups;
4062
+ type index_Versions = Versions;
4063
+ declare const index_Versions: typeof Versions;
4064
+ declare namespace index {
4065
+ export {
4066
+ index_BaseURL as BaseURL,
4067
+ index_Berries as Berries,
4068
+ index_BerryFirmnesses as BerryFirmnesses,
4069
+ index_BerryFlavors as BerryFlavors,
4070
+ index_ContestTypes as ContestTypes,
4071
+ index_EggGroups as EggGroups,
4072
+ index_EncounterConditionValues as EncounterConditionValues,
4073
+ index_EncounterConditions as EncounterConditions,
4074
+ index_EncounterMethods as EncounterMethods,
4075
+ index_Endpoints as Endpoints,
4076
+ index_EvolutionTriggers as EvolutionTriggers,
4077
+ index_Genders as Genders,
4078
+ index_Generations as Generations,
4079
+ index_GrowthRates as GrowthRates,
4080
+ index_ItemAttributes as ItemAttributes,
4081
+ index_ItemCategories as ItemCategories,
4082
+ index_ItemFlingEffects as ItemFlingEffects,
4083
+ index_ItemPockets as ItemPockets,
4084
+ index_Languages as Languages,
4085
+ index_MoveAilmtents as MoveAilmtents,
4086
+ index_MoveBattleStyles as MoveBattleStyles,
4087
+ index_MoveCategories as MoveCategories,
4088
+ index_MoveDamageClasses as MoveDamageClasses,
4089
+ index_MoveLearnMethods as MoveLearnMethods,
4090
+ index_MoveTargets as MoveTargets,
4091
+ index_Natures as Natures,
4092
+ index_PalParkAreas as PalParkAreas,
4093
+ index_PokeathlonStats as PokeathlonStats,
4094
+ index_Pokedexes as Pokedexes,
4095
+ index_PokemonColors as PokemonColors,
4096
+ index_PokemonHabitats as PokemonHabitats,
4097
+ index_PokemonShapes as PokemonShapes,
4098
+ index_Regions as Regions,
4099
+ index_Stats as Stats,
4100
+ index_Types as Types,
4101
+ index_VersionGroups as VersionGroups,
4102
+ index_Versions as Versions,
4103
+ };
4104
+ }
4105
+
4106
+ export { APIResource, Ability, AbilityEffectChange, AbilityFlavorText, AbilityPokemon, Animated, AwesomeName, BaseClient, BaseURL, Berries, Berry, BerryClient, BerryFirmness, BerryFirmnesses, BerryFlavor, BerryFlavorMap, BerryFlavors, BlackWhite, ChainLink, Characteristic, ClientArgs, index as Constants, ContestClient, ContestComboDetail, ContestComboSets, ContestEffect, ContestName, ContestType, ContestTypes, Crystal, Description, DiamondPearl, DreamWorld, Effect, EggGroup, EggGroups, Emerald, Encounter, EncounterClient, EncounterCondition, EncounterConditionValue, EncounterConditionValues, EncounterConditions, EncounterMethod, EncounterMethodRate, EncounterMethods, EncounterVersionDetails, Endpoints, EvolutionChain, EvolutionClient, EvolutionDetail, EvolutionTrigger, EvolutionTriggers, FireredLeafgreen, FlavorBerryMap, FlavorText, GameClient, Gender, Genders, Generation, GenerationGameIndex, GenerationIIISprites, GenerationIISprites, GenerationISprites, GenerationIVSprites, GenerationVIIISprites, GenerationVIISprites, GenerationVISprites, GenerationVSprites, GenerationViiIcons, GenerationViiiIcons, Generations, Genus, Gold, GrowthRate, GrowthRateExperienceLevel, GrowthRates, HeartgoldSoulsilver, Home, Item, ItemAttribute, ItemAttributes, ItemCategories, ItemCategory, ItemClient, ItemFlingEffect, ItemFlingEffects, ItemHolderPokemon, ItemHolderPokemonVersionDetail, ItemPocket, ItemPockets, ItemSprites, Language, Languages, Location, LocationArea, LocationAreaEncounter, LocationClient, Machine, MachineClient, MachineVersionDetail, MainClient, Move, MoveAilment, MoveAilmtents, MoveBattleStyle, MoveBattleStylePreference, MoveBattleStyles, MoveCategories, MoveCategory, MoveClient, MoveDamageClass, MoveDamageClasses, MoveFlavorText, MoveLearnMethod, MoveLearnMethods, MoveMetaData, MoveStatAffect, MoveStatAffectSets, MoveStatChange, MoveTarget, MoveTargets, Name, NamedAPIResource, NamedAPIResourceList, Nature, NaturePokeathlonStatAffect, NaturePokeathlonStatAffectSets, NatureStatAffectSets, NatureStatChange, Natures, OmegarubyAlphasapphire, OtherPokemonSprites, PalParkArea, PalParkAreas, PalParkEncounterArea, PalParkEncounterSpecies, PastMoveStatValues, Platinum, PokeathlonStat, PokeathlonStats, Pokedex, Pokedexes, Pokemon, PokemonAbility, PokemonClient, PokemonColor, PokemonColors, PokemonEncounter, PokemonEntry, PokemonForm, PokemonFormSprites, PokemonHabitat, PokemonHabitats, PokemonHeldItem, PokemonHeldItemVersion, PokemonMove, PokemonMoveVersion, PokemonPastType, PokemonShape, PokemonShapes, PokemonSpecies, PokemonSpeciesDexEntry, PokemonSpeciesGender, PokemonSpeciesVariety, PokemonSprites, PokemonStat, PokemonType, RedBlue, Region, Regions, RubySapphire, Stat, Stats, SuperContestEffect, Type, TypePokemon, TypeRelations, Types, UltraSunUltraMoon, UtilityClient, VerboseEffect, Version, VersionEncounterDetail, VersionGameIndex, VersionGroup, VersionGroupFlavorText, VersionGroups, VersionSprites, Versions, XY, Yellow };