@blizzard-api/wow 1.2.3 → 2.0.1

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.
package/dist/index.d.ts CHANGED
@@ -3,16 +3,24 @@ import { ProtectedResource, Resource, BaseSearchParameters, Locales, SearchRespo
3
3
  /**
4
4
  *
5
5
  */
6
- interface Href {
7
- href: string;
6
+ /**
7
+ * A record containing the RGBA values of a color.
8
+ */
9
+ interface Color {
10
+ a: number;
11
+ b: number;
12
+ g: number;
13
+ r: number;
8
14
  }
9
15
  /**
10
- * Base interface for Blizzard API responses.
16
+ * The playable gender names/descriptions in World of Warcraft.
11
17
  */
12
- interface ResponseBase {
13
- _links: {
14
- self: Href;
15
- };
18
+ interface GenderName {
19
+ female: string;
20
+ male: string;
21
+ }
22
+ interface Href {
23
+ href: string;
16
24
  }
17
25
  /**
18
26
  * Base record interface containing key.href property that often appear in Blizzard API responses.
@@ -20,6 +28,14 @@ interface ResponseBase {
20
28
  interface KeyBase {
21
29
  key: Href;
22
30
  }
31
+ /**
32
+ * The media asset associated with a character or entity in World of Warcraft.
33
+ */
34
+ interface MediaAsset$1 {
35
+ file_data_id: number;
36
+ key: string;
37
+ value: string;
38
+ }
23
39
  /**
24
40
  * Base record interface containing name and id properties that often appear together in Blizzard API responses.
25
41
  */
@@ -33,28 +49,12 @@ interface NameId {
33
49
  interface NameIdKey extends KeyBase, NameId {
34
50
  }
35
51
  /**
36
- * A record containing the RGBA values of a color.
37
- */
38
- interface Color {
39
- a: number;
40
- b: number;
41
- g: number;
42
- r: number;
43
- }
44
- /**
45
- * The media asset associated with a character or entity in World of Warcraft.
46
- */
47
- interface MediaAsset$1 {
48
- file_data_id: number;
49
- key: string;
50
- value: string;
51
- }
52
- /**
53
- * The playable gender names/descriptions in World of Warcraft.
52
+ * Base interface for Blizzard API responses.
54
53
  */
55
- interface GenderName {
56
- female: string;
57
- male: string;
54
+ interface ResponseBase {
55
+ _links: {
56
+ self: Href;
57
+ };
58
58
  }
59
59
  /**
60
60
  * The playable genders in World of Warcraft.
@@ -77,6 +77,12 @@ declare const Factions: {
77
77
  readonly ALLIANCE: "ALLIANCE";
78
78
  readonly HORDE: "HORDE";
79
79
  };
80
+ /**
81
+ * The standard structure to represent a World of Warcraft Character.
82
+ */
83
+ interface Character$2 extends NameIdKey {
84
+ realm: Realm$4;
85
+ }
80
86
  /**
81
87
  * The faction associated with a character or entity in World of Warcraft.
82
88
  */
@@ -90,27 +96,53 @@ interface Faction {
90
96
  interface Realm$4 extends NameIdKey {
91
97
  slug: string;
92
98
  }
93
- /**
94
- * The standard structure to represent a World of Warcraft Character.
95
- */
96
- interface Character$2 extends NameIdKey {
97
- realm: Realm$4;
98
- }
99
99
 
100
+ interface AccountCollectionsIndexResponse {
101
+ _links: Links;
102
+ heirlooms: Href;
103
+ mounts: Href;
104
+ pets: Href;
105
+ toys: Href;
106
+ transmogs: Href;
107
+ }
108
+ interface AccountHeirloomsCollectionSummaryResponse {
109
+ _links: Links;
110
+ heirlooms: Array<Heirloom$1>;
111
+ }
112
+ interface AccountMountsCollectionSummaryResponse {
113
+ _links: Links;
114
+ mounts: Array<Mount$1>;
115
+ }
116
+ interface AccountPetsCollectionSummaryResponse {
117
+ _links: Links;
118
+ pets: Array<Pet$1>;
119
+ unlocked_battle_pet_slots: number;
120
+ }
100
121
  interface AccountProfileSummaryResponse {
101
122
  _links: Links;
102
123
  collections: Href;
103
124
  id: number;
104
125
  wow_accounts?: Array<WowAccount>;
105
126
  }
106
- interface Links {
107
- profile: Href;
108
- self: Href;
109
- user: Href;
127
+ interface AccountToysCollectionSummaryResponse {
128
+ _links: Links;
129
+ toys: Array<Toy$1>;
110
130
  }
111
- interface WowAccount {
112
- characters: Array<Character$1>;
131
+ interface AccountTransmogsCollectionSummaryResponse {
132
+ _links: Links;
133
+ appearance_sets: Array<NameIdKey>;
134
+ slots: Array<Slot$1>;
135
+ }
136
+ interface ProtectedCharacterProfileSummaryResponse {
137
+ _links: Links;
138
+ bind_position: Position;
139
+ character: NameIdKey & Realm$4;
113
140
  id: number;
141
+ money: number;
142
+ name: string;
143
+ position: Position;
144
+ protected_stats: ProtectedStats;
145
+ wow_account: number;
114
146
  }
115
147
  interface Character$1 {
116
148
  character: Href;
@@ -124,71 +156,26 @@ interface Character$1 {
124
156
  protected_character: Href;
125
157
  realm: Realm$4;
126
158
  }
127
- interface ProtectedCharacterProfileSummaryResponse {
128
- _links: Links;
129
- bind_position: Position;
130
- character: NameIdKey & Realm$4;
131
- id: number;
132
- money: number;
133
- name: string;
134
- position: Position;
135
- protected_stats: ProtectedStats;
136
- wow_account: number;
137
- }
138
- interface Position {
139
- facing: number;
140
- map: NameId;
141
- x: number;
142
- y: number;
143
- z: number;
144
- zone: NameId;
145
- }
146
- interface ProtectedStats {
147
- level_gold_gained: number;
148
- level_gold_lost: number;
149
- level_item_value_gained: number;
150
- level_number_deaths: number;
151
- total_gold_gained: number;
152
- total_gold_lost: number;
153
- total_item_value_gained: number;
154
- total_number_deaths: number;
155
- }
156
- interface AccountCollectionsIndexResponse {
157
- _links: Links;
158
- heirlooms: Href;
159
- mounts: Href;
160
- pets: Href;
161
- toys: Href;
162
- transmogs: Href;
163
- }
164
- interface AccountHeirloomsCollectionSummaryResponse {
165
- _links: Links;
166
- heirlooms: Array<Heirloom$1>;
167
- }
168
159
  interface Heirloom$1 {
169
160
  heirloom: NameIdKey;
170
161
  upgrade: {
171
162
  level: number;
172
163
  };
173
164
  }
174
- interface AccountMountsCollectionSummaryResponse {
175
- _links: Links;
176
- mounts: Array<Mount$1>;
165
+ interface Links {
166
+ profile: Href;
167
+ self: Href;
168
+ user: Href;
177
169
  }
178
170
  interface Mount$1 {
179
171
  is_favorite?: boolean;
180
172
  mount: NameIdKey;
181
173
  }
182
- interface AccountPetsCollectionSummaryResponse {
183
- _links: Links;
184
- pets: Array<Pet$1>;
185
- unlocked_battle_pet_slots: number;
186
- }
187
174
  interface Pet$1 {
188
175
  active_slot?: number;
189
- creature_display?: {
176
+ creature_display?: KeyBase & {
190
177
  id: number;
191
- } & KeyBase;
178
+ };
192
179
  id: number;
193
180
  is_active?: boolean;
194
181
  is_favorite?: boolean;
@@ -198,54 +185,53 @@ interface Pet$1 {
198
185
  species: NameIdKey;
199
186
  stats: Stats$1;
200
187
  }
188
+ interface Position {
189
+ facing: number;
190
+ map: NameId;
191
+ x: number;
192
+ y: number;
193
+ z: number;
194
+ zone: NameId;
195
+ }
196
+ interface ProtectedStats {
197
+ level_gold_gained: number;
198
+ level_gold_lost: number;
199
+ level_item_value_gained: number;
200
+ level_number_deaths: number;
201
+ total_gold_gained: number;
202
+ total_gold_lost: number;
203
+ total_item_value_gained: number;
204
+ total_number_deaths: number;
205
+ }
201
206
  interface Quality$1 {
202
207
  name: 'Common' | 'Poor' | 'Rare' | 'Uncommon';
203
208
  type: 'COMMON' | 'POOR' | 'RARE' | 'UNCOMMON';
204
209
  }
210
+ interface Slot$1 {
211
+ appearances: Array<KeyBase & {
212
+ id: number;
213
+ }>;
214
+ slot: Slot$1;
215
+ }
216
+ interface Slot$1 {
217
+ name: string;
218
+ type: string;
219
+ }
205
220
  interface Stats$1 {
206
221
  breed_id: number;
207
222
  health: number;
208
223
  power: number;
209
224
  speed: number;
210
225
  }
211
- interface AccountToysCollectionSummaryResponse {
212
- _links: Links;
213
- toys: Array<Toy$1>;
214
- }
215
226
  interface Toy$1 {
216
227
  is_favorite?: boolean;
217
228
  toy: NameIdKey;
218
229
  }
219
- interface AccountTransmogsCollectionSummaryResponse {
220
- _links: Links;
221
- appearance_sets: Array<NameIdKey>;
222
- slots: Array<Slot$1>;
223
- }
224
- interface Slot$1 {
225
- appearances: Array<{
226
- id: number;
227
- } & KeyBase>;
228
- slot: Slot$1;
229
- }
230
- interface Slot$1 {
231
- name: string;
232
- type: string;
230
+ interface WowAccount {
231
+ characters: Array<Character$1>;
232
+ id: number;
233
233
  }
234
234
 
235
- /**
236
- * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
237
- * @param token The OAuth 2.0 access token to use for authentication.
238
- * @returns a profile summary for an account.
239
- */
240
- declare function accountProfileSummary(token: string): ProtectedResource<AccountProfileSummaryResponse>;
241
- /**
242
- * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
243
- * @param realmId The realm ID.
244
- * @param characterId The character ID.
245
- * @param token The OAuth 2.0 access token to use for authentication.
246
- * @returns a protected profile summary for a character.
247
- */
248
- declare function protectedCharacterProfileSummary(realmId: number, characterId: number, token: string): ProtectedResource<ProtectedCharacterProfileSummaryResponse>;
249
235
  /**
250
236
  * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
251
237
  * @param token The OAuth 2.0 access token to use for authentication.
@@ -270,6 +256,12 @@ declare function accountMountsCollectionSummary(token: string): ProtectedResourc
270
256
  * @returns a summary of the battle pets an account has obtained.
271
257
  */
272
258
  declare function accountPetsCollectionSummary(token: string): ProtectedResource<AccountPetsCollectionSummaryResponse>;
259
+ /**
260
+ * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
261
+ * @param token The OAuth 2.0 access token to use for authentication.
262
+ * @returns a profile summary for an account.
263
+ */
264
+ declare function accountProfileSummary(token: string): ProtectedResource<AccountProfileSummaryResponse>;
273
265
  /**
274
266
  * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
275
267
  * @param token The OAuth 2.0 access token to use for authentication.
@@ -282,12 +274,29 @@ declare function accountToysCollectionSummary(token: string): ProtectedResource<
282
274
  * @returns a summary of the transmog unlocks an account has obtained.
283
275
  */
284
276
  declare function accountTransmogsCollectionSummary(token: string): ProtectedResource<AccountTransmogsCollectionSummaryResponse>;
277
+ /**
278
+ * Because this endpoint provides data about the current logged-in user's World of Warcraft account, it requires an access token with the wow.profile scope acquired via the Authorization Code Flow. See {@link https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow}
279
+ * @param realmId The realm ID.
280
+ * @param characterId The character ID.
281
+ * @param token The OAuth 2.0 access token to use for authentication.
282
+ * @returns a protected profile summary for a character.
283
+ */
284
+ declare function protectedCharacterProfileSummary(realmId: number, characterId: number, token: string): ProtectedResource<ProtectedCharacterProfileSummaryResponse>;
285
285
 
286
+ /**
287
+ * Interface for a response from the achievement category index endpoint.
288
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
289
+ */
290
+ interface AchievementCategoryIndexResponse extends ResponseBase {
291
+ categories: Array<NameIdKey>;
292
+ guild_categories: Array<NameIdKey>;
293
+ root_categories: Array<NameIdKey>;
294
+ }
286
295
  /**
287
296
  * Interface for a response from the achievement category endpoint.
288
297
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
289
298
  */
290
- interface AchievementCategoryResponse extends ResponseBase, NameId {
299
+ interface AchievementCategoryResponse extends NameId, ResponseBase {
291
300
  achievements: Array<NameIdKey>;
292
301
  aggregates_by_faction: {
293
302
  alliance: {
@@ -304,19 +313,25 @@ interface AchievementCategoryResponse extends ResponseBase, NameId {
304
313
  parent_category: NameIdKey;
305
314
  }
306
315
  /**
307
- * Interface for a response from the achievement category index endpoint.
316
+ * Interface for a response from the achievement index endpoint.
308
317
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
309
318
  */
310
- interface AchievementCategoryIndexResponse extends ResponseBase {
311
- categories: Array<NameIdKey>;
312
- guild_categories: Array<NameIdKey>;
313
- root_categories: Array<NameIdKey>;
314
- }
319
+ interface AchievementIndexResponse extends ResponseBase {
320
+ achievements: Array<NameIdKey>;
321
+ }
322
+ /**
323
+ * Interface for a response from the achievement media endpoint.
324
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
325
+ */
326
+ interface AchievementMediaResponse extends ResponseBase {
327
+ assets: Array<AchievementMediaItem>;
328
+ id: number;
329
+ }
315
330
  /**
316
331
  * Interface for a response from the achievement endpoint.
317
332
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
318
333
  */
319
- interface AchievementResponse extends ResponseBase, NameId {
334
+ interface AchievementResponse extends NameId, ResponseBase {
320
335
  category: NameIdKey;
321
336
  criteria: {
322
337
  amount: number;
@@ -329,27 +344,18 @@ interface AchievementResponse extends ResponseBase, NameId {
329
344
  media: KeyBase;
330
345
  points: number;
331
346
  }
332
- /**
333
- * Interface for a response from the achievement index endpoint.
334
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
335
- */
336
- interface AchievementIndexResponse extends ResponseBase {
337
- achievements: Array<NameIdKey>;
338
- }
339
347
  interface AchievementMediaItem {
340
348
  file_data_id: number;
341
349
  key: string;
342
350
  value: string;
343
351
  }
352
+
344
353
  /**
345
- * Interface for a response from the achievement media endpoint.
346
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
354
+ * Get an achievement by ID.
355
+ * @param achievementId The achievement ID.
356
+ * @returns The achievement. See {@link AchievementResponse}.
347
357
  */
348
- interface AchievementMediaResponse extends ResponseBase {
349
- assets: Array<AchievementMediaItem>;
350
- id: number;
351
- }
352
-
358
+ declare function achievement(achievementId: number): Resource<AchievementResponse>;
353
359
  /**
354
360
  * Get an achievement category by ID.
355
361
  * @param achievementCategoryId The achievement category ID.
@@ -361,12 +367,6 @@ declare function achievementCategory(achievementCategoryId: number): Resource<Ac
361
367
  * @returns The achievement category index. See {@link AchievementCategoryIndexResponse}.
362
368
  */
363
369
  declare function achievementCategoryIndex(): Resource<AchievementCategoryIndexResponse>;
364
- /**
365
- * Get an achievement by ID.
366
- * @param achievementId The achievement ID.
367
- * @returns The achievement. See {@link AchievementResponse}.
368
- */
369
- declare function achievement(achievementId: number): Resource<AchievementResponse>;
370
370
  /**
371
371
  * Get an achievement index.
372
372
  * @returns The achievement index. See {@link AchievementIndexResponse}.
@@ -379,22 +379,12 @@ declare function achievementIndex(): Resource<AchievementIndexResponse>;
379
379
  */
380
380
  declare function achievementMedia(achievementId: number): Resource<AchievementMediaResponse>;
381
381
 
382
- type AuctionHouseTimeLeft = 'LONG' | 'MEDIUM' | 'SHORT' | 'VERY_LONG';
383
- interface AuctionHousePosting {
384
- bid: number;
385
- buyout: number;
386
- id: number;
387
- item: {
388
- bonus_lists: Array<number>;
389
- context: number;
390
- id: number;
391
- modifiers: Array<{
392
- type: number;
393
- value: number;
394
- }>;
395
- };
396
- quantity: number;
397
- time_left: AuctionHouseTimeLeft;
382
+ /**
383
+ * Interface for a response from the auction house commodities endpoint.
384
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
385
+ */
386
+ interface AuctionHouseCommoditiesResponse extends ResponseBase {
387
+ auctions: Array<AuctionHouseCommodity>;
398
388
  }
399
389
  /**
400
390
  * Interface for a response from the auction house endpoint.
@@ -418,13 +408,23 @@ interface AuctionHouseCommodity {
418
408
  time_left: AuctionHouseTimeLeft;
419
409
  unit_price: number;
420
410
  }
421
- /**
422
- * Interface for a response from the auction house commodities endpoint.
423
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
424
- */
425
- interface AuctionHouseCommoditiesResponse extends ResponseBase {
426
- auctions: Array<AuctionHouseCommodity>;
411
+ interface AuctionHousePosting {
412
+ bid: number;
413
+ buyout: number;
414
+ id: number;
415
+ item: {
416
+ bonus_lists: Array<number>;
417
+ context: number;
418
+ id: number;
419
+ modifiers: Array<{
420
+ type: number;
421
+ value: number;
422
+ }>;
423
+ };
424
+ quantity: number;
425
+ time_left: AuctionHouseTimeLeft;
427
426
  }
427
+ type AuctionHouseTimeLeft = 'LONG' | 'MEDIUM' | 'SHORT' | 'VERY_LONG';
428
428
 
429
429
  /**
430
430
  * Get auction house data for a connected realm.
@@ -446,30 +446,21 @@ interface AzeriteEssenceIndexResponse extends ResponseBase {
446
446
  azerite_essences: Array<NameIdKey>;
447
447
  }
448
448
  /**
449
- * Interface for a response from the azerite essence endpoint.
449
+ * Interface for a response from the azerite essence media endpoint.
450
450
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
451
451
  */
452
- interface AzeriteEssenceResponse extends ResponseBase, NameId {
453
- allowed_specializations: Array<NameIdKey>;
454
- media: Media$f;
455
- powers: Array<Power>;
456
- }
457
- interface Media$f extends KeyBase {
458
- id: number;
459
- }
460
- interface Power {
452
+ interface AzeriteEssenceMediaResponse extends ResponseBase {
453
+ assets: Array<MediaAsset$1>;
461
454
  id: number;
462
- main_power_spell: NameIdKey;
463
- passive_power_spell: NameIdKey;
464
- rank: number;
465
455
  }
466
456
  /**
467
- * Interface for a response from the azerite essence media endpoint.
457
+ * Interface for a response from the azerite essence endpoint.
468
458
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
469
459
  */
470
- interface AzeriteEssenceMediaResponse extends ResponseBase {
471
- assets: Array<MediaAsset$1>;
472
- id: number;
460
+ interface AzeriteEssenceResponse extends NameId, ResponseBase {
461
+ allowed_specializations: Array<NameIdKey>;
462
+ media: Media$f;
463
+ powers: Array<Power>;
473
464
  }
474
465
  /**
475
466
  * Interface for search parameters for azerite essences.
@@ -490,6 +481,15 @@ interface AzeriteEssenceSearchResponseItem extends KeyBase {
490
481
  name: Record<Locales, string>;
491
482
  };
492
483
  }
484
+ interface Media$f extends KeyBase {
485
+ id: number;
486
+ }
487
+ interface Power {
488
+ id: number;
489
+ main_power_spell: NameIdKey;
490
+ passive_power_spell: NameIdKey;
491
+ rank: number;
492
+ }
493
493
 
494
494
  /**
495
495
  * Get an azerite essence by ID.
@@ -524,49 +524,49 @@ interface CharacterAchievementsSummaryResponse extends ResponseBase {
524
524
  total_points: number;
525
525
  total_quantity: number;
526
526
  }
527
+ interface CharacterAchievementStatisticsResponse extends ResponseBase {
528
+ categories: Array<Category$2>;
529
+ character: Character$2;
530
+ }
527
531
  interface Achievement$1 {
528
532
  achievement: NameIdKey;
529
533
  completed_timestamp?: number;
530
534
  criteria?: Criteria$1;
531
535
  id: number;
532
536
  }
533
- interface Criteria$1 {
534
- amount?: number;
535
- child_criteria?: Array<Criteria$1>;
537
+ interface Category$2 {
536
538
  id: number;
537
- is_completed: boolean;
539
+ name: string;
540
+ statistics: Array<Statistic>;
541
+ sub_categories: Array<SubCategory>;
538
542
  }
539
543
  interface CategoryProgress$1 {
540
544
  category: NameIdKey;
541
545
  points: number;
542
546
  quantity: number;
543
547
  }
548
+ interface Criteria$1 {
549
+ amount?: number;
550
+ child_criteria?: Array<Criteria$1>;
551
+ id: number;
552
+ is_completed: boolean;
553
+ }
544
554
  interface RecentEvent$1 {
545
555
  achievement: NameIdKey;
546
556
  timestamp: number;
547
557
  }
548
- interface CharacterAchievementStatisticsResponse extends ResponseBase {
549
- categories: Array<Category$2>;
550
- character: Character$2;
551
- }
552
- interface Category$2 {
558
+ interface Statistic {
559
+ description?: string;
553
560
  id: number;
561
+ last_updated_timestamp: number;
554
562
  name: string;
555
- statistics: Array<Statistic>;
556
- sub_categories: Array<SubCategory>;
563
+ quantity: number;
557
564
  }
558
565
  interface SubCategory {
559
566
  id: number;
560
567
  name: string;
561
568
  statistics: Array<Statistic>;
562
569
  }
563
- interface Statistic {
564
- description?: string;
565
- id: number;
566
- last_updated_timestamp: number;
567
- name: string;
568
- quantity: number;
569
- }
570
570
 
571
571
  /**
572
572
  * @param realmSlug The slug of the realm.
@@ -592,15 +592,22 @@ interface CharacterAppearanceResponse extends ResponseBase {
592
592
  playable_class: NameIdKey;
593
593
  playable_race: NameIdKey;
594
594
  }
595
- interface Customization {
596
- choice: Choice;
597
- option: NameId;
595
+ interface BorderEmblem {
596
+ color: RGBWithId;
597
+ id: number;
598
+ media: KeyBase & {
599
+ id: number;
600
+ };
598
601
  }
599
602
  interface Choice {
600
603
  display_order: number;
601
604
  id: number;
602
605
  name?: string;
603
606
  }
607
+ interface Customization {
608
+ choice: Choice;
609
+ option: NameId;
610
+ }
604
611
  interface GuildCrest {
605
612
  background: {
606
613
  color: RGBWithId;
@@ -608,17 +615,6 @@ interface GuildCrest {
608
615
  border: BorderEmblem;
609
616
  emblem: BorderEmblem;
610
617
  }
611
- interface RGBWithId {
612
- id: number;
613
- rgba: Color;
614
- }
615
- interface BorderEmblem {
616
- color: RGBWithId;
617
- id: number;
618
- media: {
619
- id: number;
620
- } & KeyBase;
621
- }
622
618
  interface Item$2 {
623
619
  enchant: number;
624
620
  id: number;
@@ -630,6 +626,10 @@ interface Item$2 {
630
626
  };
631
627
  subclass: number;
632
628
  }
629
+ interface RGBWithId {
630
+ id: number;
631
+ rgba: Color;
632
+ }
633
633
 
634
634
  /**
635
635
  * @param realmSlug The slug of the realm.
@@ -649,30 +649,37 @@ interface CharacterCollectionsIndexResponse extends ResponseBase {
649
649
  interface CharacterHeirloomsCollectionSummaryResponse extends ResponseBase {
650
650
  heirlooms: Array<Heirloom>;
651
651
  }
652
+ interface CharacterMountsCollectionSummaryResponse extends ResponseBase {
653
+ mounts: Array<Mount>;
654
+ }
655
+ interface CharacterPetsCollectionSummaryResponse extends ResponseBase {
656
+ pets: Array<Pet>;
657
+ unlocked_battle_pet_slots: number;
658
+ }
659
+ interface CharacterToysCollectionSummaryResponse extends ResponseBase {
660
+ toys: Array<Toy>;
661
+ }
662
+ interface CharacterTransmogCollectionSummaryResponse extends ResponseBase {
663
+ appearance_sets: Array<NameIdKey>;
664
+ slots: Array<Slot>;
665
+ }
652
666
  interface Heirloom {
653
667
  heirloom: NameIdKey;
654
668
  upgrade: {
655
669
  level: number;
656
670
  };
657
671
  }
658
- interface CharacterMountsCollectionSummaryResponse extends ResponseBase {
659
- mounts: Array<Mount>;
660
- }
661
672
  interface Mount {
662
673
  is_character_specific?: boolean;
663
674
  is_favorite?: boolean;
664
675
  is_useable: boolean;
665
676
  mount: NameIdKey;
666
677
  }
667
- interface CharacterPetsCollectionSummaryResponse extends ResponseBase {
668
- pets: Array<Pet>;
669
- unlocked_battle_pet_slots: number;
670
- }
671
678
  interface Pet {
672
679
  active_slot?: number;
673
- creature_display?: {
680
+ creature_display?: KeyBase & {
674
681
  id: number;
675
- } & KeyBase;
682
+ };
676
683
  id: number;
677
684
  is_active?: boolean;
678
685
  is_favorite?: boolean;
@@ -686,33 +693,26 @@ interface Quality {
686
693
  name: 'Common' | 'Poor' | 'Rare' | 'Uncommon';
687
694
  type: 'COMMON' | 'POOR' | 'RARE' | 'UNCOMMON';
688
695
  }
696
+ interface Slot {
697
+ appearances: Array<KeyBase & {
698
+ id: number;
699
+ }>;
700
+ slot: Slot;
701
+ }
702
+ interface Slot {
703
+ name: string;
704
+ type: string;
705
+ }
689
706
  interface Stats {
690
707
  breed_id: number;
691
708
  health: number;
692
709
  power: number;
693
710
  speed: number;
694
711
  }
695
- interface CharacterToysCollectionSummaryResponse extends ResponseBase {
696
- toys: Array<Toy>;
697
- }
698
712
  interface Toy {
699
713
  is_favorite?: boolean;
700
714
  toy: NameIdKey;
701
715
  }
702
- interface CharacterTransmogCollectionSummaryResponse extends ResponseBase {
703
- appearance_sets: Array<NameIdKey>;
704
- slots: Array<Slot>;
705
- }
706
- interface Slot {
707
- appearances: Array<{
708
- id: number;
709
- } & KeyBase>;
710
- slot: Slot;
711
- }
712
- interface Slot {
713
- name: string;
714
- type: string;
715
- }
716
716
 
717
717
  /**
718
718
  * @param realmSlug The slug of the realm.
@@ -751,13 +751,31 @@ declare function characterToysCollectionSummary(realmSlug: string, characterName
751
751
  */
752
752
  declare function characterTransmogCollectionSummary(realmSlug: string, characterName: string): Resource<CharacterTransmogCollectionSummaryResponse>;
753
753
 
754
+ interface CharacterDungeonsResponse extends ResponseBase {
755
+ expansions: Array<Expansion<DungeonMode>>;
756
+ }
754
757
  interface CharacterEncountersSummaryResponse extends ResponseBase {
755
758
  character: Character$2;
756
759
  dungeons: Href;
757
760
  raids: Href;
758
761
  }
759
- interface CharacterDungeonsResponse extends ResponseBase {
760
- expansions: Array<Expansion<DungeonMode>>;
762
+ interface CharacterRaidsResponse extends ResponseBase {
763
+ character: Character$2;
764
+ expansions: Array<Expansion<RaidMode>>;
765
+ }
766
+ interface DungeonDifficulties {
767
+ name: 'Heroic' | 'Mythic' | 'Mythic+ Dungeons' | 'Normal';
768
+ type: 'HEROIC' | 'MYTHIC' | 'MYTHIC_KEYSTONE' | 'NORMAL';
769
+ }
770
+ interface DungeonMode {
771
+ difficulty: DungeonDifficulties;
772
+ progress: Progress;
773
+ status: Status;
774
+ }
775
+ interface Encounter {
776
+ completed_count: number;
777
+ encounter: NameIdKey;
778
+ last_kill_timestamp: number;
761
779
  }
762
780
  interface Expansion<T> {
763
781
  expansion: NameIdKey;
@@ -767,8 +785,17 @@ interface Instance<T> {
767
785
  instance: NameIdKey;
768
786
  modes: Array<T>;
769
787
  }
770
- interface DungeonMode {
771
- difficulty: DungeonDifficulties;
788
+ interface Progress {
789
+ completed_count: number;
790
+ encounters: Array<Encounter>;
791
+ total_count: number;
792
+ }
793
+ interface RaidDifficulties {
794
+ name: '10 Player' | '10 Player (Heroic)' | '25 Player' | '25 Player (Heroic)' | 'Heroic' | 'Mythic' | 'Normal' | 'Raid Finder';
795
+ type: 'HEROIC' | 'LEGACY_10_MAN' | 'LEGACY_10_MAN_HEROIC' | 'LEGACY_25_MAN' | 'LEGACY_25_MAN_HEROIC' | 'LFR' | 'MYTHIC' | 'NORMAL';
796
+ }
797
+ interface RaidMode {
798
+ difficulty: RaidDifficulties;
772
799
  progress: Progress;
773
800
  status: Status;
774
801
  }
@@ -776,46 +803,19 @@ interface Status {
776
803
  name: 'Complete' | 'In Progress';
777
804
  type: 'COMPLETE' | 'IN_PROGRESS';
778
805
  }
779
- interface DungeonDifficulties {
780
- name: 'Heroic' | 'Mythic' | 'Mythic+ Dungeons' | 'Normal';
781
- type: 'HEROIC' | 'MYTHIC' | 'MYTHIC_KEYSTONE' | 'NORMAL';
782
- }
783
- interface Progress {
784
- completed_count: number;
785
- encounters: Array<Encounter>;
786
- total_count: number;
787
- }
788
- interface Encounter {
789
- completed_count: number;
790
- encounter: NameIdKey;
791
- last_kill_timestamp: number;
792
- }
793
- interface CharacterRaidsResponse extends ResponseBase {
794
- character: Character$2;
795
- expansions: Array<Expansion<RaidMode>>;
796
- }
797
- interface RaidMode {
798
- difficulty: RaidDifficulties;
799
- progress: Progress;
800
- status: Status;
801
- }
802
- interface RaidDifficulties {
803
- name: '10 Player' | '10 Player (Heroic)' | '25 Player' | '25 Player (Heroic)' | 'Heroic' | 'Mythic' | 'Normal' | 'Raid Finder';
804
- type: 'HEROIC' | 'LEGACY_10_MAN' | 'LEGACY_10_MAN_HEROIC' | 'LEGACY_25_MAN' | 'LEGACY_25_MAN_HEROIC' | 'LFR' | 'MYTHIC' | 'NORMAL';
805
- }
806
806
 
807
807
  /**
808
808
  * @param realmSlug The slug of the realm.
809
809
  * @param characterName The lowercase name of the character.
810
- * @returns a summary of a character's encounters.
810
+ * @returns a summary of a character's completed dungeons.
811
811
  */
812
- declare function characterEncountersSummary(realmSlug: string, characterName: string): Resource<CharacterEncountersSummaryResponse>;
812
+ declare function characterDungeons(realmSlug: string, characterName: string): Resource<CharacterDungeonsResponse>;
813
813
  /**
814
814
  * @param realmSlug The slug of the realm.
815
815
  * @param characterName The lowercase name of the character.
816
- * @returns a summary of a character's completed dungeons.
816
+ * @returns a summary of a character's encounters.
817
817
  */
818
- declare function characterDungeons(realmSlug: string, characterName: string): Resource<CharacterDungeonsResponse>;
818
+ declare function characterEncountersSummary(realmSlug: string, characterName: string): Resource<CharacterEncountersSummaryResponse>;
819
819
  /**
820
820
  * @param realmSlug The slug of the realm.
821
821
  * @param characterName The lowercase name of the character.
@@ -828,19 +828,40 @@ interface CharacterEquipmentSummaryResponse extends ResponseBase {
828
828
  equipped_item_sets: Array<Set>;
829
829
  equipped_items: Array<EquippedItem>;
830
830
  }
831
- interface Set {
831
+ interface Armor$1 {
832
+ display: NameDescription;
833
+ value: number;
834
+ }
835
+ interface Damage$2 {
836
+ damage_class: NameType;
832
837
  display_string: string;
833
- effects: Array<Effect$1>;
834
- item_set: NameIdKey;
835
- items: Array<ItemElement>;
838
+ max_value: number;
839
+ min_value: number;
840
+ }
841
+ interface DisplayStrings {
842
+ copper: string;
843
+ gold: string;
844
+ header: string;
845
+ silver: string;
846
+ }
847
+ interface DisplayStringValue {
848
+ display_string: string;
849
+ value: number;
836
850
  }
837
851
  interface Effect$1 {
838
852
  display_string: string;
839
853
  is_active: boolean;
840
854
  required_count: number;
841
855
  }
842
- interface ItemElement extends NameIdKey {
843
- is_equipped?: boolean;
856
+ interface Enchantment {
857
+ display_string: string;
858
+ enchantment_id: number;
859
+ enchantment_slot: EnchantmentSlot;
860
+ source_item?: NameIdKey;
861
+ }
862
+ interface EnchantmentSlot {
863
+ id: number;
864
+ type: string;
844
865
  }
845
866
  interface EquippedItem {
846
867
  armor?: Armor$1;
@@ -852,16 +873,16 @@ interface EquippedItem {
852
873
  enchantments?: Array<Enchantment>;
853
874
  inventory_type: NameType;
854
875
  is_subclass_hidden?: boolean;
855
- item: {
876
+ item: KeyBase & {
856
877
  id: number;
857
- } & KeyBase;
878
+ };
858
879
  item_class: NameIdKey;
859
880
  item_subclass: NameIdKey;
860
881
  level: DisplayStringValue;
861
882
  limit_category?: string;
862
- media: {
883
+ media: KeyBase & {
863
884
  id: number;
864
- } & KeyBase;
885
+ };
865
886
  modified_appearance_id?: number;
866
887
  modified_crafting_stat?: Array<ModifiedCraftingStat>;
867
888
  name: string;
@@ -879,9 +900,13 @@ interface EquippedItem {
879
900
  unique_equipped?: string;
880
901
  weapon?: Weapon$2;
881
902
  }
882
- interface Armor$1 {
883
- display: NameDescription;
884
- value: number;
903
+ interface ItemElement extends NameIdKey {
904
+ is_equipped?: boolean;
905
+ }
906
+ interface ModifiedCraftingStat {
907
+ id: number;
908
+ name: string;
909
+ type: string;
885
910
  }
886
911
  interface NameDescription {
887
912
  color: Color;
@@ -891,49 +916,30 @@ interface NameType {
891
916
  name: string;
892
917
  type: string;
893
918
  }
894
- interface DisplayStringValue {
895
- display_string: string;
896
- value: number;
897
- }
898
- interface Enchantment {
919
+ interface PlayableClasses {
899
920
  display_string: string;
900
- enchantment_id: number;
901
- enchantment_slot: EnchantmentSlot;
902
- source_item?: NameIdKey;
903
- }
904
- interface EnchantmentSlot {
905
- id: number;
906
- type: string;
907
- }
908
- interface ModifiedCraftingStat {
909
- id: number;
910
- name: string;
911
- type: string;
921
+ links: Array<NameIdKey>;
912
922
  }
913
923
  interface Requirements$3 {
914
924
  level: DisplayStringValue;
915
925
  playable_classes?: PlayableClasses;
916
926
  }
917
- interface PlayableClasses {
918
- display_string: string;
919
- links: Array<NameIdKey>;
920
- }
921
927
  interface SellPrice {
922
928
  display_strings: DisplayStrings;
923
929
  value: number;
924
930
  }
925
- interface DisplayStrings {
926
- copper: string;
927
- gold: string;
928
- header: string;
929
- silver: string;
931
+ interface Set {
932
+ display_string: string;
933
+ effects: Array<Effect$1>;
934
+ item_set: NameIdKey;
935
+ items: Array<ItemElement>;
930
936
  }
931
937
  interface Socket$1 {
932
938
  display_string: string;
933
939
  item: NameIdKey;
934
- media: {
940
+ media: KeyBase & {
935
941
  id: number;
936
- } & KeyBase;
942
+ };
937
943
  socket_type: NameType;
938
944
  }
939
945
  interface Spell$1 {
@@ -957,12 +963,6 @@ interface Weapon$2 {
957
963
  damage: Damage$2;
958
964
  dps: DisplayStringValue;
959
965
  }
960
- interface Damage$2 {
961
- damage_class: NameType;
962
- display_string: string;
963
- max_value: number;
964
- min_value: number;
965
- }
966
966
 
967
967
  /**
968
968
  * @param realmSlug The slug of the realm.
@@ -977,9 +977,9 @@ interface CharacterHunterPetsSummaryResponse extends ResponseBase {
977
977
  }
978
978
  interface HunterPet {
979
979
  creature: NameIdKey;
980
- creature_display: {
980
+ creature_display: KeyBase & {
981
981
  id: number;
982
- } & KeyBase;
982
+ };
983
983
  is_active?: boolean;
984
984
  is_summoned?: boolean;
985
985
  level: number;
@@ -1014,22 +1014,17 @@ declare function characterMediaSummary(realmSlug: string, characterName: string)
1014
1014
  interface CharacterMythicKeystoneProfileIndexResponse extends ResponseBase {
1015
1015
  character: Character$2;
1016
1016
  current_period: CurrentPeriod;
1017
- seasons: Array<{
1017
+ seasons: Array<KeyBase & {
1018
1018
  id: number;
1019
- } & KeyBase>;
1020
- }
1021
- interface CurrentPeriod {
1022
- period: {
1023
- id: number;
1024
- } & KeyBase;
1019
+ }>;
1025
1020
  }
1026
1021
  interface CharacterMythicKeystoneSeasonDetailsResponse extends ResponseBase {
1027
1022
  best_runs: Array<BestRun>;
1028
1023
  character: NameIdKey;
1029
1024
  mythic_rating: MythicRating$1;
1030
- season: {
1025
+ season: KeyBase & {
1031
1026
  id: number;
1032
- } & KeyBase;
1027
+ };
1033
1028
  }
1034
1029
  interface BestRun {
1035
1030
  completed_timestamp: number;
@@ -1041,10 +1036,15 @@ interface BestRun {
1041
1036
  members: Array<Member$2>;
1042
1037
  mythic_rating: MythicRating$1;
1043
1038
  }
1039
+ interface CurrentPeriod {
1040
+ period: KeyBase & {
1041
+ id: number;
1042
+ };
1043
+ }
1044
1044
  interface Member$2 {
1045
- character: {
1045
+ character: NameId & {
1046
1046
  realm: Realm$4;
1047
- } & NameId;
1047
+ };
1048
1048
  equipped_item_level: number;
1049
1049
  race: NameIdKey;
1050
1050
  specialization: NameIdKey;
@@ -1099,14 +1099,18 @@ interface Tier$1 {
1099
1099
  */
1100
1100
  declare function characterProfessionsSummary(realmSlug: string, characterName: string): Resource<CharacterProfessionsSummaryResponse>;
1101
1101
 
1102
+ interface CharacterProfileStatusResponse extends ResponseBase {
1103
+ id: number;
1104
+ is_valid: boolean;
1105
+ }
1102
1106
  interface CharacterProfileSummaryResponse extends ResponseBase {
1103
1107
  achievement_points: number;
1104
1108
  achievements: Href;
1105
1109
  achievements_statistics: Href;
1106
1110
  active_spec: NameIdKey;
1107
- active_title: {
1111
+ active_title: NameIdKey & {
1108
1112
  display_string: string;
1109
- } & NameIdKey;
1113
+ };
1110
1114
  appearance: Href;
1111
1115
  average_item_level: number;
1112
1116
  character_class: NameIdKey;
@@ -1146,17 +1150,7 @@ interface Guild$2 extends NameIdKey {
1146
1150
  faction: Faction;
1147
1151
  realm: Realm$4;
1148
1152
  }
1149
- interface CharacterProfileStatusResponse extends ResponseBase {
1150
- id: number;
1151
- is_valid: boolean;
1152
- }
1153
1153
 
1154
- /**
1155
- * @param realmSlug The slug of the realm.
1156
- * @param characterName The lowercase name of the character.
1157
- * @returns a summary of the character profile for a character.
1158
- */
1159
- declare function characterProfileSummary(realmSlug: string, characterName: string): Resource<CharacterProfileSummaryResponse>;
1160
1154
  /**
1161
1155
  * Returns the status and a unique ID for a character. A client should delete information about a character from their application if any of the following conditions occur:
1162
1156
  * - an HTTP 404 Not Found error is returned
@@ -1175,6 +1169,12 @@ declare function characterProfileSummary(realmSlug: string, characterName: strin
1175
1169
  * @returns the status of the character profile for a character.
1176
1170
  */
1177
1171
  declare function characterProfileStatus(realmSlug: string, characterName: string): Resource<CharacterProfileStatusResponse>;
1172
+ /**
1173
+ * @param realmSlug The slug of the realm.
1174
+ * @param characterName The lowercase name of the character.
1175
+ * @returns a summary of the character profile for a character.
1176
+ */
1177
+ declare function characterProfileSummary(realmSlug: string, characterName: string): Resource<CharacterProfileSummaryResponse>;
1178
1178
 
1179
1179
  interface CharacterPvpSummaryResponse extends ResponseBase {
1180
1180
  character: Character$2;
@@ -1182,15 +1182,15 @@ interface CharacterPvpSummaryResponse extends ResponseBase {
1182
1182
  honorable_kills: number;
1183
1183
  pvp_map_statistics: Array<PvpMapStatistic>;
1184
1184
  }
1185
- interface PvpMapStatistic {
1186
- match_statistics: MatchStatistics;
1187
- world_map: NameId;
1188
- }
1189
1185
  interface MatchStatistics {
1190
1186
  lost: number;
1191
1187
  played: number;
1192
1188
  won: number;
1193
1189
  }
1190
+ interface PvpMapStatistic {
1191
+ match_statistics: MatchStatistics;
1192
+ world_map: NameId;
1193
+ }
1194
1194
 
1195
1195
  /**
1196
1196
  * @param realmSlug The slug of the realm.
@@ -1199,43 +1199,43 @@ interface MatchStatistics {
1199
1199
  */
1200
1200
  declare function characterPvpSummary(realmSlug: string, characterName: string): Resource<CharacterPvpSummaryResponse>;
1201
1201
 
1202
+ interface CharacterCompletedQuestsResponse extends ResponseBase {
1203
+ character: Character$2;
1204
+ quests: Array<NameIdKey>;
1205
+ }
1202
1206
  interface CharacterQuestsResponse extends ResponseBase {
1203
1207
  character: Character$2;
1204
1208
  completed: Href;
1205
1209
  in_progress: Array<NameIdKey>;
1206
1210
  }
1207
- interface CharacterCompletedQuestsResponse extends ResponseBase {
1208
- character: Character$2;
1209
- quests: Array<NameIdKey>;
1210
- }
1211
1211
 
1212
1212
  /**
1213
1213
  * @param realmSlug The slug of the realm.
1214
1214
  * @param characterName The lowercase name of the character.
1215
- * @returns a character's active quests as well as a link to the character's completed quests.
1215
+ * @returns a list of quests that a character has completed.
1216
1216
  */
1217
- declare function characterQuests(realmSlug: string, characterName: string): Resource<CharacterQuestsResponse>;
1217
+ declare function characterCompletedQuests(realmSlug: string, characterName: string): Resource<CharacterCompletedQuestsResponse>;
1218
1218
  /**
1219
1219
  * @param realmSlug The slug of the realm.
1220
1220
  * @param characterName The lowercase name of the character.
1221
- * @returns a list of quests that a character has completed.
1221
+ * @returns a character's active quests as well as a link to the character's completed quests.
1222
1222
  */
1223
- declare function characterCompletedQuests(realmSlug: string, characterName: string): Resource<CharacterCompletedQuestsResponse>;
1223
+ declare function characterQuests(realmSlug: string, characterName: string): Resource<CharacterQuestsResponse>;
1224
1224
 
1225
1225
  interface CharacterReputationsSummaryResponse extends ResponseBase {
1226
1226
  character: Character$2;
1227
1227
  reputations: Array<Reputation$1>;
1228
1228
  }
1229
- interface Reputation$1 {
1230
- faction: NameIdKey;
1231
- paragon?: Paragon;
1232
- standing: Standing;
1233
- }
1234
1229
  interface Paragon {
1235
1230
  max: number;
1236
1231
  raw: number;
1237
1232
  value: number;
1238
1233
  }
1234
+ interface Reputation$1 {
1235
+ faction: NameIdKey;
1236
+ paragon?: Paragon;
1237
+ standing: Standing;
1238
+ }
1239
1239
  interface Standing {
1240
1240
  max: number;
1241
1241
  name: string;
@@ -1257,6 +1257,14 @@ interface CharacterSoulbindsResponse extends ResponseBase {
1257
1257
  renown_level: number;
1258
1258
  soulbinds: Array<Soulbind>;
1259
1259
  }
1260
+ interface ConduitSocket {
1261
+ socket: Socket;
1262
+ type: TypeClass;
1263
+ }
1264
+ interface Socket {
1265
+ conduit: NameIdKey;
1266
+ rank: number;
1267
+ }
1260
1268
  interface Soulbind {
1261
1269
  is_active?: boolean;
1262
1270
  soulbind: NameIdKey;
@@ -1268,14 +1276,6 @@ interface Trait {
1268
1276
  tier: number;
1269
1277
  trait?: NameIdKey;
1270
1278
  }
1271
- interface ConduitSocket {
1272
- socket: Socket;
1273
- type: TypeClass;
1274
- }
1275
- interface Socket {
1276
- conduit: NameIdKey;
1277
- rank: number;
1278
- }
1279
1279
  interface TypeClass {
1280
1280
  name: 'Endurance Conduit Slot' | 'Finesse Conduit Slot' | 'Potency Conduit Slot';
1281
1281
  type: 'ENDURANCE' | 'FINESSE' | 'POTENCY';
@@ -1294,12 +1294,6 @@ interface CharacterSpecializationsSummaryResponse extends ResponseBase {
1294
1294
  character: Character$2;
1295
1295
  specializations: Array<Specialization$1>;
1296
1296
  }
1297
- interface Specialization$1 {
1298
- glyphs?: Array<NameIdKey>;
1299
- loadouts: Array<Loadout>;
1300
- pvp_talent_slots?: Array<PvpTalentSlot>;
1301
- specialization: NameIdKey;
1302
- }
1303
1297
  interface Loadout {
1304
1298
  is_active: boolean;
1305
1299
  selected_class_talent_tree: NameIdKey;
@@ -1308,15 +1302,25 @@ interface Loadout {
1308
1302
  selected_spec_talents?: Array<SelectedTalent>;
1309
1303
  talent_loadout_code: string;
1310
1304
  }
1305
+ interface PvpTalentSlot {
1306
+ selected: Selected;
1307
+ slot_number: number;
1308
+ }
1309
+ interface Selected {
1310
+ spell_tooltip: SpellTooltip$2;
1311
+ talent: NameIdKey;
1312
+ }
1311
1313
  interface SelectedTalent {
1312
1314
  default_points?: number;
1313
1315
  id: number;
1314
1316
  rank: number;
1315
1317
  tooltip: Selected;
1316
1318
  }
1317
- interface Selected {
1318
- spell_tooltip: SpellTooltip$2;
1319
- talent: NameIdKey;
1319
+ interface Specialization$1 {
1320
+ glyphs?: Array<NameIdKey>;
1321
+ loadouts: Array<Loadout>;
1322
+ pvp_talent_slots?: Array<PvpTalentSlot>;
1323
+ specialization: NameIdKey;
1320
1324
  }
1321
1325
  interface SpellTooltip$2 {
1322
1326
  cast_time: '1.5 sec cast' | '2.5 sec cast' | '3 sec cast' | 'Channeled' | 'Instant' | 'Passive';
@@ -1326,10 +1330,6 @@ interface SpellTooltip$2 {
1326
1330
  range?: '8-30 yd range' | '15 yd range' | '30 yd range' | '40 yd range' | '50 yd range' | '55 yd range' | '100 yd range' | 'Melee Range';
1327
1331
  spell: NameIdKey;
1328
1332
  }
1329
- interface PvpTalentSlot {
1330
- selected: Selected;
1331
- slot_number: number;
1332
- }
1333
1333
 
1334
1334
  /**
1335
1335
  * @param realmSlug The slug of the realm.
@@ -1402,9 +1402,9 @@ interface RatingWithValue {
1402
1402
  declare function characterStatisticsSummary(realmSlug: string, characterName: string): Resource<CharacterStatisticsSummaryResponse>;
1403
1403
 
1404
1404
  interface CharacterTitlesSummaryResponse extends ResponseBase {
1405
- active_title: {
1405
+ active_title: NameIdKey & {
1406
1406
  display_string: string;
1407
- } & NameIdKey;
1407
+ };
1408
1408
  character: Character$2;
1409
1409
  titles: Array<NameIdKey>;
1410
1410
  }
@@ -1416,24 +1416,11 @@ interface CharacterTitlesSummaryResponse extends ResponseBase {
1416
1416
  */
1417
1417
  declare function characterTitlesSummary(realmSlug: string, characterName: string): Resource<CharacterTitlesSummaryResponse>;
1418
1418
 
1419
- type WithoutUnderscore<T extends string> = T extends `${infer Prefix}_${infer Suffix}` ? `${Prefix}${Suffix}` : never;
1420
1419
  /**
1421
1420
  * The category of a realm.
1422
1421
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1423
1422
  */
1424
1423
  type RealmCategory = 'Brazil' | 'English' | 'French' | 'German' | 'Italian' | 'Latin America' | 'Oceanic' | 'PS' | 'Russian' | 'Spanish' | 'United States' | '한국';
1425
- /**
1426
- * The timezone of a realm.
1427
- */
1428
- type RealmTimezone = 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/New_York' | 'America/Sao_Paulo' | 'Asia/Seoul' | 'Australia/Melbourne' | 'Europe/Paris';
1429
- /**
1430
- * The type of a realm, capitalized and shortended).
1431
- */
1432
- type RealmTypeCapitalized = 'NORMAL' | 'RP';
1433
- /**
1434
- * The type of a realm, not capitalized or shortened.
1435
- */
1436
- type RealmType = 'Normal' | 'Roleplaying';
1437
1424
  /**
1438
1425
  * The response for a realm index.
1439
1426
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -1445,7 +1432,7 @@ interface RealmIndexResponse extends ResponseBase {
1445
1432
  * The response for a realm.
1446
1433
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1447
1434
  */
1448
- interface RealmResponse extends ResponseBase, NameId {
1435
+ interface RealmResponse extends NameId, ResponseBase {
1449
1436
  category: RealmCategory;
1450
1437
  connected_realm: {
1451
1438
  href: string;
@@ -1492,39 +1479,28 @@ interface RealmSearchResponseItem extends KeyBase {
1492
1479
  };
1493
1480
  };
1494
1481
  }
1495
-
1496
- type RealmPopulation = 'Full' | 'High' | 'Low' | 'Medium' | 'New Players';
1497
- type RealmPopulationCapitalized = 'FULL' | 'HIGH' | 'LOW' | 'MEDIUM' | 'RECOMMENDED';
1498
- type RealmStatus = 'Down' | 'Up';
1499
1482
  /**
1500
- * Connected Realm Index API response.
1501
- * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
1483
+ * The timezone of a realm.
1502
1484
  */
1503
- interface ConnectedRealmIndexResponse extends ResponseBase {
1504
- connected_realms: Array<{
1505
- href: string;
1506
- }>;
1507
- }
1508
- interface Realm$3 {
1509
- category: RealmCategory;
1510
- connected_realm: {
1485
+ type RealmTimezone = 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/New_York' | 'America/Sao_Paulo' | 'Asia/Seoul' | 'Australia/Melbourne' | 'Europe/Paris';
1486
+ /**
1487
+ * The type of a realm, not capitalized or shortened.
1488
+ */
1489
+ type RealmType = 'Normal' | 'Roleplaying';
1490
+ /**
1491
+ * The type of a realm, capitalized and shortended).
1492
+ */
1493
+ type RealmTypeCapitalized = 'NORMAL' | 'RP';
1494
+ type WithoutUnderscore<T extends string> = T extends `${infer Prefix}_${infer Suffix}` ? `${Prefix}${Suffix}` : never;
1495
+
1496
+ /**
1497
+ * Connected Realm Index API response.
1498
+ * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
1499
+ */
1500
+ interface ConnectedRealmIndexResponse extends ResponseBase {
1501
+ connected_realms: Array<{
1511
1502
  href: string;
1512
- };
1513
- id: number;
1514
- is_tournament: boolean;
1515
- locale: WithoutUnderscore<Locales>;
1516
- name: string;
1517
- region: NameIdKey;
1518
- slug: string;
1519
- timezone: RealmTimezone;
1520
- type: {
1521
- name: RealmType;
1522
- type: RealmTypeCapitalized;
1523
- };
1524
- }
1525
- interface RealmLockedStatus {
1526
- is_locked_for_new_characters: boolean;
1527
- is_locked_for_pct: boolean;
1503
+ }>;
1528
1504
  }
1529
1505
  /**
1530
1506
  * Connected Realm API response.
@@ -1559,6 +1535,44 @@ interface ConnectedRealmSearchParameters extends BaseSearchParameters {
1559
1535
  'realms.timezone'?: RealmTimezone;
1560
1536
  'status.type'?: Uppercase<RealmStatus>;
1561
1537
  }
1538
+ /**
1539
+ * Connected Realm Search API response item.
1540
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1541
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
1542
+ */
1543
+ interface ConnectedRealmSearchResponseItem extends KeyBase {
1544
+ data: {
1545
+ has_queue: boolean;
1546
+ id: number;
1547
+ population: SearchRealmPopulation;
1548
+ realms: Array<SearchRealm>;
1549
+ status: SearchRealmStatus;
1550
+ };
1551
+ }
1552
+ interface Realm$3 {
1553
+ category: RealmCategory;
1554
+ connected_realm: {
1555
+ href: string;
1556
+ };
1557
+ id: number;
1558
+ is_tournament: boolean;
1559
+ locale: WithoutUnderscore<Locales>;
1560
+ name: string;
1561
+ region: NameIdKey;
1562
+ slug: string;
1563
+ timezone: RealmTimezone;
1564
+ type: {
1565
+ name: RealmType;
1566
+ type: RealmTypeCapitalized;
1567
+ };
1568
+ }
1569
+ interface RealmLockedStatus {
1570
+ is_locked_for_new_characters: boolean;
1571
+ is_locked_for_pct: boolean;
1572
+ }
1573
+ type RealmPopulation = 'Full' | 'High' | 'Low' | 'Medium' | 'New Players';
1574
+ type RealmPopulationCapitalized = 'FULL' | 'HIGH' | 'LOW' | 'MEDIUM' | 'RECOMMENDED';
1575
+ type RealmStatus = 'Down' | 'Up';
1562
1576
  interface SearchRealm {
1563
1577
  category: Record<Locales, string | undefined>;
1564
1578
  id: number;
@@ -1576,40 +1590,26 @@ interface SearchRealm {
1576
1590
  type: RealmTypeCapitalized;
1577
1591
  };
1578
1592
  }
1579
- interface SearchRealmStatus {
1580
- name: Record<Locales, string>;
1581
- type: Uppercase<RealmStatus>;
1582
- }
1583
1593
  interface SearchRealmPopulation {
1584
1594
  name: Record<Locales, string>;
1585
1595
  type: RealmPopulationCapitalized;
1586
1596
  }
1587
- /**
1588
- * Connected Realm Search API response item.
1589
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1590
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
1591
- */
1592
- interface ConnectedRealmSearchResponseItem extends KeyBase {
1593
- data: {
1594
- has_queue: boolean;
1595
- id: number;
1596
- population: SearchRealmPopulation;
1597
- realms: Array<SearchRealm>;
1598
- status: SearchRealmStatus;
1599
- };
1597
+ interface SearchRealmStatus {
1598
+ name: Record<Locales, string>;
1599
+ type: Uppercase<RealmStatus>;
1600
1600
  }
1601
1601
 
1602
- /**
1603
- * Get a connected realm index.
1604
- * @returns The connected realm index. See {@link ConnectedRealmIndexResponse}.
1605
- */
1606
- declare function connectedRealmIndex(): Resource<ConnectedRealmIndexResponse>;
1607
1602
  /**
1608
1603
  * Get a connected realm by ID.
1609
1604
  * @param connectedRealmId The connected realm ID.
1610
1605
  * @returns The connected realm. See {@link ConnectedRealmResponse}.
1611
1606
  */
1612
1607
  declare function connectedRealm(connectedRealmId: number): Resource<ConnectedRealmResponse>;
1608
+ /**
1609
+ * Get a connected realm index.
1610
+ * @returns The connected realm index. See {@link ConnectedRealmIndexResponse}.
1611
+ */
1612
+ declare function connectedRealmIndex(): Resource<ConnectedRealmIndexResponse>;
1613
1613
  /**
1614
1614
  * Search for connected realms.
1615
1615
  * @param options The search parameters. See {@link ConnectedRealmSearchParameters}.
@@ -1635,23 +1635,6 @@ interface ConduitResponse extends ResponseBase {
1635
1635
  ranks: Array<Rank$1>;
1636
1636
  socket_type: SocketType;
1637
1637
  }
1638
- interface Item$1 extends KeyBase {
1639
- id: number;
1640
- }
1641
- interface Rank$1 {
1642
- id: number;
1643
- spell_tooltip: SpellTooltip$1;
1644
- tier: number;
1645
- }
1646
- interface SpellTooltip$1 {
1647
- cast_time: string;
1648
- description: string;
1649
- spell: Item$1;
1650
- }
1651
- interface SocketType {
1652
- name: string;
1653
- type: string;
1654
- }
1655
1638
  /**
1656
1639
  * Interface for a response from the covenant index endpoint.
1657
1640
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -1660,33 +1643,48 @@ interface CovenantIndexResponse extends ResponseBase {
1660
1643
  covenants: Array<NameIdKey>;
1661
1644
  }
1662
1645
  /**
1663
- * Interface for a response from the covenant endpoint.
1646
+ * Interface for a response from the covenant media endpoint.
1664
1647
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1665
1648
  */
1666
- interface CovenantResponse extends ResponseBase {
1649
+ interface CovenantMediaResponse extends ResponseBase {
1650
+ class_abilities: Array<ClassAbility>;
1667
1651
  description: string;
1668
1652
  id: number;
1653
+ media: Media$e;
1669
1654
  name: string;
1670
1655
  renown_rewards: Array<RenownReward>;
1671
- }
1672
- interface RenownReward {
1673
- level: number;
1674
- reward: NameIdKey;
1656
+ signature_ability: SignatureAbility;
1657
+ soulbinds: Array<NameIdKey>;
1675
1658
  }
1676
1659
  /**
1677
- * Interface for a response from the covenant media endpoint.
1660
+ * Interface for a response from the covenant endpoint.
1678
1661
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1679
1662
  */
1680
- interface CovenantMediaResponse extends ResponseBase {
1681
- class_abilities: Array<ClassAbility>;
1663
+ interface CovenantResponse extends ResponseBase {
1682
1664
  description: string;
1683
1665
  id: number;
1684
- media: Media$e;
1685
1666
  name: string;
1686
1667
  renown_rewards: Array<RenownReward>;
1687
- signature_ability: SignatureAbility;
1668
+ }
1669
+ /**
1670
+ * Interface for a response from the soulbind index endpoint.
1671
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1672
+ */
1673
+ interface SoulbindIndexResponse extends ResponseBase {
1688
1674
  soulbinds: Array<NameIdKey>;
1689
1675
  }
1676
+ /**
1677
+ * Interface for a response from the soulbind endpoint.
1678
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1679
+ */
1680
+ interface SoulbindResponse extends ResponseBase {
1681
+ covenant: NameIdKey;
1682
+ creature: NameIdKey;
1683
+ follower: NameIdKey;
1684
+ id: number;
1685
+ name: string;
1686
+ talent_tree: NameIdKey;
1687
+ }
1690
1688
  interface ClassAbility {
1691
1689
  id: number;
1692
1690
  playable_class: NameIdKey;
@@ -1700,9 +1698,21 @@ interface ClassAbilitySpellTooltip {
1700
1698
  range?: string;
1701
1699
  spell: NameIdKey;
1702
1700
  }
1701
+ interface Item$1 extends KeyBase {
1702
+ id: number;
1703
+ }
1703
1704
  interface Media$e extends KeyBase {
1704
1705
  id: number;
1705
1706
  }
1707
+ interface Rank$1 {
1708
+ id: number;
1709
+ spell_tooltip: SpellTooltip$1;
1710
+ tier: number;
1711
+ }
1712
+ interface RenownReward {
1713
+ level: number;
1714
+ reward: NameIdKey;
1715
+ }
1706
1716
  interface SignatureAbility {
1707
1717
  id: number;
1708
1718
  spell_tooltip: SignatureAbilitySpellTooltip;
@@ -1713,24 +1723,14 @@ interface SignatureAbilitySpellTooltip {
1713
1723
  description: string;
1714
1724
  spell: NameIdKey;
1715
1725
  }
1716
- /**
1717
- * Interface for a response from the soulbind endpoint.
1718
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1719
- */
1720
- interface SoulbindResponse extends ResponseBase {
1721
- covenant: NameIdKey;
1722
- creature: NameIdKey;
1723
- follower: NameIdKey;
1724
- id: number;
1726
+ interface SocketType {
1725
1727
  name: string;
1726
- talent_tree: NameIdKey;
1728
+ type: string;
1727
1729
  }
1728
- /**
1729
- * Interface for a response from the soulbind index endpoint.
1730
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1731
- */
1732
- interface SoulbindIndexResponse extends ResponseBase {
1733
- soulbinds: Array<NameIdKey>;
1730
+ interface SpellTooltip$1 {
1731
+ cast_time: string;
1732
+ description: string;
1733
+ spell: Item$1;
1734
1734
  }
1735
1735
 
1736
1736
  /**
@@ -1773,21 +1773,6 @@ declare function soulbind(soulbindId: number): Resource<SoulbindResponse>;
1773
1773
  */
1774
1774
  declare function soulbindIndex(): Resource<SoulbindIndexResponse>;
1775
1775
 
1776
- /**
1777
- * The response for a creature.
1778
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1779
- */
1780
- interface CreatureResponse extends ResponseBase {
1781
- creature_displays: Array<CreatureDisplay$2>;
1782
- family: NameIdKey;
1783
- id: number;
1784
- is_tameable: boolean;
1785
- name: string;
1786
- type: NameIdKey;
1787
- }
1788
- interface CreatureDisplay$2 extends KeyBase {
1789
- id: number;
1790
- }
1791
1776
  /**
1792
1777
  * The response for creature display media.
1793
1778
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -1796,10 +1781,6 @@ interface CreatureDisplayMediaResponse extends ResponseBase {
1796
1781
  assets: Array<DisplayMediaAsset>;
1797
1782
  id: number;
1798
1783
  }
1799
- interface DisplayMediaAsset {
1800
- key: string;
1801
- value: string;
1802
- }
1803
1784
  /**
1804
1785
  * The response for a creature family index.
1805
1786
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -1807,19 +1788,6 @@ interface DisplayMediaAsset {
1807
1788
  interface CreatureFamilyIndexResponse extends ResponseBase {
1808
1789
  creature_families: Array<NameIdKey>;
1809
1790
  }
1810
- /**
1811
- * The response for a creature family.
1812
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1813
- */
1814
- interface CreatureFamilyResponse extends ResponseBase {
1815
- id: number;
1816
- media: Media$d;
1817
- name: string;
1818
- specialization: NameIdKey;
1819
- }
1820
- interface Media$d extends KeyBase {
1821
- id: number;
1822
- }
1823
1791
  /**
1824
1792
  * The response for creature family media.
1825
1793
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -1829,19 +1797,26 @@ interface CreatureFamilyMediaResponse extends ResponseBase {
1829
1797
  id: number;
1830
1798
  }
1831
1799
  /**
1832
- * The response for a creature type index.
1800
+ * The response for a creature family.
1833
1801
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1834
1802
  */
1835
- interface CreatureTypeIndexResponse extends ResponseBase {
1836
- creature_types: Array<NameIdKey>;
1803
+ interface CreatureFamilyResponse extends ResponseBase {
1804
+ id: number;
1805
+ media: Media$d;
1806
+ name: string;
1807
+ specialization: NameIdKey;
1837
1808
  }
1838
1809
  /**
1839
- * The response for a creature type.
1810
+ * The response for a creature.
1840
1811
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1841
1812
  */
1842
- interface CreatureTypeResponse extends ResponseBase {
1813
+ interface CreatureResponse extends ResponseBase {
1814
+ creature_displays: Array<CreatureDisplay$2>;
1815
+ family: NameIdKey;
1843
1816
  id: number;
1817
+ is_tameable: boolean;
1844
1818
  name: string;
1819
+ type: NameIdKey;
1845
1820
  }
1846
1821
  /**
1847
1822
  * The search parameters for a creature.
@@ -1875,17 +1850,42 @@ interface CreatureSearchResponseItem extends KeyBase {
1875
1850
  };
1876
1851
  };
1877
1852
  }
1878
-
1879
1853
  /**
1880
- * Get a creature by ID.
1881
- * @param creatureId The creature ID.
1882
- * @returns The creature. See {@link CreatureResponse}.
1854
+ * The response for a creature type index.
1855
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1883
1856
  */
1884
- declare function creature(creatureId: number): Resource<CreatureResponse>;
1857
+ interface CreatureTypeIndexResponse extends ResponseBase {
1858
+ creature_types: Array<NameIdKey>;
1859
+ }
1885
1860
  /**
1886
- * Get creature display media by ID.
1887
- * @param creatureDisplayId The creature display ID.
1888
- * @returns The creature display media. See {@link CreatureDisplayMediaResponse}.
1861
+ * The response for a creature type.
1862
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1863
+ */
1864
+ interface CreatureTypeResponse extends ResponseBase {
1865
+ id: number;
1866
+ name: string;
1867
+ }
1868
+ interface CreatureDisplay$2 extends KeyBase {
1869
+ id: number;
1870
+ }
1871
+ interface DisplayMediaAsset {
1872
+ key: string;
1873
+ value: string;
1874
+ }
1875
+ interface Media$d extends KeyBase {
1876
+ id: number;
1877
+ }
1878
+
1879
+ /**
1880
+ * Get a creature by ID.
1881
+ * @param creatureId The creature ID.
1882
+ * @returns The creature. See {@link CreatureResponse}.
1883
+ */
1884
+ declare function creature(creatureId: number): Resource<CreatureResponse>;
1885
+ /**
1886
+ * Get creature display media by ID.
1887
+ * @param creatureDisplayId The creature display ID.
1888
+ * @returns The creature display media. See {@link CreatureDisplayMediaResponse}.
1889
1889
  */
1890
1890
  declare function creatureDisplayMedia(creatureDisplayId: number): Resource<CreatureDisplayMediaResponse>;
1891
1891
  /**
@@ -1905,6 +1905,12 @@ declare function creatureFamilyIndex(): Resource<CreatureFamilyIndexResponse>;
1905
1905
  * @returns The creature family media. See {@link CreatureFamilyMediaResponse}.
1906
1906
  */
1907
1907
  declare function creatureFamilyMedia(creatureFamilyId: number): Resource<CreatureFamilyMediaResponse>;
1908
+ /**
1909
+ * Search for creatures.
1910
+ * @param options The creature search parameters. See {@link CreatureSearchParameters}.
1911
+ * @returns The creature search results. See {@link SearchResponse} & {@link CreatureSearchResponseItem}.
1912
+ */
1913
+ declare function creatureSearch(options: CreatureSearchParameters): Resource<SearchResponse<CreatureSearchResponseItem>, Omit<CreatureSearchParameters, 'locale' | 'name'>>;
1908
1914
  /**
1909
1915
  * Get a creature type by ID.
1910
1916
  * @param creatureTypeId The creature type ID.
@@ -1916,13 +1922,81 @@ declare function creatureType(creatureTypeId: number): Resource<CreatureTypeResp
1916
1922
  * @returns The creature type index. See {@link CreatureTypeIndexResponse}.
1917
1923
  */
1918
1924
  declare function creatureTypeIndex(): Resource<CreatureTypeIndexResponse>;
1925
+
1919
1926
  /**
1920
- * Search for creatures.
1921
- * @param options The creature search parameters. See {@link CreatureSearchParameters}.
1922
- * @returns The creature search results. See {@link SearchResponse} & {@link CreatureSearchResponseItem}.
1927
+ * The response for a guild crest border or emblem.
1928
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1923
1929
  */
1924
- declare function creatureSearch(options: CreatureSearchParameters): Resource<SearchResponse<CreatureSearchResponseItem>, Omit<CreatureSearchParameters, 'locale' | 'name'>>;
1930
+ interface GuildCrestBorderEmblemResponse extends ResponseBase {
1931
+ assets: Array<GuildCrestAsset>;
1932
+ id: number;
1933
+ }
1934
+ /**
1935
+ * The response for the guild crest components index.
1936
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
1937
+ */
1938
+ interface GuildCrestComponentsIndexResponse extends ResponseBase {
1939
+ borders: Array<Border$1>;
1940
+ colors: Colors;
1941
+ emblems: Array<Border$1>;
1942
+ }
1943
+ interface Background {
1944
+ id: number;
1945
+ rgba: RGBA;
1946
+ }
1947
+ interface Border$1 {
1948
+ id: number;
1949
+ media: Media$c;
1950
+ }
1951
+ interface Colors {
1952
+ backgrounds: Array<Background>;
1953
+ borders: Array<Background>;
1954
+ emblems: Array<Background>;
1955
+ }
1956
+ interface GuildCrestAsset {
1957
+ key: string;
1958
+ value: string;
1959
+ }
1960
+ interface Media$c extends KeyBase {
1961
+ id: number;
1962
+ }
1963
+ interface RGBA {
1964
+ a: number;
1965
+ b: number;
1966
+ g: number;
1967
+ r: number;
1968
+ }
1969
+
1970
+ /**
1971
+ * Get a guild crest border by ID.
1972
+ * @param borderId The guild crest border ID.
1973
+ * @returns The guild crest border. See {@link GuildCrestBorderEmblemResponse}.
1974
+ */
1975
+ declare function guildCrestBorder(borderId: number): Resource<GuildCrestBorderEmblemResponse>;
1976
+ /**
1977
+ * Get the guild crest components index.
1978
+ * @returns The guild crest components index. See {@link GuildCrestComponentsIndexResponse}.
1979
+ */
1980
+ declare function guildCrestComponentsIndex(): Resource<GuildCrestComponentsIndexResponse>;
1981
+ /**
1982
+ * Get a guild crest emblem by ID.
1983
+ * @param emblemId The guild crest emblem ID.
1984
+ * @returns The guild crest emblem. See {@link GuildCrestBorderEmblemResponse}.
1985
+ */
1986
+ declare function guildCrestEmblem(emblemId: number): Resource<GuildCrestBorderEmblemResponse>;
1925
1987
 
1988
+ interface GuildAchievementsResponse extends ResponseBase {
1989
+ achievements: Array<Achievement>;
1990
+ category_progress: Array<CategoryProgress>;
1991
+ guild: Guild$1;
1992
+ recent_events: Array<RecentEvent>;
1993
+ total_points: number;
1994
+ total_quantity: number;
1995
+ }
1996
+ interface GuildActivityResponse extends ResponseBase {
1997
+ activities: Array<ActivityElement>;
1998
+ guild: Guild$1;
1999
+ }
1926
2000
  interface GuildResponse extends ResponseBase {
1927
2001
  achievement_points: number;
1928
2002
  achievements: Href;
@@ -1937,27 +2011,15 @@ interface GuildResponse extends ResponseBase {
1937
2011
  realm: Realm$4;
1938
2012
  roster: Href;
1939
2013
  }
1940
- interface Crest {
1941
- background: {
1942
- color: RgbWithId;
1943
- };
1944
- border: Border$1;
1945
- emblem: Border$1;
1946
- }
1947
- interface RgbWithId {
1948
- id: number;
1949
- rgba: Color;
2014
+ interface GuildRosterResponse extends ResponseBase {
2015
+ guild: Guild$1;
2016
+ members: Array<Member$1>;
1950
2017
  }
1951
- interface Border$1 {
1952
- color: RgbWithId;
2018
+ interface Achievement {
2019
+ achievement: NameIdKey;
2020
+ completed_timestamp?: number;
2021
+ criteria?: Criteria;
1953
2022
  id: number;
1954
- media: {
1955
- id: number;
1956
- } & KeyBase;
1957
- }
1958
- interface GuildActivityResponse extends ResponseBase {
1959
- activities: Array<ActivityElement>;
1960
- guild: Guild$1;
1961
2023
  }
1962
2024
  interface ActivityElement {
1963
2025
  activity: {
@@ -1966,27 +2028,28 @@ interface ActivityElement {
1966
2028
  character_achievement: CharacterAchievement;
1967
2029
  timestamp: number;
1968
2030
  }
2031
+ interface Border {
2032
+ color: RgbWithId;
2033
+ id: number;
2034
+ media: KeyBase & {
2035
+ id: number;
2036
+ };
2037
+ }
2038
+ interface CategoryProgress {
2039
+ category: NameIdKey;
2040
+ points: number;
2041
+ quantity: number;
2042
+ }
1969
2043
  interface CharacterAchievement {
1970
2044
  achievement: NameIdKey;
1971
2045
  character: Character$2;
1972
2046
  }
1973
- interface Guild$1 extends NameIdKey {
1974
- faction: Faction;
1975
- realm: Realm$4;
1976
- }
1977
- interface GuildAchievementsResponse extends ResponseBase {
1978
- achievements: Array<Achievement>;
1979
- category_progress: Array<CategoryProgress>;
1980
- guild: Guild$1;
1981
- recent_events: Array<RecentEvent>;
1982
- total_points: number;
1983
- total_quantity: number;
1984
- }
1985
- interface Achievement {
1986
- achievement: NameIdKey;
1987
- completed_timestamp?: number;
1988
- criteria?: Criteria;
1989
- id: number;
2047
+ interface Crest {
2048
+ background: {
2049
+ color: RgbWithId;
2050
+ };
2051
+ border: Border;
2052
+ emblem: Border;
1990
2053
  }
1991
2054
  interface Criteria {
1992
2055
  amount?: number;
@@ -1994,31 +2057,30 @@ interface Criteria {
1994
2057
  id: number;
1995
2058
  is_completed: boolean;
1996
2059
  }
1997
- interface CategoryProgress {
1998
- category: NameIdKey;
1999
- points: number;
2000
- quantity: number;
2060
+ interface Guild$1 extends NameIdKey {
2061
+ faction: Faction;
2062
+ realm: Realm$4;
2063
+ }
2064
+ interface Member$1 {
2065
+ character: RosterMemberCharacter;
2066
+ rank: number;
2067
+ }
2068
+ interface Playable extends KeyBase {
2069
+ id: number;
2001
2070
  }
2002
2071
  interface RecentEvent {
2003
2072
  achievement: NameIdKey;
2004
2073
  timestamp: number;
2005
2074
  }
2006
- interface GuildRosterResponse extends ResponseBase {
2007
- guild: Guild$1;
2008
- members: Array<Member$1>;
2009
- }
2010
- interface Member$1 {
2011
- character: RosterMemberCharacter;
2012
- rank: number;
2075
+ interface RgbWithId {
2076
+ id: number;
2077
+ rgba: Color;
2013
2078
  }
2014
2079
  interface RosterMemberCharacter extends Character$2 {
2015
2080
  level: number;
2016
2081
  playable_class: Playable;
2017
2082
  playable_race: Playable;
2018
2083
  }
2019
- interface Playable extends KeyBase {
2020
- id: number;
2021
- }
2022
2084
 
2023
2085
  /**
2024
2086
  * @param realmSlug The slug of the realm.
@@ -2029,15 +2091,15 @@ declare function guild(realmSlug: string, nameSlug: string): Resource<GuildRespo
2029
2091
  /**
2030
2092
  * @param realmSlug The slug of the realm.
2031
2093
  * @param nameSlug The lowercase name of the guild.
2032
- * @returns a single guild's activity by name and realm.
2094
+ * @returns a single guild's achievements by name and realm.
2033
2095
  */
2034
- declare function guildActivity(realmSlug: string, nameSlug: string): Resource<GuildActivityResponse>;
2096
+ declare function guildAchievements(realmSlug: string, nameSlug: string): Resource<GuildAchievementsResponse>;
2035
2097
  /**
2036
2098
  * @param realmSlug The slug of the realm.
2037
2099
  * @param nameSlug The lowercase name of the guild.
2038
- * @returns a single guild's achievements by name and realm.
2100
+ * @returns a single guild's activity by name and realm.
2039
2101
  */
2040
- declare function guildAchievements(realmSlug: string, nameSlug: string): Resource<GuildAchievementsResponse>;
2102
+ declare function guildActivity(realmSlug: string, nameSlug: string): Resource<GuildActivityResponse>;
2041
2103
  /**
2042
2104
  * @param realmSlug The slug of the realm.
2043
2105
  * @param nameSlug The lowercase name of the guild.
@@ -2046,93 +2108,57 @@ declare function guildAchievements(realmSlug: string, nameSlug: string): Resourc
2046
2108
  declare function guildRoster(realmSlug: string, nameSlug: string): Resource<GuildRosterResponse>;
2047
2109
 
2048
2110
  /**
2049
- * The response for the guild crest components index.
2111
+ * The response for the heirloom index.
2050
2112
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2051
2113
  */
2052
- interface GuildCrestComponentsIndexResponse extends ResponseBase {
2053
- borders: Array<Border>;
2054
- colors: Colors;
2055
- emblems: Array<Border>;
2056
- }
2057
- interface Border {
2058
- id: number;
2059
- media: Media$c;
2114
+ interface HeirloomIndexResponse extends ResponseBase {
2115
+ heirlooms: Array<NameIdKey>;
2060
2116
  }
2061
- interface Media$c extends KeyBase {
2117
+ /**
2118
+ * The response for a heirloom.
2119
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2120
+ */
2121
+ interface HeirloomResponse extends ResponseBase {
2062
2122
  id: number;
2123
+ item: NameIdKey;
2124
+ media: Media$b;
2125
+ source: Source$3;
2126
+ source_description: string;
2127
+ upgrades: Array<Upgrade>;
2063
2128
  }
2064
- interface Colors {
2065
- backgrounds: Array<Background>;
2066
- borders: Array<Background>;
2067
- emblems: Array<Background>;
2129
+ interface AttackSpeedClass {
2130
+ display_string: string;
2131
+ value: number;
2068
2132
  }
2069
- interface Background {
2070
- id: number;
2071
- rgba: RGBA;
2133
+ interface Damage$1 {
2134
+ damage_class: Source$3;
2135
+ display_string: string;
2136
+ max_value: number;
2137
+ min_value: number;
2072
2138
  }
2073
- interface RGBA {
2074
- a: number;
2075
- b: number;
2076
- g: number;
2077
- r: number;
2139
+ interface Display$1 {
2140
+ color: Color;
2141
+ display_string: string;
2078
2142
  }
2079
- /**
2080
- * The response for a guild crest border or emblem.
2081
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2082
- */
2083
- interface GuildCrestBorderEmblemResponse extends ResponseBase {
2084
- assets: Array<GuildCrestAsset>;
2143
+ interface Media$b extends KeyBase {
2085
2144
  id: number;
2086
2145
  }
2087
- interface GuildCrestAsset {
2088
- key: string;
2089
- value: string;
2146
+ interface Requirements$2 {
2147
+ level: RequirementsLevel;
2090
2148
  }
2091
-
2092
- /**
2093
- * Get the guild crest components index.
2094
- * @returns The guild crest components index. See {@link GuildCrestComponentsIndexResponse}.
2095
- */
2096
- declare function guildCrestComponentsIndex(): Resource<GuildCrestComponentsIndexResponse>;
2097
- /**
2098
- * Get a guild crest border by ID.
2099
- * @param borderId The guild crest border ID.
2100
- * @returns The guild crest border. See {@link GuildCrestBorderEmblemResponse}.
2101
- */
2102
- declare function guildCrestBorder(borderId: number): Resource<GuildCrestBorderEmblemResponse>;
2103
- /**
2104
- * Get a guild crest emblem by ID.
2105
- * @param emblemId The guild crest emblem ID.
2106
- * @returns The guild crest emblem. See {@link GuildCrestBorderEmblemResponse}.
2107
- */
2108
- declare function guildCrestEmblem(emblemId: number): Resource<GuildCrestBorderEmblemResponse>;
2109
-
2110
- /**
2111
- * The response for the heirloom index.
2112
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2113
- */
2114
- interface HeirloomIndexResponse extends ResponseBase {
2115
- heirlooms: Array<NameIdKey>;
2116
- }
2117
- /**
2118
- * The response for a heirloom.
2119
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2120
- */
2121
- interface HeirloomResponse extends ResponseBase {
2122
- id: number;
2123
- item: NameIdKey;
2124
- media: Media$b;
2125
- source: Source$3;
2126
- source_description: string;
2127
- upgrades: Array<Upgrade>;
2128
- }
2129
- interface Media$b extends KeyBase {
2130
- id: number;
2149
+ interface RequirementsLevel {
2150
+ display_string: string;
2131
2151
  }
2132
2152
  interface Source$3 {
2133
2153
  name: string;
2134
2154
  type: string;
2135
2155
  }
2156
+ interface Stat$1 {
2157
+ display: Display$1;
2158
+ is_equip_bonus?: boolean;
2159
+ type: Source$3;
2160
+ value: number;
2161
+ }
2136
2162
  interface Upgrade {
2137
2163
  item: UpgradeItem;
2138
2164
  level: number;
@@ -2154,26 +2180,6 @@ interface UpgradeItem {
2154
2180
  upgrades: Upgrades;
2155
2181
  weapon: Weapon$1;
2156
2182
  }
2157
- interface AttackSpeedClass {
2158
- display_string: string;
2159
- value: number;
2160
- }
2161
- interface Requirements$2 {
2162
- level: RequirementsLevel;
2163
- }
2164
- interface RequirementsLevel {
2165
- display_string: string;
2166
- }
2167
- interface Stat$1 {
2168
- display: Display$1;
2169
- is_equip_bonus?: boolean;
2170
- type: Source$3;
2171
- value: number;
2172
- }
2173
- interface Display$1 {
2174
- color: Color;
2175
- display_string: string;
2176
- }
2177
2183
  interface Upgrades {
2178
2184
  display_string: string;
2179
2185
  max_value: number;
@@ -2184,12 +2190,6 @@ interface Weapon$1 {
2184
2190
  damage: Damage$1;
2185
2191
  dps: AttackSpeedClass;
2186
2192
  }
2187
- interface Damage$1 {
2188
- damage_class: Source$3;
2189
- display_string: string;
2190
- max_value: number;
2191
- min_value: number;
2192
- }
2193
2193
 
2194
2194
  /**
2195
2195
  * Get a heirloom by ID.
@@ -2203,21 +2203,35 @@ declare function heirloom(heirloomId: number): Resource<HeirloomResponse>;
2203
2203
  */
2204
2204
  declare function heirloomIndex(): Resource<HeirloomIndexResponse>;
2205
2205
 
2206
- interface ItemQuality {
2207
- name: Record<Locales, string | undefined>;
2208
- type: 'ARTIFACT' | 'COMMON' | 'EPIC' | 'HEIRLOOM' | 'LEGENDARY' | 'POOR' | 'RARE' | 'UNCOMMON';
2206
+ /**
2207
+ * The response for an item class index.
2208
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2209
+ */
2210
+ interface ItemClassIndexResponse extends ResponseBase {
2211
+ item_classes: Array<NameIdKey>;
2209
2212
  }
2210
- interface InventoryType {
2211
- name: Record<Locales, string | undefined>;
2212
- type: 'BACK' | 'BAG' | 'CHEST' | 'FEET' | 'FINGER' | 'HANDS' | 'HEAD' | 'LEGS' | 'NECK' | 'NON_EQUIP' | 'SHIRT' | 'SHOULDER' | 'TABARD' | 'TRINKET' | 'TWOHWEAPON' | 'WAIST' | 'WRIST';
2213
+ /**
2214
+ * The response for an item class.
2215
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2216
+ */
2217
+ interface ItemClassResponse extends ResponseBase {
2218
+ class_id: number;
2219
+ item_subclasses: Array<NameIdKey>;
2220
+ name: string;
2221
+ }
2222
+ /**
2223
+ * The response for an item media.
2224
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2225
+ */
2226
+ interface ItemMediaResponse extends ResponseBase {
2227
+ assets: Array<MediaAsset$1>;
2228
+ id: number;
2213
2229
  }
2214
- type StatTypeCapitalized = 'AGILITY' | 'CRIT_RATING' | 'HASTE_RATING' | 'INTELLECT' | 'MASTERY' | 'STAMINA' | 'STRENGTH' | 'VERSATILITY';
2215
- type StatType = 'Agility' | 'Critical Strike' | 'Haste' | 'Intellect' | 'Mastery' | 'Stamina' | 'Strength' | 'Versatility';
2216
2230
  /**
2217
2231
  * The response for an item.
2218
2232
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2219
2233
  */
2220
- interface ItemResponse extends ResponseBase, NameId {
2234
+ interface ItemResponse extends NameId, ResponseBase {
2221
2235
  description?: string;
2222
2236
  inventory_type: InventoryType;
2223
2237
  is_equippable: boolean;
@@ -2234,6 +2248,108 @@ interface ItemResponse extends ResponseBase, NameId {
2234
2248
  required_level: number;
2235
2249
  sell_price: number;
2236
2250
  }
2251
+ /**
2252
+ * The parameters for an item search.
2253
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2254
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2255
+ */
2256
+ interface ItemSearchParameters extends BaseSearchParameters {
2257
+ locale: Locales;
2258
+ name: string;
2259
+ }
2260
+ /**
2261
+ * The response for an item search.
2262
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2263
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2264
+ */
2265
+ interface ItemSearchResponseItem extends KeyBase {
2266
+ data: {
2267
+ id: number;
2268
+ inventory_type: InventoryType;
2269
+ is_equippable: boolean;
2270
+ is_stackable: boolean;
2271
+ item_class: {
2272
+ id: number;
2273
+ name: Record<Locales, string | undefined>;
2274
+ };
2275
+ item_subclass: {
2276
+ id: number;
2277
+ name: Record<Locales, string | undefined>;
2278
+ };
2279
+ level: number;
2280
+ max_count: number;
2281
+ media: {
2282
+ id: number;
2283
+ };
2284
+ name: Record<Locales, string | undefined>;
2285
+ purchase_price: number;
2286
+ purchase_quantity: number;
2287
+ quality: ItemQuality;
2288
+ required_level: number;
2289
+ sell_price: number;
2290
+ };
2291
+ }
2292
+ /**
2293
+ * The response for an item set index.
2294
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2295
+ */
2296
+ interface ItemSetIndexResponse extends ResponseBase {
2297
+ item_sets: Array<NameIdKey>;
2298
+ }
2299
+ /**
2300
+ * The response for an item set.
2301
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2302
+ */
2303
+ interface ItemSetResponse extends ResponseBase {
2304
+ effects: Array<Effect>;
2305
+ id: number;
2306
+ items: Array<NameIdKey>;
2307
+ name: string;
2308
+ }
2309
+ /**
2310
+ * The response for an item subclass.
2311
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2312
+ */
2313
+ interface ItemSubClassResponse extends ResponseBase {
2314
+ class_id: number;
2315
+ display_name: string;
2316
+ hide_subclass_in_tooltips: boolean;
2317
+ subclass_id: number;
2318
+ verbose_name: string;
2319
+ }
2320
+ interface Armor {
2321
+ display: Display;
2322
+ value: number;
2323
+ }
2324
+ interface Damage {
2325
+ damage_class: {
2326
+ name: string;
2327
+ type: string;
2328
+ };
2329
+ display_string: string;
2330
+ max_value: number;
2331
+ min_value: number;
2332
+ }
2333
+ interface Display {
2334
+ color: Color;
2335
+ display_string: string;
2336
+ }
2337
+ interface Durability {
2338
+ display_string: string;
2339
+ value: number;
2340
+ }
2341
+ interface Effect {
2342
+ display_string: string;
2343
+ required_count: number;
2344
+ }
2345
+ interface InventoryType {
2346
+ name: Record<Locales, string | undefined>;
2347
+ type: 'BACK' | 'BAG' | 'CHEST' | 'FEET' | 'FINGER' | 'HANDS' | 'HEAD' | 'LEGS' | 'NECK' | 'NON_EQUIP' | 'SHIRT' | 'SHOULDER' | 'TABARD' | 'TRINKET' | 'TWOHWEAPON' | 'WAIST' | 'WRIST';
2348
+ }
2349
+ interface ItemQuality {
2350
+ name: Record<Locales, string | undefined>;
2351
+ type: 'ARTIFACT' | 'COMMON' | 'EPIC' | 'HEIRLOOM' | 'LEGENDARY' | 'POOR' | 'RARE' | 'UNCOMMON';
2352
+ }
2237
2353
  interface Media$a extends KeyBase {
2238
2354
  id: number;
2239
2355
  }
@@ -2267,53 +2383,11 @@ interface PreviewItem {
2267
2383
  unique_equipped?: 'Unique';
2268
2384
  weapon?: Weapon;
2269
2385
  }
2270
- interface Armor {
2271
- display: Display;
2272
- value: number;
2273
- }
2274
- interface Durability {
2275
- display_string: string;
2276
- value: number;
2277
- }
2278
- interface Requirements$1 {
2279
- level: Durability;
2280
- }
2281
- interface Spell {
2282
- description: string;
2283
- spell: NameIdKey;
2284
- }
2285
- interface Stat {
2286
- display: Display;
2287
- is_negated?: boolean;
2288
- type: {
2289
- name: StatType;
2290
- type: StatTypeCapitalized;
2291
- };
2292
- value: number;
2293
- }
2294
- interface Display {
2295
- color: Color;
2296
- display_string: string;
2297
- }
2298
- interface Weapon {
2299
- attack_speed: Durability;
2300
- damage: Damage;
2301
- dps: Durability;
2302
- }
2303
- interface Damage {
2304
- damage_class: {
2305
- name: string;
2306
- type: string;
2307
- };
2308
- display_string: string;
2309
- max_value: number;
2310
- min_value: number;
2311
- }
2312
2386
  interface Recipe {
2313
2387
  item: RecipeItem;
2314
- reagents: Array<{
2388
+ reagents: Array<NameIdKey & {
2315
2389
  quantity: number;
2316
- } & NameIdKey>;
2390
+ }>;
2317
2391
  reagents_display_string: string;
2318
2392
  }
2319
2393
  interface RecipeItem {
@@ -2345,102 +2419,28 @@ interface RecipeItemDisplayStrings {
2345
2419
  header: string;
2346
2420
  silver: string;
2347
2421
  }
2348
- /**
2349
- * The response for an item class index.
2350
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2351
- */
2352
- interface ItemClassIndexResponse extends ResponseBase {
2353
- item_classes: Array<NameIdKey>;
2354
- }
2355
- /**
2356
- * The response for an item class.
2357
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2358
- */
2359
- interface ItemClassResponse extends ResponseBase {
2360
- class_id: number;
2361
- item_subclasses: Array<NameIdKey>;
2362
- name: string;
2363
- }
2364
- /**
2365
- * The response for an item media.
2366
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2367
- */
2368
- interface ItemMediaResponse extends ResponseBase {
2369
- assets: Array<MediaAsset$1>;
2370
- id: number;
2371
- }
2372
- /**
2373
- * The response for an item subclass.
2374
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2375
- */
2376
- interface ItemSubClassResponse extends ResponseBase {
2377
- class_id: number;
2378
- display_name: string;
2379
- hide_subclass_in_tooltips: boolean;
2380
- subclass_id: number;
2381
- verbose_name: string;
2382
- }
2383
- /**
2384
- * The response for an item set index.
2385
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2386
- */
2387
- interface ItemSetIndexResponse extends ResponseBase {
2388
- item_sets: Array<NameIdKey>;
2389
- }
2390
- /**
2391
- * The response for an item set.
2392
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2393
- */
2394
- interface ItemSetResponse extends ResponseBase {
2395
- effects: Array<Effect>;
2396
- id: number;
2397
- items: Array<NameIdKey>;
2398
- name: string;
2399
- }
2400
- interface Effect {
2401
- display_string: string;
2402
- required_count: number;
2422
+ interface Requirements$1 {
2423
+ level: Durability;
2403
2424
  }
2404
- /**
2405
- * The parameters for an item search.
2406
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2407
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2408
- */
2409
- interface ItemSearchParameters extends BaseSearchParameters {
2410
- locale: Locales;
2411
- name: string;
2425
+ interface Spell {
2426
+ description: string;
2427
+ spell: NameIdKey;
2412
2428
  }
2413
- /**
2414
- * The response for an item search.
2415
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2416
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2417
- */
2418
- interface ItemSearchResponseItem extends KeyBase {
2419
- data: {
2420
- id: number;
2421
- inventory_type: InventoryType;
2422
- is_equippable: boolean;
2423
- is_stackable: boolean;
2424
- item_class: {
2425
- id: number;
2426
- name: Record<Locales, string | undefined>;
2427
- };
2428
- item_subclass: {
2429
- id: number;
2430
- name: Record<Locales, string | undefined>;
2431
- };
2432
- level: number;
2433
- max_count: number;
2434
- media: {
2435
- id: number;
2436
- };
2437
- name: Record<Locales, string | undefined>;
2438
- purchase_price: number;
2439
- purchase_quantity: number;
2440
- quality: ItemQuality;
2441
- required_level: number;
2442
- sell_price: number;
2429
+ interface Stat {
2430
+ display: Display;
2431
+ is_negated?: boolean;
2432
+ type: {
2433
+ name: StatType;
2434
+ type: StatTypeCapitalized;
2443
2435
  };
2436
+ value: number;
2437
+ }
2438
+ type StatType = 'Agility' | 'Critical Strike' | 'Haste' | 'Intellect' | 'Mastery' | 'Stamina' | 'Strength' | 'Versatility';
2439
+ type StatTypeCapitalized = 'AGILITY' | 'CRIT_RATING' | 'HASTE_RATING' | 'INTELLECT' | 'MASTERY' | 'STAMINA' | 'STRENGTH' | 'VERSATILITY';
2440
+ interface Weapon {
2441
+ attack_speed: Durability;
2442
+ damage: Damage;
2443
+ dps: Durability;
2444
2444
  }
2445
2445
 
2446
2446
  /**
@@ -2455,13 +2455,6 @@ declare function item(itemId: number): Resource<ItemResponse>;
2455
2455
  * @returns The item class. See {@link ItemClassResponse}.
2456
2456
  */
2457
2457
  declare function itemClass(itemClassId: number): Resource<ItemClassResponse>;
2458
- /**
2459
- * Get an item subclass by ID.
2460
- * @param itemClassId The item class ID.
2461
- * @param itemSubclassId The item subclass ID.
2462
- * @returns The item subclass. See {@link ItemSubClassResponse}.
2463
- */
2464
- declare function itemSubClass(itemClassId: number, itemSubclassId: number): Resource<ItemSubClassResponse>;
2465
2458
  /**
2466
2459
  * Get an item class index.
2467
2460
  * @returns The item class index. See {@link ItemClassIndexResponse}.
@@ -2472,7 +2465,13 @@ declare function itemClassIndex(): Resource<ItemClassIndexResponse>;
2472
2465
  * @param itemId The item ID.
2473
2466
  * @returns The item media. See {@link ItemMediaResponse}.
2474
2467
  */
2475
- declare function itemMedia(itemId: number): Resource<ItemMediaResponse>;
2468
+ declare function itemMedia(itemId: number): Resource<ItemMediaResponse>;
2469
+ /**
2470
+ * Search for items.
2471
+ * @param options The search parameters. See {@link ItemSearchParameters}.
2472
+ * @returns The search results. See {@link SearchResponse}.
2473
+ */
2474
+ declare function itemSearch(options: ItemSearchParameters): Resource<SearchResponse<ItemSearchResponseItem>, Omit<ItemSearchParameters, 'locale' | 'name'>>;
2476
2475
  /**
2477
2476
  * Get an item set by ID.
2478
2477
  * @param itemSetId The item set ID.
@@ -2485,16 +2484,13 @@ declare function itemSet(itemSetId: number): Resource<ItemSetResponse>;
2485
2484
  */
2486
2485
  declare function itemSetIndex(): Resource<ItemSetIndexResponse>;
2487
2486
  /**
2488
- * Search for items.
2489
- * @param options The search parameters. See {@link ItemSearchParameters}.
2490
- * @returns The search results. See {@link SearchResponse}.
2487
+ * Get an item subclass by ID.
2488
+ * @param itemClassId The item class ID.
2489
+ * @param itemSubclassId The item subclass ID.
2490
+ * @returns The item subclass. See {@link ItemSubClassResponse}.
2491
2491
  */
2492
- declare function itemSearch(options: ItemSearchParameters): Resource<SearchResponse<ItemSearchResponseItem>, Omit<ItemSearchParameters, 'locale' | 'name'>>;
2492
+ declare function itemSubClass(itemClassId: number, itemSubclassId: number): Resource<ItemSubClassResponse>;
2493
2493
 
2494
- type EncounterCategory = 'DUNGEON' | 'RAID' | 'WORLD_BOSS';
2495
- type EncounterMode = 'HEROIC' | 'LFR' | 'MYTHIC' | 'NORMAL';
2496
- type ModeName = '10 Player' | '10 Player (Heroic)' | '25 Player' | '25 Player (Heroic)' | 'Heroic' | 'Mythic' | 'Mythic+ Dungeons' | 'Normal' | 'Raid Finder';
2497
- type ModeType = 'HEROIC' | 'LEGACY_10_MAN' | 'LEGACY_10_MAN_HEROIC' | 'LEGACY_25_MAN' | 'LEGACY_25_MAN_HEROIC' | 'LFR' | 'MYTHIC' | 'MYTHIC_KEYSTONE' | 'NORMAL';
2498
2494
  /**
2499
2495
  * The response for a journal encounter index.
2500
2496
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -2506,7 +2502,7 @@ interface JournalEncounterIndexResponse extends ResponseBase {
2506
2502
  * The response for a journal encounter.
2507
2503
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2508
2504
  */
2509
- interface JournalEncounterResponse extends ResponseBase, NameId {
2505
+ interface JournalEncounterResponse extends NameId, ResponseBase {
2510
2506
  category: Category$1;
2511
2507
  creatures: Array<Creature>;
2512
2508
  description: string;
@@ -2516,31 +2512,37 @@ interface JournalEncounterResponse extends ResponseBase, NameId {
2516
2512
  modes?: Array<Mode>;
2517
2513
  sections: Array<JournalSection>;
2518
2514
  }
2519
- interface Category$1 {
2520
- type: EncounterCategory;
2521
- }
2522
- interface Creature extends NameId {
2523
- creature_display: CreatureDisplay$1;
2524
- description?: string;
2525
- }
2526
- interface CreatureDisplay$1 extends KeyBase {
2527
- id: number;
2528
- }
2529
- interface Item {
2530
- id: number;
2531
- item: NameIdKey;
2532
- }
2533
- interface Mode {
2534
- name: ModeName;
2535
- type: ModeType;
2515
+ /**
2516
+ * The parameters for a journal encounter search.
2517
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2518
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2519
+ */
2520
+ interface JournalEncounterSearchParameters extends BaseSearchParameters {
2521
+ instanceName: string;
2522
+ locale: Locales;
2536
2523
  }
2537
- interface JournalSection {
2538
- body_text?: string;
2539
- creature_display?: CreatureDisplay$1;
2540
- id: number;
2541
- sections?: Array<JournalSection>;
2542
- spell?: NameIdKey;
2543
- title: string;
2524
+ /**
2525
+ * The response for a journal encounter search.
2526
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2527
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2528
+ */
2529
+ interface JournalEncounterSearchResponseItem extends KeyBase {
2530
+ data: {
2531
+ category: Category$1;
2532
+ creatures: Array<JournalEncounterSearchCreature>;
2533
+ id: number;
2534
+ instance: {
2535
+ id: number;
2536
+ name: Record<Locales, string>;
2537
+ };
2538
+ items: Array<JournalEncounterSearchItem>;
2539
+ modes?: Array<{
2540
+ name: Record<Locales, string>;
2541
+ type: EncounterMode;
2542
+ }>;
2543
+ name: Record<Locales, string>;
2544
+ sections: Array<JournalSection>;
2545
+ };
2544
2546
  }
2545
2547
  /**
2546
2548
  * The response for a journal expansion index.
@@ -2553,7 +2555,7 @@ interface JournalExpansionIndexResponse extends ResponseBase {
2553
2555
  * The response for a journal expansion.
2554
2556
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2555
2557
  */
2556
- interface JournalExpansionResponse extends ResponseBase, NameId {
2558
+ interface JournalExpansionResponse extends NameId, ResponseBase {
2557
2559
  dungeons: Array<NameIdKey>;
2558
2560
  raids: Array<NameIdKey>;
2559
2561
  }
@@ -2564,11 +2566,18 @@ interface JournalExpansionResponse extends ResponseBase, NameId {
2564
2566
  interface JournalInstanceIndexResponse extends ResponseBase {
2565
2567
  instances: Array<NameIdKey>;
2566
2568
  }
2569
+ /**
2570
+ * The response for journal instance media.
2571
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2572
+ */
2573
+ interface JournalInstanceMediaResponse extends ResponseBase {
2574
+ assets: Array<Asset>;
2575
+ }
2567
2576
  /**
2568
2577
  * The response for a journal instance.
2569
2578
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2570
2579
  */
2571
- interface JournalInstanceResponse extends ResponseBase, NameId {
2580
+ interface JournalInstanceResponse extends NameId, ResponseBase {
2572
2581
  area: NameId;
2573
2582
  category: Category$1;
2574
2583
  description: string;
@@ -2581,56 +2590,25 @@ interface JournalInstanceResponse extends ResponseBase, NameId {
2581
2590
  modes: Array<ModeElement>;
2582
2591
  order_index: number;
2583
2592
  }
2584
- interface Media$9 extends KeyBase {
2585
- id: number;
2586
- }
2587
- interface ModeElement {
2588
- is_tracked: boolean;
2589
- mode: Mode;
2590
- players: number;
2591
- }
2592
- /**
2593
- * The response for journal instance media.
2594
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2595
- */
2596
- interface JournalInstanceMediaResponse extends ResponseBase {
2597
- assets: Array<Asset>;
2598
- }
2599
2593
  interface Asset {
2600
2594
  key: string;
2601
2595
  value: string;
2602
2596
  }
2603
- /**
2604
- * The parameters for a journal encounter search.
2605
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2606
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2607
- */
2608
- interface JournalEncounterSearchParameters extends BaseSearchParameters {
2609
- instanceName: string;
2610
- locale: Locales;
2597
+ interface Category$1 {
2598
+ type: EncounterCategory;
2611
2599
  }
2612
- /**
2613
- * The response for a journal encounter search.
2614
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2615
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
2616
- */
2617
- interface JournalEncounterSearchResponseItem extends KeyBase {
2618
- data: {
2619
- category: Category$1;
2620
- creatures: Array<JournalEncounterSearchCreature>;
2621
- id: number;
2622
- instance: {
2623
- id: number;
2624
- name: Record<Locales, string>;
2625
- };
2626
- items: Array<JournalEncounterSearchItem>;
2627
- modes?: Array<{
2628
- name: Record<Locales, string>;
2629
- type: EncounterMode;
2630
- }>;
2631
- name: Record<Locales, string>;
2632
- sections: Array<JournalSection>;
2633
- };
2600
+ interface Creature extends NameId {
2601
+ creature_display: CreatureDisplay$1;
2602
+ description?: string;
2603
+ }
2604
+ interface CreatureDisplay$1 extends KeyBase {
2605
+ id: number;
2606
+ }
2607
+ type EncounterCategory = 'DUNGEON' | 'RAID' | 'WORLD_BOSS';
2608
+ type EncounterMode = 'HEROIC' | 'LFR' | 'MYTHIC' | 'NORMAL';
2609
+ interface Item {
2610
+ id: number;
2611
+ item: NameIdKey;
2634
2612
  }
2635
2613
  interface JournalEncounterSearchCreature {
2636
2614
  creature_display: {
@@ -2646,6 +2624,28 @@ interface JournalEncounterSearchItem {
2646
2624
  name: Record<Locales, string>;
2647
2625
  };
2648
2626
  }
2627
+ interface JournalSection {
2628
+ body_text?: string;
2629
+ creature_display?: CreatureDisplay$1;
2630
+ id: number;
2631
+ sections?: Array<JournalSection>;
2632
+ spell?: NameIdKey;
2633
+ title: string;
2634
+ }
2635
+ interface Media$9 extends KeyBase {
2636
+ id: number;
2637
+ }
2638
+ interface Mode {
2639
+ name: ModeName;
2640
+ type: ModeType;
2641
+ }
2642
+ interface ModeElement {
2643
+ is_tracked: boolean;
2644
+ mode: Mode;
2645
+ players: number;
2646
+ }
2647
+ type ModeName = '10 Player' | '10 Player (Heroic)' | '25 Player' | '25 Player (Heroic)' | 'Heroic' | 'Mythic' | 'Mythic+ Dungeons' | 'Normal' | 'Raid Finder';
2648
+ type ModeType = 'HEROIC' | 'LEGACY_10_MAN' | 'LEGACY_10_MAN_HEROIC' | 'LEGACY_25_MAN' | 'LEGACY_25_MAN_HEROIC' | 'LFR' | 'MYTHIC' | 'MYTHIC_KEYSTONE' | 'NORMAL';
2649
2649
 
2650
2650
  /**
2651
2651
  * Get a journal encounter by ID.
@@ -2726,17 +2726,17 @@ interface MediaAsset {
2726
2726
  declare function mediaSearch(options: MediaSearchParameters): Resource<SearchResponse<MediaSearchResponseItem>, MediaSearchParameters>;
2727
2727
 
2728
2728
  /**
2729
- * The response for a modified crafting category.
2729
+ * The response for a modified crafting category index.
2730
2730
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2731
2731
  */
2732
- interface ModifiedCraftingCategoryResponse extends ResponseBase, NameId {
2732
+ interface ModifiedCraftingCategoryIndexResponse extends ResponseBase {
2733
+ categories: Array<NameIdKey>;
2733
2734
  }
2734
2735
  /**
2735
- * The response for a modified crafting category index.
2736
+ * The response for a modified crafting category.
2736
2737
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2737
2738
  */
2738
- interface ModifiedCraftingCategoryIndexResponse extends ResponseBase {
2739
- categories: Array<NameIdKey>;
2739
+ interface ModifiedCraftingCategoryResponse extends NameId, ResponseBase {
2740
2740
  }
2741
2741
  /**
2742
2742
  * The response for a modified crafting index.
@@ -2757,10 +2757,6 @@ interface ModifiedCraftingIndexResponse extends ResponseBase {
2757
2757
  interface ModifiedCraftingReagentSlotTypeIndexResponse extends ResponseBase {
2758
2758
  slot_types: Array<SlotType>;
2759
2759
  }
2760
- interface SlotType extends KeyBase {
2761
- id: number;
2762
- name?: string;
2763
- }
2764
2760
  /**
2765
2761
  * The response for a modified crafting reagent slot type.
2766
2762
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -2770,6 +2766,10 @@ interface ModifiedCraftingReagentSlotTypeResponse extends ResponseBase {
2770
2766
  description: string;
2771
2767
  id: number;
2772
2768
  }
2769
+ interface SlotType extends KeyBase {
2770
+ id: number;
2771
+ name?: string;
2772
+ }
2773
2773
 
2774
2774
  /**
2775
2775
  * Get a modified crafting category by ID.
@@ -2818,13 +2818,6 @@ interface MountResponse extends ResponseBase {
2818
2818
  should_exclude_if_uncollected: boolean;
2819
2819
  source: Source$2;
2820
2820
  }
2821
- interface CreatureDisplay extends KeyBase {
2822
- id: number;
2823
- }
2824
- interface Source$2 {
2825
- name: string;
2826
- type: string;
2827
- }
2828
2821
  /**
2829
2822
  * The search parameters for mounts.
2830
2823
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -2856,6 +2849,13 @@ interface MountSearchResponseItem extends KeyBase {
2856
2849
  };
2857
2850
  };
2858
2851
  }
2852
+ interface CreatureDisplay extends KeyBase {
2853
+ id: number;
2854
+ }
2855
+ interface Source$2 {
2856
+ name: string;
2857
+ type: string;
2858
+ }
2859
2859
 
2860
2860
  /**
2861
2861
  * Get a mount by ID.
@@ -2883,22 +2883,22 @@ interface MythicKeystoneAffixIndexResponse extends ResponseBase {
2883
2883
  affixes: Array<NameIdKey>;
2884
2884
  }
2885
2885
  /**
2886
- * The response for a Mythic Keystone affix.
2886
+ * The response for a Mythic Keystone affix media.
2887
2887
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2888
2888
  */
2889
- interface MythicKeystoneAffixResponse extends ResponseBase, NameId {
2890
- description: string;
2891
- media: Media$8;
2892
- }
2893
- interface Media$8 extends KeyBase {
2889
+ interface MythicKeystoneAffixMediaResponse extends ResponseBase {
2890
+ assets: Array<MediaAsset$1>;
2894
2891
  id: number;
2895
2892
  }
2896
2893
  /**
2897
- * The response for a Mythic Keystone affix media.
2894
+ * The response for a Mythic Keystone affix.
2898
2895
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2899
2896
  */
2900
- interface MythicKeystoneAffixMediaResponse extends ResponseBase {
2901
- assets: Array<MediaAsset$1>;
2897
+ interface MythicKeystoneAffixResponse extends NameId, ResponseBase {
2898
+ description: string;
2899
+ media: Media$8;
2900
+ }
2901
+ interface Media$8 extends KeyBase {
2902
2902
  id: number;
2903
2903
  }
2904
2904
 
@@ -2929,20 +2929,13 @@ interface MythicKeystoneDungeonIndexResponse extends ResponseBase {
2929
2929
  * The response for a Mythic Keystone dungeon.
2930
2930
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
2931
2931
  */
2932
- interface MythicKeystoneDungeonResponse extends ResponseBase, NameId {
2932
+ interface MythicKeystoneDungeonResponse extends NameId, ResponseBase {
2933
2933
  dungeon: NameIdKey;
2934
2934
  is_tracked: boolean;
2935
2935
  keystone_upgrades: Array<KeystoneUpgrade>;
2936
2936
  map: NameId;
2937
2937
  zone: Zone;
2938
2938
  }
2939
- interface KeystoneUpgrade {
2940
- qualifying_duration: number;
2941
- upgrade_level: number;
2942
- }
2943
- interface Zone {
2944
- slug: string;
2945
- }
2946
2939
  /**
2947
2940
  * The response for a Mythic Keystone index.
2948
2941
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -2963,9 +2956,6 @@ interface MythicKeystonePeriodIndexResponse extends ResponseBase {
2963
2956
  current_period: Period;
2964
2957
  periods: Array<Period>;
2965
2958
  }
2966
- interface Period extends KeyBase {
2967
- id: number;
2968
- }
2969
2959
  /**
2970
2960
  * The response for a Mythic Keystone period.
2971
2961
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -2994,6 +2984,16 @@ interface MythicKeystoneSeasonResponse extends ResponseBase {
2994
2984
  season_name: null | string;
2995
2985
  start_timestamp: number;
2996
2986
  }
2987
+ interface KeystoneUpgrade {
2988
+ qualifying_duration: number;
2989
+ upgrade_level: number;
2990
+ }
2991
+ interface Period extends KeyBase {
2992
+ id: number;
2993
+ }
2994
+ interface Zone {
2995
+ slug: string;
2996
+ }
2997
2997
 
2998
2998
  /**
2999
2999
  * Get a Mythic Keystone dungeon by ID.
@@ -3077,6 +3077,10 @@ interface Member {
3077
3077
  profile: Profile;
3078
3078
  specialization: Specialization;
3079
3079
  }
3080
+ interface MythicRating {
3081
+ color: Color;
3082
+ rating: number;
3083
+ }
3080
3084
  interface Profile extends NameId {
3081
3085
  realm: Realm$2;
3082
3086
  }
@@ -3087,10 +3091,6 @@ interface Realm$2 extends KeyBase {
3087
3091
  interface Specialization extends KeyBase {
3088
3092
  id: number;
3089
3093
  }
3090
- interface MythicRating {
3091
- color: Color;
3092
- rating: number;
3093
- }
3094
3094
 
3095
3095
  /**
3096
3096
  * Get a Mythic Keystone leaderboard by connected realm ID, dungeon ID, and period.
@@ -3129,14 +3129,14 @@ interface Entry$1 {
3129
3129
  interface Guild extends NameId {
3130
3130
  realm: Realm$1;
3131
3131
  }
3132
- interface Realm$1 {
3132
+ interface JournalInstance extends KeyBase {
3133
3133
  id: number;
3134
3134
  name: null;
3135
- slug: string;
3136
3135
  }
3137
- interface JournalInstance extends KeyBase {
3136
+ interface Realm$1 {
3138
3137
  id: number;
3139
3138
  name: null;
3139
+ slug: string;
3140
3140
  }
3141
3141
 
3142
3142
  /**
@@ -3147,6 +3147,30 @@ interface JournalInstance extends KeyBase {
3147
3147
  */
3148
3148
  declare function mythicRaidLeaderboard(raid: string, faction: Lowercase<keyof typeof Factions>): Resource<MythicRaidLeaderboardResponse>;
3149
3149
 
3150
+ /**
3151
+ * The response for a pet ability index.
3152
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3153
+ */
3154
+ interface PetAbilityIndexResponse extends ResponseBase {
3155
+ abilities: Array<NameIdKey>;
3156
+ }
3157
+ /**
3158
+ * The response for a pet ability media.
3159
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3160
+ */
3161
+ interface PetAbilityMediaResponse extends ResponseBase {
3162
+ assets: Array<MediaAsset$1>;
3163
+ id: number;
3164
+ }
3165
+ /**
3166
+ * The response for a pet ability.
3167
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3168
+ */
3169
+ interface PetAbilityResponse extends NameId, ResponseBase {
3170
+ battle_pet_type: BattlePetType;
3171
+ media: Media$7;
3172
+ rounds: number;
3173
+ }
3150
3174
  /**
3151
3175
  * The response for a pet index.
3152
3176
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3154,11 +3178,19 @@ declare function mythicRaidLeaderboard(raid: string, faction: Lowercase<keyof ty
3154
3178
  interface PetIndexResponse extends ResponseBase {
3155
3179
  pets: Array<NameIdKey>;
3156
3180
  }
3181
+ /**
3182
+ * The response for a pet search.
3183
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3184
+ */
3185
+ interface PetMediaResponse extends ResponseBase {
3186
+ assets: Array<MediaAsset$1>;
3187
+ id: number;
3188
+ }
3157
3189
  /**
3158
3190
  * The response for a pet.
3159
3191
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3160
3192
  */
3161
- interface PetResponse extends ResponseBase, NameId {
3193
+ interface PetResponse extends NameId, ResponseBase {
3162
3194
  abilities: Array<Ability>;
3163
3195
  battle_pet_type: BattlePetType;
3164
3196
  creature: NameIdKey;
@@ -3189,38 +3221,6 @@ interface Source$1 {
3189
3221
  name: string;
3190
3222
  type: string;
3191
3223
  }
3192
- /**
3193
- * The response for a pet search.
3194
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3195
- */
3196
- interface PetMediaResponse extends ResponseBase {
3197
- assets: Array<MediaAsset$1>;
3198
- id: number;
3199
- }
3200
- /**
3201
- * The response for a pet ability index.
3202
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3203
- */
3204
- interface PetAbilityIndexResponse extends ResponseBase {
3205
- abilities: Array<NameIdKey>;
3206
- }
3207
- /**
3208
- * The response for a pet ability.
3209
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3210
- */
3211
- interface PetAbilityResponse extends ResponseBase, NameId {
3212
- battle_pet_type: BattlePetType;
3213
- media: Media$7;
3214
- rounds: number;
3215
- }
3216
- /**
3217
- * The response for a pet ability media.
3218
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3219
- */
3220
- interface PetAbilityMediaResponse extends ResponseBase {
3221
- assets: Array<MediaAsset$1>;
3222
- id: number;
3223
- }
3224
3224
 
3225
3225
  /**
3226
3226
  * Get a pet by ID.
@@ -3228,17 +3228,6 @@ interface PetAbilityMediaResponse extends ResponseBase {
3228
3228
  * @returns The pet. See {@link PetResponse}.
3229
3229
  */
3230
3230
  declare function pet(petId: number): Resource<PetResponse>;
3231
- /**
3232
- * Get a pet index.
3233
- * @returns The pet index. See {@link PetIndexResponse}.
3234
- */
3235
- declare function petIndex(): Resource<PetIndexResponse>;
3236
- /**
3237
- * Get a pet media by ID.
3238
- * @param petId The pet ID.
3239
- * @returns The pet media. See {@link PetMediaResponse}.
3240
- */
3241
- declare function petMedia(petId: number): Resource<PetMediaResponse>;
3242
3231
  /**
3243
3232
  * Get a pet ability by ID.
3244
3233
  * @param petAbilityId The pet ability ID.
@@ -3256,6 +3245,17 @@ declare function petAbilityIndex(): Resource<PetAbilityIndexResponse>;
3256
3245
  * @returns The pet ability media. See {@link PetAbilityMediaResponse}.
3257
3246
  */
3258
3247
  declare function petAbilityMedia(petAbilityId: number): Resource<PetAbilityMediaResponse>;
3248
+ /**
3249
+ * Get a pet index.
3250
+ * @returns The pet index. See {@link PetIndexResponse}.
3251
+ */
3252
+ declare function petIndex(): Resource<PetIndexResponse>;
3253
+ /**
3254
+ * Get a pet media by ID.
3255
+ * @param petId The pet ID.
3256
+ * @returns The pet media. See {@link PetMediaResponse}.
3257
+ */
3258
+ declare function petMedia(petId: number): Resource<PetMediaResponse>;
3259
3259
 
3260
3260
  /**
3261
3261
  * The response for a playable class index.
@@ -3264,11 +3264,19 @@ declare function petAbilityMedia(petAbilityId: number): Resource<PetAbilityMedia
3264
3264
  interface PlayableClassIndexResponse extends ResponseBase {
3265
3265
  classes: Array<NameIdKey>;
3266
3266
  }
3267
+ /**
3268
+ * The response for playable class media.
3269
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3270
+ */
3271
+ interface PlayableClassMediaResponse extends ResponseBase {
3272
+ assets: Array<MediaAsset$1>;
3273
+ id: number;
3274
+ }
3267
3275
  /**
3268
3276
  * The response for a playable class.
3269
3277
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3270
3278
  */
3271
- interface PlayableClassResponse extends ResponseBase, NameId {
3279
+ interface PlayableClassResponse extends NameId, ResponseBase {
3272
3280
  gender_name: GenderName;
3273
3281
  media: Media$6;
3274
3282
  playable_races: Array<NameIdKey>;
@@ -3278,17 +3286,6 @@ interface PlayableClassResponse extends ResponseBase, NameId {
3278
3286
  };
3279
3287
  specializations: Array<NameIdKey>;
3280
3288
  }
3281
- interface Media$6 extends KeyBase {
3282
- id: number;
3283
- }
3284
- /**
3285
- * The response for playable class media.
3286
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3287
- */
3288
- interface PlayableClassMediaResponse extends ResponseBase {
3289
- assets: Array<MediaAsset$1>;
3290
- id: number;
3291
- }
3292
3289
  /**
3293
3290
  * The response for a playable class's PvP talent slots.
3294
3291
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3296,6 +3293,9 @@ interface PlayableClassMediaResponse extends ResponseBase {
3296
3293
  interface PvpTalentSlotsResponse extends ResponseBase {
3297
3294
  talent_slots: Array<TalentSlot>;
3298
3295
  }
3296
+ interface Media$6 extends KeyBase {
3297
+ id: number;
3298
+ }
3299
3299
  interface TalentSlot {
3300
3300
  slot_number: number;
3301
3301
  unlock_player_level: number;
@@ -3336,7 +3336,7 @@ interface PlayableRaceIndexResponse extends ResponseBase {
3336
3336
  * The playable race response.
3337
3337
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3338
3338
  */
3339
- interface PlayableRaceResponse extends ResponseBase, NameId {
3339
+ interface PlayableRaceResponse extends NameId, ResponseBase {
3340
3340
  faction: Faction;
3341
3341
  gender_name: GenderName;
3342
3342
  is_allied_race: boolean;
@@ -3364,11 +3364,19 @@ interface PlayableSpecializationIndexResponse extends ResponseBase {
3364
3364
  character_specializations: Array<NameIdKey>;
3365
3365
  pet_specializations: Array<NameIdKey>;
3366
3366
  }
3367
+ /**
3368
+ * The response for a playable specialization media.
3369
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3370
+ */
3371
+ interface PlayableSpecializationMediaResponse extends ResponseBase {
3372
+ assets: Array<MediaAsset$1>;
3373
+ id: number;
3374
+ }
3367
3375
  /**
3368
3376
  * The response for a playable specialization.
3369
3377
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3370
3378
  */
3371
- interface PlayableSpecializationResponse extends ResponseBase, NameId {
3379
+ interface PlayableSpecializationResponse extends NameId, ResponseBase {
3372
3380
  gender_description: GenderName;
3373
3381
  media: Media$5;
3374
3382
  playable_class: NameIdKey;
@@ -3389,6 +3397,9 @@ interface PvpTalent {
3389
3397
  spell_tooltip: SpellTooltip;
3390
3398
  talent: NameIdKey;
3391
3399
  }
3400
+ interface SpecTalentTree$1 extends KeyBase {
3401
+ name: string;
3402
+ }
3392
3403
  interface SpellTooltip {
3393
3404
  cast_time: string;
3394
3405
  cooldown?: string;
@@ -3396,17 +3407,6 @@ interface SpellTooltip {
3396
3407
  power_cost?: string;
3397
3408
  range?: string;
3398
3409
  }
3399
- interface SpecTalentTree$1 extends KeyBase {
3400
- name: string;
3401
- }
3402
- /**
3403
- * The response for a playable specialization media.
3404
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3405
- */
3406
- interface PlayableSpecializationMediaResponse extends ResponseBase {
3407
- assets: Array<MediaAsset$1>;
3408
- id: number;
3409
- }
3410
3410
 
3411
3411
  /**
3412
3412
  * Get a playable specialization by ID.
@@ -3437,7 +3437,7 @@ interface PowerTypeIndexResponse extends ResponseBase {
3437
3437
  * The response for a power type.
3438
3438
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3439
3439
  */
3440
- interface PowerTypeResponse extends ResponseBase, NameId {
3440
+ interface PowerTypeResponse extends NameId, ResponseBase {
3441
3441
  }
3442
3442
 
3443
3443
  /**
@@ -3459,41 +3459,38 @@ declare function powerTypeIndex(): Resource<PowerTypeIndexResponse>;
3459
3459
  interface ProfessionIndexResponse extends ResponseBase {
3460
3460
  professions: Array<NameIdKey>;
3461
3461
  }
3462
+ /**
3463
+ * The response for a profession media.
3464
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3465
+ */
3466
+ interface ProfessionMediaResponse extends ResponseBase {
3467
+ assets: Array<MediaAsset$1>;
3468
+ id: number;
3469
+ }
3462
3470
  /**
3463
3471
  * The response for a profession.
3464
3472
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3465
3473
  */
3466
- interface ProfessionResponse extends ResponseBase, NameId {
3474
+ interface ProfessionResponse extends NameId, ResponseBase {
3467
3475
  description: string;
3468
3476
  media: Media$4;
3469
3477
  skill_tiers: Array<NameIdKey>;
3470
3478
  type: Type;
3471
3479
  }
3472
- interface Media$4 extends KeyBase {
3473
- id: number;
3474
- }
3475
- interface Type {
3476
- name: string;
3477
- type: string;
3478
- }
3479
3480
  /**
3480
3481
  * The response for a profession skill tier.
3481
3482
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3482
3483
  */
3483
- interface ProfessionSkillTierResponse extends ResponseBase, NameId {
3484
+ interface ProfessionSkillTierResponse extends NameId, ResponseBase {
3484
3485
  categories: Array<Category>;
3485
3486
  maximum_skill_level: number;
3486
3487
  minimum_skill_level: number;
3487
3488
  }
3488
- interface Category {
3489
- name: string;
3490
- recipes: Array<NameIdKey>;
3491
- }
3492
3489
  /**
3493
- * The response for a profession media.
3490
+ * The response for a recipe media.
3494
3491
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3495
3492
  */
3496
- interface ProfessionMediaResponse extends ResponseBase {
3493
+ interface RecipeMediaResponse extends ResponseBase {
3497
3494
  assets: Array<MediaAsset$1>;
3498
3495
  id: number;
3499
3496
  }
@@ -3501,26 +3498,29 @@ interface ProfessionMediaResponse extends ResponseBase {
3501
3498
  * The response for a recipe.
3502
3499
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3503
3500
  */
3504
- interface RecipeResponse extends ResponseBase, NameId {
3501
+ interface RecipeResponse extends NameId, ResponseBase {
3505
3502
  crafted_item: NameIdKey;
3506
3503
  crafted_quantity: CraftedQuantity;
3507
3504
  media: Media$4;
3508
3505
  reagents: Array<Reagent>;
3509
3506
  }
3507
+ interface Category {
3508
+ name: string;
3509
+ recipes: Array<NameIdKey>;
3510
+ }
3510
3511
  interface CraftedQuantity {
3511
3512
  value: number;
3512
3513
  }
3514
+ interface Media$4 extends KeyBase {
3515
+ id: number;
3516
+ }
3513
3517
  interface Reagent {
3514
3518
  quantity: number;
3515
3519
  reagent: NameIdKey;
3516
3520
  }
3517
- /**
3518
- * The response for a recipe media.
3519
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3520
- */
3521
- interface RecipeMediaResponse extends ResponseBase {
3522
- assets: Array<MediaAsset$1>;
3523
- id: number;
3521
+ interface Type {
3522
+ name: string;
3523
+ type: string;
3524
3524
  }
3525
3525
 
3526
3526
  /**
@@ -3561,43 +3561,21 @@ declare function recipe(recipeId: number): Resource<RecipeResponse>;
3561
3561
  declare function recipeMedia(recipeId: number): Resource<RecipeMediaResponse>;
3562
3562
 
3563
3563
  /**
3564
- * The response for a PvP leaderboard.
3564
+ * The response for a PvP leaderboard index.
3565
3565
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3566
3566
  */
3567
- interface PvpLeaderboardResponse extends ResponseBase {
3568
- bracket: Bracket$1;
3569
- entries: Array<Entry>;
3570
- name: string;
3567
+ interface PvpLeaderboardIndexResponse extends ResponseBase {
3568
+ leaderboards: Array<NameIdKey>;
3571
3569
  season: Season;
3572
3570
  }
3573
- interface Entry {
3574
- character: Character;
3575
- faction: {
3576
- type: keyof typeof Factions;
3577
- };
3578
- rank: number;
3579
- rating: number;
3580
- season_match_statistics: SeasonMatchStatistics;
3581
- tier: Season;
3582
- }
3583
- interface Character extends NameId {
3584
- realm: Realm;
3585
- }
3586
- interface Realm extends KeyBase {
3587
- id: number;
3588
- slug: string;
3589
- }
3590
- interface SeasonMatchStatistics {
3591
- lost: number;
3592
- played: number;
3593
- won: number;
3594
- }
3595
3571
  /**
3596
- * The response for a PvP leaderboard index.
3572
+ * The response for a PvP leaderboard.
3597
3573
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3598
3574
  */
3599
- interface PvpLeaderboardIndexResponse extends ResponseBase {
3600
- leaderboards: Array<NameIdKey>;
3575
+ interface PvpLeaderboardResponse extends ResponseBase {
3576
+ bracket: Bracket$1;
3577
+ entries: Array<Entry>;
3578
+ name: string;
3601
3579
  season: Season;
3602
3580
  }
3603
3581
  /**
@@ -3608,17 +3586,6 @@ interface PvpRewardsIndexResponse extends ResponseBase {
3608
3586
  rewards: Array<Reward>;
3609
3587
  season: Season;
3610
3588
  }
3611
- interface Reward {
3612
- achievement: NameIdKey;
3613
- bracket: Bracket$1;
3614
- faction?: Faction;
3615
- rating_cutoff: number;
3616
- specialization?: NameIdKey;
3617
- }
3618
- interface Bracket$1 {
3619
- id: number;
3620
- type: 'ARENA_3v3' | 'BATTLEGROUNDS' | 'SHUFFLE';
3621
- }
3622
3589
  /**
3623
3590
  * The response for a PvP season index.
3624
3591
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3627,9 +3594,6 @@ interface PvpSeasonIndexResponse extends ResponseBase {
3627
3594
  current_season: Season;
3628
3595
  seasons: Array<Season>;
3629
3596
  }
3630
- interface Season extends KeyBase {
3631
- id: number;
3632
- }
3633
3597
  /**
3634
3598
  * The response for a PvP season.
3635
3599
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3645,6 +3609,42 @@ interface PvpSeasonResponse extends ResponseBase {
3645
3609
  season_name?: string;
3646
3610
  season_start_timestamp: number;
3647
3611
  }
3612
+ interface Bracket$1 {
3613
+ id: number;
3614
+ type: 'ARENA_3v3' | 'BATTLEGROUNDS' | 'SHUFFLE';
3615
+ }
3616
+ interface Character extends NameId {
3617
+ realm: Realm;
3618
+ }
3619
+ interface Entry {
3620
+ character: Character;
3621
+ faction: {
3622
+ type: keyof typeof Factions;
3623
+ };
3624
+ rank: number;
3625
+ rating: number;
3626
+ season_match_statistics: SeasonMatchStatistics;
3627
+ tier: Season;
3628
+ }
3629
+ interface Realm extends KeyBase {
3630
+ id: number;
3631
+ slug: string;
3632
+ }
3633
+ interface Reward {
3634
+ achievement: NameIdKey;
3635
+ bracket: Bracket$1;
3636
+ faction?: Faction;
3637
+ rating_cutoff: number;
3638
+ specialization?: NameIdKey;
3639
+ }
3640
+ interface Season extends KeyBase {
3641
+ id: number;
3642
+ }
3643
+ interface SeasonMatchStatistics {
3644
+ lost: number;
3645
+ played: number;
3646
+ won: number;
3647
+ }
3648
3648
 
3649
3649
  /**
3650
3650
  * Get a PvP leaderboard by PvP season ID and bracket.
@@ -3684,11 +3684,19 @@ declare function pvpSeasonIndex(): Resource<PvpSeasonIndexResponse>;
3684
3684
  interface PvpTierIndexResponse extends ResponseBase {
3685
3685
  tiers: Array<NameIdKey>;
3686
3686
  }
3687
+ /**
3688
+ * The response for a PvP tier media.
3689
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3690
+ */
3691
+ interface PvpTierMediaResponse extends ResponseBase {
3692
+ assets: Array<MediaAsset$1>;
3693
+ id: number;
3694
+ }
3687
3695
  /**
3688
3696
  * The response for a PvP tier.
3689
3697
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3690
3698
  */
3691
- interface PvpTierResponse extends ResponseBase, NameId {
3699
+ interface PvpTierResponse extends NameId, ResponseBase {
3692
3700
  bracket: Bracket;
3693
3701
  max_rating: number;
3694
3702
  media: Media$3;
@@ -3698,16 +3706,8 @@ interface PvpTierResponse extends ResponseBase, NameId {
3698
3706
  interface Bracket {
3699
3707
  id: number;
3700
3708
  type: string;
3701
- }
3702
- interface Media$3 extends KeyBase {
3703
- id: number;
3704
- }
3705
- /**
3706
- * The response for a PvP tier media.
3707
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3708
- */
3709
- interface PvpTierMediaResponse extends ResponseBase {
3710
- assets: Array<MediaAsset$1>;
3709
+ }
3710
+ interface Media$3 extends KeyBase {
3711
3711
  id: number;
3712
3712
  }
3713
3713
 
@@ -3729,56 +3729,6 @@ declare function pvpTierIndex(): Resource<PvpTierIndexResponse>;
3729
3729
  */
3730
3730
  declare function pvpTierMedia(pvpTierId: number): Resource<PvpTierMediaResponse>;
3731
3731
 
3732
- /**
3733
- * The response for a quest index.
3734
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3735
- */
3736
- interface QuestIndexResponse extends ResponseBase {
3737
- areas: {
3738
- href: string;
3739
- };
3740
- categories: {
3741
- href: string;
3742
- };
3743
- types: {
3744
- href: string;
3745
- };
3746
- }
3747
- /**
3748
- * The response for a quest.
3749
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3750
- */
3751
- interface QuestResponse extends ResponseBase {
3752
- area: NameIdKey;
3753
- description: string;
3754
- id: number;
3755
- requirements: Requirements;
3756
- rewards: Rewards;
3757
- title: string;
3758
- }
3759
- interface Requirements {
3760
- faction: Faction;
3761
- max_character_level: number;
3762
- min_character_level: number;
3763
- }
3764
- interface Rewards {
3765
- experience: number;
3766
- money: Money;
3767
- reputations: Array<Reputation>;
3768
- }
3769
- interface Money {
3770
- units: Units;
3771
- value: number;
3772
- }
3773
- interface Units {
3774
- copper: number;
3775
- gold: number;
3776
- silver: number;
3777
- }
3778
- interface Reputation {
3779
- reward: NameIdKey;
3780
- value: number;
3781
- }
3782
3732
  /**
3783
3733
  * The response for a quest area index.
3784
3734
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3811,6 +3761,33 @@ interface QuestCategoryResponse extends ResponseBase {
3811
3761
  id: number;
3812
3762
  quests: Array<NameIdKey>;
3813
3763
  }
3764
+ /**
3765
+ * The response for a quest index.
3766
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3767
+ */
3768
+ interface QuestIndexResponse extends ResponseBase {
3769
+ areas: {
3770
+ href: string;
3771
+ };
3772
+ categories: {
3773
+ href: string;
3774
+ };
3775
+ types: {
3776
+ href: string;
3777
+ };
3778
+ }
3779
+ /**
3780
+ * The response for a quest.
3781
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3782
+ */
3783
+ interface QuestResponse extends ResponseBase {
3784
+ area: NameIdKey;
3785
+ description: string;
3786
+ id: number;
3787
+ requirements: Requirements;
3788
+ rewards: Rewards;
3789
+ title: string;
3790
+ }
3814
3791
  /**
3815
3792
  * The response for a quest type index.
3816
3793
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3827,6 +3804,29 @@ interface QuestTypeResponse extends ResponseBase {
3827
3804
  quests: Array<NameIdKey>;
3828
3805
  type: string;
3829
3806
  }
3807
+ interface Money {
3808
+ units: Units;
3809
+ value: number;
3810
+ }
3811
+ interface Reputation {
3812
+ reward: NameIdKey;
3813
+ value: number;
3814
+ }
3815
+ interface Requirements {
3816
+ faction: Faction;
3817
+ max_character_level: number;
3818
+ min_character_level: number;
3819
+ }
3820
+ interface Rewards {
3821
+ experience: number;
3822
+ money: Money;
3823
+ reputations: Array<Reputation>;
3824
+ }
3825
+ interface Units {
3826
+ copper: number;
3827
+ gold: number;
3828
+ silver: number;
3829
+ }
3830
3830
 
3831
3831
  /**
3832
3832
  * Get a quest by ID.
@@ -3834,11 +3834,6 @@ interface QuestTypeResponse extends ResponseBase {
3834
3834
  * @returns The quest. See {@link QuestResponse}.
3835
3835
  */
3836
3836
  declare function quest(questId: number): Resource<QuestResponse>;
3837
- /**
3838
- * Get a quest index.
3839
- * @returns The quest index. See {@link QuestIndexResponse}.
3840
- */
3841
- declare function questIndex(): Resource<QuestIndexResponse>;
3842
3837
  /**
3843
3838
  * Get a quest area by ID.
3844
3839
  * @param questAreaId The quest area ID.
@@ -3861,6 +3856,11 @@ declare function questCategory(questCategoryId: number): Resource<QuestCategoryR
3861
3856
  * @returns The quest category index. See {@link QuestCategoryIndexResponse}.
3862
3857
  */
3863
3858
  declare function questCategoryIndex(): Resource<QuestCategoryIndexResponse>;
3859
+ /**
3860
+ * Get a quest index.
3861
+ * @returns The quest index. See {@link QuestIndexResponse}.
3862
+ */
3863
+ declare function questIndex(): Resource<QuestIndexResponse>;
3864
3864
  /**
3865
3865
  * Get a quest type by ID.
3866
3866
  * @param questTypeId The quest type ID.
@@ -3904,7 +3904,7 @@ interface RegionIndexResponse extends ResponseBase {
3904
3904
  * The response for a region.
3905
3905
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3906
3906
  */
3907
- interface RegionResponse extends ResponseBase, NameId {
3907
+ interface RegionResponse extends NameId, ResponseBase {
3908
3908
  patch_string: string;
3909
3909
  tag: string;
3910
3910
  }
@@ -3939,9 +3939,6 @@ interface ReputationFactionResponse extends ResponseBase {
3939
3939
  name: string;
3940
3940
  reputation_tiers: ReputationTiers;
3941
3941
  }
3942
- interface ReputationTiers extends KeyBase {
3943
- id: number;
3944
- }
3945
3942
  /**
3946
3943
  * The response for a reputation tier index.
3947
3944
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3949,10 +3946,6 @@ interface ReputationTiers extends KeyBase {
3949
3946
  interface ReputationTiersIndexResponse extends ResponseBase {
3950
3947
  reputation_tiers: Array<ReputationTier>;
3951
3948
  }
3952
- interface ReputationTier extends KeyBase {
3953
- id: number;
3954
- name?: string;
3955
- }
3956
3949
  /**
3957
3950
  * The response for a reputation tier.
3958
3951
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -3962,6 +3955,13 @@ interface ReputationTiersResponse extends ResponseBase {
3962
3955
  id: number;
3963
3956
  tiers: Array<Tier>;
3964
3957
  }
3958
+ interface ReputationTier extends KeyBase {
3959
+ id: number;
3960
+ name?: string;
3961
+ }
3962
+ interface ReputationTiers extends KeyBase {
3963
+ id: number;
3964
+ }
3965
3965
  interface Tier {
3966
3966
  id: number;
3967
3967
  max_value: number;
@@ -3993,23 +3993,20 @@ declare function reputationTiers(reputationTiersId: number): Resource<Reputation
3993
3993
  declare function reputationTiersIndex(): Resource<ReputationTiersIndexResponse>;
3994
3994
 
3995
3995
  /**
3996
- * The response for a spell.
3996
+ * The response for a spell media.
3997
3997
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
3998
3998
  */
3999
- interface SpellResponse extends ResponseBase, NameId {
4000
- description: null | string;
4001
- media: Media$2;
4002
- }
4003
- interface Media$2 extends KeyBase {
3999
+ interface SpellMediaResponse extends ResponseBase {
4000
+ assets: Array<MediaAsset$1>;
4004
4001
  id: number;
4005
4002
  }
4006
4003
  /**
4007
- * The response for a spell media.
4004
+ * The response for a spell.
4008
4005
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4009
4006
  */
4010
- interface SpellMediaResponse extends ResponseBase {
4011
- assets: Array<MediaAsset$1>;
4012
- id: number;
4007
+ interface SpellResponse extends NameId, ResponseBase {
4008
+ description: null | string;
4009
+ media: Media$2;
4013
4010
  }
4014
4011
  /**
4015
4012
  * The search parameters for spells.
@@ -4034,6 +4031,9 @@ interface SpellSearchResponseItem extends KeyBase {
4034
4031
  name: Record<Locales, string | undefined>;
4035
4032
  };
4036
4033
  }
4034
+ interface Media$2 extends KeyBase {
4035
+ id: number;
4036
+ }
4037
4037
 
4038
4038
  /**
4039
4039
  * Get a spell by ID.
@@ -4090,13 +4090,6 @@ interface TalentResponse extends ResponseBase {
4090
4090
  rank_descriptions: Array<RankDescription>;
4091
4091
  spell: NameIdKey;
4092
4092
  }
4093
- interface PlayableClass extends KeyBase {
4094
- id: number;
4095
- }
4096
- interface RankDescription {
4097
- description: null;
4098
- rank: number;
4099
- }
4100
4093
  /**
4101
4094
  * The response for a talent tree index.
4102
4095
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -4105,14 +4098,20 @@ interface TalentTreeIndexResponse extends ResponseBase {
4105
4098
  class_talent_trees: Array<TalentTree$1>;
4106
4099
  spec_talent_trees: Array<TalentTree$1>;
4107
4100
  }
4108
- interface TalentTree$1 extends KeyBase {
4109
- name: string;
4101
+ /**
4102
+ * The response for a talent tree nodes.
4103
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4104
+ */
4105
+ interface TalentTreeNodesResponse extends ResponseBase {
4106
+ id: number;
4107
+ spec_talent_trees: Array<SpecTalentTree>;
4108
+ talent_nodes: Array<TalentNode>;
4110
4109
  }
4111
4110
  /**
4112
4111
  * The response for a talent tree.
4113
4112
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4114
4113
  */
4115
- interface TalentTreeResponse extends ResponseBase, NameId {
4114
+ interface TalentTreeResponse extends NameId, ResponseBase {
4116
4115
  class_talent_nodes: Array<ClassTalentNode>;
4117
4116
  media: {
4118
4117
  href: string;
@@ -4122,6 +4121,10 @@ interface TalentTreeResponse extends ResponseBase, NameId {
4122
4121
  restriction_lines: Array<RestrictionLine>;
4123
4122
  spec_talent_nodes: Array<SpecTalentNode>;
4124
4123
  }
4124
+ interface ChoiceOfTooltip {
4125
+ spell_tooltip: PurpleSpellTooltip;
4126
+ talent: NameIdKey;
4127
+ }
4125
4128
  interface ClassTalentNode {
4126
4129
  display_col: number;
4127
4130
  display_row: number;
@@ -4133,28 +4136,33 @@ interface ClassTalentNode {
4133
4136
  raw_position_y: number;
4134
4137
  unlocks?: Array<number>;
4135
4138
  }
4136
- interface NodeType {
4137
- id: number;
4138
- type: 'ACTIVE' | 'CHOICE' | 'PASSIVE';
4139
- }
4140
4139
  interface ClassTalentNodeRank {
4141
4140
  choice_of_tooltips?: Array<Tooltip>;
4142
4141
  default_points?: number;
4143
4142
  rank: number;
4144
4143
  tooltip?: Tooltip;
4145
4144
  }
4146
- interface Tooltip {
4147
- spell_tooltip: TooltipSpellTooltip;
4148
- talent: NameIdKey;
4145
+ interface NodeType {
4146
+ id: number;
4147
+ type: 'ACTIVE' | 'CHOICE' | 'PASSIVE';
4149
4148
  }
4150
- interface TooltipSpellTooltip {
4149
+ interface PlayableClass extends KeyBase {
4150
+ id: number;
4151
+ }
4152
+ interface PurpleSpellTooltip {
4151
4153
  cast_time: string;
4152
- cooldown?: string;
4153
4154
  description: string;
4154
- power_cost?: string;
4155
- range?: string;
4156
4155
  spell: NameIdKey;
4157
4156
  }
4157
+ interface Rank {
4158
+ choice_of_tooltips?: Array<Tooltip>;
4159
+ rank: number;
4160
+ tooltip?: Tooltip;
4161
+ }
4162
+ interface RankDescription {
4163
+ description: null;
4164
+ rank: number;
4165
+ }
4158
4166
  interface RestrictionLine {
4159
4167
  is_for_class: boolean;
4160
4168
  required_points: number;
@@ -4176,24 +4184,6 @@ interface SpecTalentNodeRank {
4176
4184
  rank: number;
4177
4185
  tooltip?: Tooltip;
4178
4186
  }
4179
- interface ChoiceOfTooltip {
4180
- spell_tooltip: PurpleSpellTooltip;
4181
- talent: NameIdKey;
4182
- }
4183
- interface PurpleSpellTooltip {
4184
- cast_time: string;
4185
- description: string;
4186
- spell: NameIdKey;
4187
- }
4188
- /**
4189
- * The response for a talent tree nodes.
4190
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4191
- */
4192
- interface TalentTreeNodesResponse extends ResponseBase {
4193
- id: number;
4194
- spec_talent_trees: Array<SpecTalentTree>;
4195
- talent_nodes: Array<TalentNode>;
4196
- }
4197
4187
  interface SpecTalentTree extends KeyBase {
4198
4188
  name: string;
4199
4189
  }
@@ -4206,10 +4196,20 @@ interface TalentNode {
4206
4196
  raw_position_x: number;
4207
4197
  raw_position_y: number;
4208
4198
  }
4209
- interface Rank {
4210
- choice_of_tooltips?: Array<Tooltip>;
4211
- rank: number;
4212
- tooltip?: Tooltip;
4199
+ interface TalentTree$1 extends KeyBase {
4200
+ name: string;
4201
+ }
4202
+ interface Tooltip {
4203
+ spell_tooltip: TooltipSpellTooltip;
4204
+ talent: NameIdKey;
4205
+ }
4206
+ interface TooltipSpellTooltip {
4207
+ cast_time: string;
4208
+ cooldown?: string;
4209
+ description: string;
4210
+ power_cost?: string;
4211
+ range?: string;
4212
+ spell: NameIdKey;
4213
4213
  }
4214
4214
 
4215
4215
  /**
@@ -4260,26 +4260,23 @@ declare function talentTreeNodes(talentTreeId: number): Resource<TalentTreeNodes
4260
4260
  interface TechTalentIndexResponse extends ResponseBase {
4261
4261
  talents: Array<NameIdKey>;
4262
4262
  }
4263
+ /**
4264
+ * The response for a tech talent media.
4265
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4266
+ */
4267
+ interface TechTalentMediaResponse extends ResponseBase {
4268
+ assets: Array<MediaAsset$1>;
4269
+ }
4263
4270
  /**
4264
4271
  * The response for a tech talent.
4265
4272
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4266
4273
  */
4267
- interface TechTalentResponse extends ResponseBase, NameId {
4274
+ interface TechTalentResponse extends NameId, ResponseBase {
4268
4275
  display_order: number;
4269
4276
  media: Media$1;
4270
4277
  talent_tree: Media$1;
4271
4278
  tier: number;
4272
4279
  }
4273
- interface Media$1 extends KeyBase {
4274
- id: number;
4275
- }
4276
- /**
4277
- * The response for a tech talent media.
4278
- * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4279
- */
4280
- interface TechTalentMediaResponse extends ResponseBase {
4281
- assets: Array<MediaAsset$1>;
4282
- }
4283
4280
  /**
4284
4281
  * The response for a tech talent tree index.
4285
4282
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -4287,10 +4284,6 @@ interface TechTalentMediaResponse extends ResponseBase {
4287
4284
  interface TechTalentTreeIndexResponse extends ResponseBase {
4288
4285
  talent_trees: Array<TalentTree>;
4289
4286
  }
4290
- interface TalentTree extends KeyBase {
4291
- id: number;
4292
- name?: string;
4293
- }
4294
4287
  /**
4295
4288
  * The response for a tech talent tree.
4296
4289
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
@@ -4301,6 +4294,13 @@ interface TechTalentTreeResponse extends ResponseBase {
4301
4294
  playable_class: NameIdKey;
4302
4295
  talents: Array<NameIdKey>;
4303
4296
  }
4297
+ interface Media$1 extends KeyBase {
4298
+ id: number;
4299
+ }
4300
+ interface TalentTree extends KeyBase {
4301
+ id: number;
4302
+ name?: string;
4303
+ }
4304
4304
 
4305
4305
  /**
4306
4306
  * Get a tech talent by ID.
@@ -4342,7 +4342,7 @@ interface TitleIndexResponse extends ResponseBase {
4342
4342
  * The response for a title.
4343
4343
  * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
4344
4344
  */
4345
- interface TitleResponse extends ResponseBase, NameId {
4345
+ interface TitleResponse extends NameId, ResponseBase {
4346
4346
  gender_name: GenderName;
4347
4347
  }
4348
4348