@blizzard-api/classic-wow 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1044 @@
1
+ import * as _blizzard_api_core from '@blizzard-api/core';
2
+ import { Locales, BaseSearchParameters } from '@blizzard-api/core';
3
+
4
+ /**
5
+ * Base interface for Blizzard API responses.
6
+ */
7
+ interface ResponseBase {
8
+ _links: {
9
+ self: {
10
+ href: string;
11
+ };
12
+ };
13
+ }
14
+ /**
15
+ * Base record interface containing key.href property that often appear in Blizzard API responses.
16
+ */
17
+ interface KeyBase {
18
+ key: {
19
+ href: string;
20
+ };
21
+ }
22
+ /**
23
+ * Base record interface containing name and id properties that often appear together in Blizzard API responses.
24
+ */
25
+ interface NameId {
26
+ name: string;
27
+ id: number;
28
+ }
29
+ /**
30
+ * Base record containing both {@link KeyBase} and {@link NameId} interfaces.
31
+ */
32
+ interface NameIdKey extends KeyBase, NameId {
33
+ }
34
+ /**
35
+ * A record containing the RGBA values of a color.
36
+ */
37
+ interface Color {
38
+ r: number;
39
+ g: number;
40
+ b: number;
41
+ a: number;
42
+ }
43
+ /**
44
+ * The media asset associated with a character or entity in World of Warcraft.
45
+ */
46
+ interface MediaAsset$1 {
47
+ key: string;
48
+ value: string;
49
+ file_data_id: number;
50
+ }
51
+ /**
52
+ * The playable genders in World of Warcraft.
53
+ */
54
+ interface Gender {
55
+ male: string;
56
+ female: string;
57
+ }
58
+ /**
59
+ * The playable factions in World of Warcraft.
60
+ */
61
+ declare const Factions: {
62
+ readonly ALLIANCE: "ALLIANCE";
63
+ readonly HORDE: "HORDE";
64
+ };
65
+ /**
66
+ * The faction associated with a character or entity in World of Warcraft.
67
+ */
68
+ interface Faction {
69
+ type: keyof typeof Factions;
70
+ name: Capitalize<Lowercase<keyof typeof Factions>>;
71
+ }
72
+
73
+ interface AuctionHouseIndexResponse extends ResponseBase {
74
+ auctions: Array<NameIdKey>;
75
+ }
76
+ interface AuctionsResponse extends ResponseBase, NameId {
77
+ auctions: Array<Auction>;
78
+ connected_realm: {
79
+ href: string;
80
+ };
81
+ }
82
+ interface Auction {
83
+ id: number;
84
+ item: {
85
+ id: number;
86
+ rand?: number;
87
+ seed?: number;
88
+ };
89
+ bid: number;
90
+ buyout: number;
91
+ quantity: number;
92
+ time_left: 'SHORT' | 'MEDIUM' | 'LONG' | 'VERY_LONG';
93
+ }
94
+
95
+ type WithoutUnderscore<T extends string> = T extends `${infer Prefix}_${infer Suffix}` ? `${Prefix}${Suffix}` : never;
96
+ /**
97
+ * The category of a realm.
98
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
99
+ */
100
+ type RealmCategory = 'English' | 'French' | 'German' | 'Italian' | 'PS' | 'Russian' | 'Spanish' | 'Brazil' | 'Latin America' | 'Oceanic' | 'United States' | '한국';
101
+ /**
102
+ * The timezone of a realm.
103
+ */
104
+ type RealmTimezone = 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/New_York' | 'America/Sao_Paulo' | 'Asia/Seoul' | 'Australia/Melbourne' | 'Europe/Paris';
105
+ /**
106
+ * The type of a realm, capitalized and shortended).
107
+ */
108
+ type RealmTypeCapitalized = 'NORMAL' | 'RP';
109
+ /**
110
+ * The type of a realm, not capitalized or shortened.
111
+ */
112
+ type RealmType = 'Normal' | 'Roleplaying';
113
+ /**
114
+ * The response for a realm index.
115
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
116
+ */
117
+ interface RealmIndexResponse extends ResponseBase {
118
+ realms: Array<Realm$1>;
119
+ }
120
+ interface Realm$1 extends NameIdKey {
121
+ slug: string;
122
+ }
123
+ /**
124
+ * The response for a realm.
125
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
126
+ */
127
+ interface RealmResponse extends ResponseBase, NameId {
128
+ region: NameIdKey;
129
+ connected_realm: {
130
+ href: string;
131
+ };
132
+ category: RealmCategory;
133
+ locale: WithoutUnderscore<Locales>;
134
+ timezone: RealmTimezone;
135
+ type: {
136
+ type: RealmTypeCapitalized;
137
+ name: RealmType;
138
+ };
139
+ is_tournament: boolean;
140
+ slug: string;
141
+ }
142
+ /**
143
+ * The search parameters for realms.
144
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
145
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
146
+ */
147
+ interface RealmSearchParameters extends BaseSearchParameters {
148
+ timezone?: RealmTimezone;
149
+ }
150
+ /**
151
+ * The response for a realm search.
152
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
153
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
154
+ */
155
+ interface RealmSearchResponseItem extends KeyBase {
156
+ data: {
157
+ is_tournament: boolean;
158
+ timezone: RealmTimezone;
159
+ name: Record<Locales, string | undefined>;
160
+ id: number;
161
+ region: {
162
+ name: Record<Locales, string | undefined>;
163
+ id: number;
164
+ };
165
+ category: Record<Locales, string | undefined>;
166
+ locale: WithoutUnderscore<Locales>;
167
+ type: {
168
+ type: RealmTypeCapitalized;
169
+ name: Record<Locales, string | undefined>;
170
+ };
171
+ slug: string;
172
+ };
173
+ }
174
+
175
+ type RealmPopulation = 'Low' | 'Medium' | 'High' | 'Full' | 'New Players';
176
+ type RealmPopulationCapitalized = 'LOW' | 'MEDIUM' | 'HIGH' | 'FULL' | 'RECOMMENDED';
177
+ type RealmStatus = 'Up' | 'Down';
178
+ /**
179
+ * Connected Realm Index API response.
180
+ * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
181
+ */
182
+ interface ConnectedRealmIndexResponse extends ResponseBase {
183
+ connected_realms: Array<{
184
+ href: string;
185
+ }>;
186
+ }
187
+ interface Realm {
188
+ id: number;
189
+ region: NameIdKey;
190
+ connected_realm: {
191
+ href: string;
192
+ };
193
+ name: string;
194
+ category: RealmCategory;
195
+ locale: WithoutUnderscore<Locales>;
196
+ timezone: RealmTimezone;
197
+ type: {
198
+ type: RealmTypeCapitalized;
199
+ name: RealmType;
200
+ };
201
+ is_tournament: boolean;
202
+ slug: string;
203
+ }
204
+ interface RealmLockedStatus {
205
+ is_locked_for_pct: boolean;
206
+ is_locked_for_new_characters: boolean;
207
+ }
208
+ /**
209
+ * Connected Realm API response.
210
+ * @see https://develop.battle.net/documentation/world-of-warcraft/game-data-apis
211
+ */
212
+ interface ConnectedRealmResponse extends ResponseBase {
213
+ id: number;
214
+ has_queue: boolean;
215
+ status: {
216
+ type: Uppercase<RealmStatus>;
217
+ name: RealmStatus;
218
+ };
219
+ population: {
220
+ type: RealmPopulationCapitalized;
221
+ name: RealmPopulation;
222
+ };
223
+ realms: Array<Realm>;
224
+ mythic_leaderboards: {
225
+ href: string;
226
+ };
227
+ auctions: {
228
+ href: string;
229
+ };
230
+ realm_locked_status?: RealmLockedStatus;
231
+ }
232
+ /**
233
+ * Connected Realm Search API parameters.
234
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
235
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
236
+ */
237
+ interface ConnectedRealmSearchParameters extends BaseSearchParameters {
238
+ 'realms.timezone'?: RealmTimezone;
239
+ 'status.type'?: Uppercase<RealmStatus>;
240
+ }
241
+ interface SearchRealm {
242
+ is_tournament: boolean;
243
+ timezone: RealmTimezone;
244
+ name: Record<Locales, string | undefined>;
245
+ id: number;
246
+ category: Record<Locales, string | undefined>;
247
+ region: {
248
+ name: Record<Locales, string | undefined>;
249
+ id: number;
250
+ };
251
+ locale: WithoutUnderscore<Locales>;
252
+ type: {
253
+ type: RealmTypeCapitalized;
254
+ name: Record<Locales, string | undefined>;
255
+ };
256
+ slug: string;
257
+ }
258
+ interface SearchRealmStatus {
259
+ type: Uppercase<RealmStatus>;
260
+ name: Record<Locales, string>;
261
+ }
262
+ interface SearchRealmPopulation {
263
+ type: RealmPopulationCapitalized;
264
+ name: Record<Locales, string>;
265
+ }
266
+ /**
267
+ * Connected Realm Search API response item.
268
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
269
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
270
+ */
271
+ interface ConnectedRealmSearchResponseItem extends KeyBase {
272
+ data: {
273
+ id: number;
274
+ has_queue: boolean;
275
+ realms: Array<SearchRealm>;
276
+ status: SearchRealmStatus;
277
+ population: SearchRealmPopulation;
278
+ };
279
+ }
280
+
281
+ /**
282
+ * The response for a creature.
283
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
284
+ */
285
+ interface CreatureResponse extends ResponseBase {
286
+ id: number;
287
+ name: string;
288
+ type: NameIdKey;
289
+ family: NameIdKey;
290
+ creature_displays: Array<CreatureDisplay>;
291
+ is_tameable: boolean;
292
+ }
293
+ interface CreatureDisplay extends KeyBase {
294
+ id: number;
295
+ }
296
+ /**
297
+ * The response for creature display media.
298
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
299
+ */
300
+ interface CreatureDisplayMediaResponse extends ResponseBase {
301
+ assets: Array<DisplayMediaAsset>;
302
+ id: number;
303
+ }
304
+ interface DisplayMediaAsset {
305
+ key: string;
306
+ value: string;
307
+ }
308
+ /**
309
+ * The response for a creature family index.
310
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
311
+ */
312
+ interface CreatureFamilyIndexResponse extends ResponseBase {
313
+ creature_families: Array<NameIdKey>;
314
+ }
315
+ /**
316
+ * The response for a creature family.
317
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
318
+ */
319
+ interface CreatureFamilyResponse extends ResponseBase {
320
+ id: number;
321
+ name: string;
322
+ specialization: NameIdKey;
323
+ media: Media$3;
324
+ }
325
+ interface Media$3 extends KeyBase {
326
+ id: number;
327
+ }
328
+ /**
329
+ * The response for creature family media.
330
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
331
+ */
332
+ interface CreatureFamilyMediaResponse extends ResponseBase {
333
+ assets: Array<MediaAsset$1>;
334
+ id: number;
335
+ }
336
+ /**
337
+ * The response for a creature type index.
338
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
339
+ */
340
+ interface CreatureTypeIndexResponse extends ResponseBase {
341
+ creature_types: Array<NameIdKey>;
342
+ }
343
+ /**
344
+ * The response for a creature type.
345
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
346
+ */
347
+ interface CreatureTypeResponse extends ResponseBase {
348
+ id: number;
349
+ name: string;
350
+ }
351
+ /**
352
+ * The search parameters for a creature.
353
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
354
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
355
+ */
356
+ interface CreatureSearchParameters extends BaseSearchParameters {
357
+ name: string;
358
+ locale: Locales;
359
+ }
360
+ /**
361
+ * The response for a creature search.
362
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
363
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
364
+ */
365
+ interface CreatureSearchResponseItem extends KeyBase {
366
+ data: {
367
+ creature_displays: Array<{
368
+ id: number;
369
+ }>;
370
+ is_tameable: boolean;
371
+ name: Record<Locales, string | undefined>;
372
+ id: number;
373
+ type: {
374
+ id: number;
375
+ name: Record<Locales, string | undefined>;
376
+ };
377
+ family?: {
378
+ id: number;
379
+ name: Record<Locales, string | undefined>;
380
+ };
381
+ };
382
+ }
383
+
384
+ /**
385
+ * The response for the guild crest components index.
386
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
387
+ */
388
+ interface GuildCrestComponentsIndexResponse extends ResponseBase {
389
+ emblems: Array<Border>;
390
+ borders: Array<Border>;
391
+ colors: Colors;
392
+ }
393
+ interface Border {
394
+ id: number;
395
+ media: Media$2;
396
+ }
397
+ interface Media$2 extends KeyBase {
398
+ id: number;
399
+ }
400
+ interface Colors {
401
+ emblems: Array<Background>;
402
+ borders: Array<Background>;
403
+ backgrounds: Array<Background>;
404
+ }
405
+ interface Background {
406
+ id: number;
407
+ rgba: RGBA;
408
+ }
409
+ interface RGBA {
410
+ r: number;
411
+ g: number;
412
+ b: number;
413
+ a: number;
414
+ }
415
+ /**
416
+ * The response for a guild crest border or emblem.
417
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
418
+ */
419
+ interface GuildCrestBorderEmblemResponse extends ResponseBase {
420
+ assets: Array<GuildCrestAsset>;
421
+ id: number;
422
+ }
423
+ interface GuildCrestAsset {
424
+ key: string;
425
+ value: string;
426
+ }
427
+
428
+ interface ItemQuality {
429
+ name: Record<Locales, string | undefined>;
430
+ type: 'POOR' | 'COMMON' | 'UNCOMMON' | 'RARE' | 'EPIC' | 'LEGENDARY' | 'ARTIFACT' | 'HEIRLOOM';
431
+ }
432
+ interface InventoryType {
433
+ name: Record<Locales, string | undefined>;
434
+ type: 'HEAD' | 'SHOULDER' | 'CHEST' | 'WRIST' | 'HANDS' | 'WAIST' | 'LEGS' | 'FEET' | 'NECK' | 'BACK' | 'FINGER' | 'TRINKET' | 'TABARD' | 'SHIRT' | 'TWOHWEAPON' | 'BAG' | 'NON_EQUIP';
435
+ }
436
+ type StatTypeCapitalized = 'STRENGTH' | 'AGILITY' | 'INTELLECT' | 'STAMINA' | 'CRIT_RATING' | 'HASTE_RATING' | 'MASTERY' | 'VERSATILITY';
437
+ type StatType = 'Strength' | 'Agility' | 'Intellect' | 'Stamina' | 'Critical Strike' | 'Haste' | 'Mastery' | 'Versatility';
438
+ /**
439
+ * The response for an item.
440
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
441
+ */
442
+ interface ItemResponse extends ResponseBase, NameId {
443
+ quality: ItemQuality;
444
+ level: number;
445
+ required_level: number;
446
+ media: Media$1;
447
+ item_class: NameIdKey;
448
+ item_subclass: NameIdKey;
449
+ inventory_type: InventoryType;
450
+ purchase_price: number;
451
+ sell_price: number;
452
+ max_count: number;
453
+ is_equippable: boolean;
454
+ is_stackable: boolean;
455
+ preview_item: PreviewItem;
456
+ purchase_quantity: number;
457
+ description?: string;
458
+ }
459
+ interface Media$1 extends KeyBase {
460
+ id: number;
461
+ }
462
+ interface PreviewItem {
463
+ item: Media$1;
464
+ quality: ItemQuality;
465
+ name: string;
466
+ media: Media$1;
467
+ item_class: NameIdKey;
468
+ item_subclass: NameIdKey;
469
+ inventory_type: InventoryType;
470
+ binding?: {
471
+ type: string;
472
+ name: string;
473
+ };
474
+ armor?: Armor;
475
+ sell_price?: number;
476
+ requirements?: Requirements;
477
+ level?: Durability;
478
+ is_subclass_hidden?: boolean;
479
+ spells?: Array<Spell>;
480
+ context?: number;
481
+ bonus_list?: Array<number>;
482
+ weapon?: Weapon;
483
+ durability?: Durability;
484
+ stats?: Array<Stat>;
485
+ description?: string;
486
+ recipe?: Recipe;
487
+ shield_block?: Armor;
488
+ unique_equipped?: 'Unique';
489
+ crafting_reagent?: string;
490
+ container_slots?: Durability;
491
+ }
492
+ interface Armor {
493
+ value: number;
494
+ display: Display;
495
+ }
496
+ interface Durability {
497
+ value: number;
498
+ display_string: string;
499
+ }
500
+ interface Requirements {
501
+ level: Durability;
502
+ }
503
+ interface Spell {
504
+ spell: NameIdKey;
505
+ description: string;
506
+ }
507
+ interface Stat {
508
+ type: {
509
+ type: StatTypeCapitalized;
510
+ name: StatType;
511
+ };
512
+ value: number;
513
+ is_negated?: boolean;
514
+ display: Display;
515
+ }
516
+ interface Display {
517
+ display_string: string;
518
+ color: Color;
519
+ }
520
+ interface Weapon {
521
+ damage: Damage;
522
+ attack_speed: Durability;
523
+ dps: Durability;
524
+ }
525
+ interface Damage {
526
+ min_value: number;
527
+ max_value: number;
528
+ display_string: string;
529
+ damage_class: {
530
+ type: string;
531
+ name: string;
532
+ };
533
+ }
534
+ interface Recipe {
535
+ item: RecipeItem;
536
+ reagents: Array<{
537
+ quantity: number;
538
+ } & NameIdKey>;
539
+ reagents_display_string: string;
540
+ }
541
+ interface RecipeItem {
542
+ item: Media$1;
543
+ quality: ItemQuality;
544
+ name: string;
545
+ media: Media$1;
546
+ item_class: NameIdKey;
547
+ item_subclass: NameIdKey;
548
+ inventory_type: InventoryType;
549
+ binding: {
550
+ type: string;
551
+ name: string;
552
+ };
553
+ weapon?: Weapon;
554
+ stats: Array<Stat>;
555
+ sell_price: {
556
+ value: number;
557
+ display_strings: RecipeItemDisplayStrings;
558
+ };
559
+ requirements: Requirements;
560
+ level: Durability;
561
+ durability: Durability;
562
+ armor?: Armor;
563
+ }
564
+ interface RecipeItemDisplayStrings {
565
+ header: string;
566
+ gold: string;
567
+ silver: string;
568
+ copper: string;
569
+ }
570
+ /**
571
+ * The response for an item class index.
572
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
573
+ */
574
+ interface ItemClassIndexResponse extends ResponseBase {
575
+ item_classes: Array<NameIdKey>;
576
+ }
577
+ /**
578
+ * The response for an item class.
579
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
580
+ */
581
+ interface ItemClassResponse extends ResponseBase {
582
+ class_id: number;
583
+ name: string;
584
+ item_subclasses: Array<NameIdKey>;
585
+ }
586
+ /**
587
+ * The response for an item media.
588
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
589
+ */
590
+ interface ItemMediaResponse extends ResponseBase {
591
+ assets: Array<MediaAsset$1>;
592
+ id: number;
593
+ }
594
+ /**
595
+ * The response for an item subclass.
596
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
597
+ */
598
+ interface ItemSubClassResponse extends ResponseBase {
599
+ class_id: number;
600
+ subclass_id: number;
601
+ display_name: string;
602
+ verbose_name: string;
603
+ hide_subclass_in_tooltips: boolean;
604
+ }
605
+ /**
606
+ * The parameters for an item search.
607
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
608
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
609
+ */
610
+ interface ItemSearchParameters extends BaseSearchParameters {
611
+ name: string;
612
+ locale: Locales;
613
+ }
614
+ /**
615
+ * The response for an item search.
616
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
617
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
618
+ */
619
+ interface ItemSearchResponseItem extends KeyBase {
620
+ data: {
621
+ level: number;
622
+ required_level: number;
623
+ sell_price: number;
624
+ item_subclass: {
625
+ name: Record<Locales, string | undefined>;
626
+ id: number;
627
+ };
628
+ is_equippable: boolean;
629
+ purchase_quantity: number;
630
+ media: {
631
+ id: number;
632
+ };
633
+ item_class: {
634
+ name: Record<Locales, string | undefined>;
635
+ id: number;
636
+ };
637
+ quality: ItemQuality;
638
+ max_count: number;
639
+ is_stackable: boolean;
640
+ name: Record<Locales, string | undefined>;
641
+ purchase_price: number;
642
+ id: number;
643
+ inventory_type: InventoryType;
644
+ };
645
+ }
646
+
647
+ /**
648
+ * The search parameters for media.
649
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
650
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
651
+ */
652
+ interface MediaSearchParameters extends BaseSearchParameters {
653
+ tags?: string;
654
+ }
655
+ /**
656
+ * The response for a media search.
657
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
658
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/guides/search}
659
+ */
660
+ interface MediaSearchResponseItem extends KeyBase {
661
+ data: {
662
+ id: number;
663
+ assets: Array<MediaAsset>;
664
+ };
665
+ }
666
+ interface MediaAsset {
667
+ file_data_id: number;
668
+ key: string;
669
+ value: string;
670
+ }
671
+
672
+ /**
673
+ * The response for a playable class index.
674
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
675
+ */
676
+ interface PlayableClassIndexResponse extends ResponseBase {
677
+ classes: Array<NameIdKey>;
678
+ }
679
+ /**
680
+ * The response for playable class media.
681
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
682
+ */
683
+ interface PlayableClassMediaResponse extends ResponseBase {
684
+ assets: Array<MediaAsset$1>;
685
+ id: number;
686
+ }
687
+
688
+ /**
689
+ * The response for a playable class.
690
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft-classic/game-data-apis}
691
+ */
692
+ interface PlayableClassResponse extends ResponseBase, NameId {
693
+ gender_name: Gender;
694
+ power_type: NameIdKey;
695
+ media: Media;
696
+ pvp_talent_slots: {
697
+ href: string;
698
+ };
699
+ playable_races: Array<NameIdKey>;
700
+ }
701
+ interface Media extends KeyBase {
702
+ id: number;
703
+ }
704
+
705
+ /**
706
+ * The playable race index response.
707
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
708
+ */
709
+ interface PlayableRaceIndexResponse extends ResponseBase {
710
+ races: Array<NameIdKey>;
711
+ }
712
+ /**
713
+ * The playable race response.
714
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
715
+ */
716
+ interface PlayableRaceResponse extends ResponseBase, NameId {
717
+ gender_name: Gender;
718
+ faction: Faction;
719
+ is_selectable: boolean;
720
+ is_allied_race: boolean;
721
+ playable_classes: Array<NameIdKey>;
722
+ }
723
+
724
+ /**
725
+ * The response for a power type index.
726
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
727
+ */
728
+ interface PowerTypeIndexResponse extends ResponseBase {
729
+ power_types: Array<NameIdKey>;
730
+ }
731
+ /**
732
+ * The response for a power type.
733
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
734
+ */
735
+ interface PowerTypeResponse extends ResponseBase, NameId {
736
+ }
737
+
738
+ /**
739
+ * The response for a PvP season index.
740
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
741
+ */
742
+ interface PvpSeasonIndexResponse extends ResponseBase {
743
+ seasons: Array<Season>;
744
+ current_season: Season;
745
+ }
746
+ interface Season extends KeyBase {
747
+ id: number;
748
+ }
749
+ /**
750
+ * The response for a PvP season.
751
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
752
+ */
753
+ interface PvpSeasonResponse extends ResponseBase {
754
+ id: number;
755
+ leaderboards: {
756
+ href: string;
757
+ };
758
+ rewards: {
759
+ href: string;
760
+ };
761
+ season_start_timestamp: number;
762
+ season_name?: string;
763
+ }
764
+
765
+ /**
766
+ * The response for a region index.
767
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
768
+ */
769
+ interface RegionIndexResponse extends ResponseBase {
770
+ regions: Array<{
771
+ href: string;
772
+ }>;
773
+ }
774
+ /**
775
+ * The response for a region.
776
+ * @see {@link https://develop.battle.net/documentation/world-of-warcraft/game-data-apis}
777
+ */
778
+ interface RegionResponse extends ResponseBase, NameId {
779
+ tag: string;
780
+ patch_string: string;
781
+ }
782
+
783
+ declare const classicWow: {
784
+ region: (namespace: "dynamic-classic" | "dynamic-classic1x", regionId: number) => {
785
+ path: string;
786
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
787
+ parameters?: Record<string, never> | undefined;
788
+ _responseType?: RegionResponse | undefined;
789
+ };
790
+ regionIndex: (namespace: "dynamic-classic" | "dynamic-classic1x") => {
791
+ path: string;
792
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
793
+ parameters?: Record<string, never> | undefined;
794
+ _responseType?: RegionIndexResponse | undefined;
795
+ };
796
+ realm: (namespace: "dynamic-classic" | "dynamic-classic1x", realmSlug: string) => {
797
+ path: string;
798
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
799
+ parameters?: Record<string, never> | undefined;
800
+ _responseType?: RealmResponse | undefined;
801
+ };
802
+ realmIndex: (namespace: "dynamic-classic" | "dynamic-classic1x") => {
803
+ path: string;
804
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
805
+ parameters?: Record<string, never> | undefined;
806
+ _responseType?: RealmIndexResponse | undefined;
807
+ };
808
+ realmSearch: (namespace: "dynamic-classic" | "dynamic-classic1x", options: RealmSearchParameters) => {
809
+ path: string;
810
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
811
+ parameters?: RealmSearchParameters | undefined;
812
+ _responseType?: _blizzard_api_core.SearchResponse<RealmSearchResponseItem> | undefined;
813
+ };
814
+ pvpSeasonIndex: (namespace: "dynamic-classic" | "dynamic-classic1x") => {
815
+ path: string;
816
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
817
+ parameters?: Record<string, never> | undefined;
818
+ _responseType?: PvpSeasonIndexResponse | undefined;
819
+ };
820
+ pvpSeason: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpSeasonId: number) => {
821
+ path: string;
822
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
823
+ parameters?: Record<string, never> | undefined;
824
+ _responseType?: PvpSeasonResponse | undefined;
825
+ };
826
+ pvpRegionIndex: (namespace: "dynamic-classic" | "dynamic-classic1x") => {
827
+ path: string;
828
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
829
+ parameters?: Record<string, never> | undefined;
830
+ _responseType?: unknown;
831
+ };
832
+ pvpRegionalSeasonIndex: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpRegionId: number) => {
833
+ path: string;
834
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
835
+ parameters?: Record<string, never> | undefined;
836
+ _responseType?: PvpSeasonIndexResponse | undefined;
837
+ };
838
+ pvpRegionalSeason: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpRegionId: number, pvpSeasonId: number) => {
839
+ path: string;
840
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
841
+ parameters?: Record<string, never> | undefined;
842
+ _responseType?: unknown;
843
+ };
844
+ pvpLeaderboardIndex: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpRegionId: number, pvpSeasonId: number) => {
845
+ path: string;
846
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
847
+ parameters?: Record<string, never> | undefined;
848
+ _responseType?: unknown;
849
+ };
850
+ pvpLeaderboard: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpRegionId: number, pvpSeasonId: number, pvpBracket: string) => {
851
+ path: string;
852
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
853
+ parameters?: Record<string, never> | undefined;
854
+ _responseType?: unknown;
855
+ };
856
+ pvpRewardsIndex: (namespace: "dynamic-classic" | "dynamic-classic1x", pvpRegionId: number, pvpSeasonId: number) => {
857
+ path: string;
858
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
859
+ parameters?: Record<string, never> | undefined;
860
+ _responseType?: unknown;
861
+ };
862
+ powerType: (namespace: "static-classic" | "static-classic1x", powerTypeId: number) => {
863
+ path: string;
864
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
865
+ parameters?: Record<string, never> | undefined;
866
+ _responseType?: PowerTypeResponse | undefined;
867
+ };
868
+ powerTypeIndex: (namespace: "static-classic" | "static-classic1x") => {
869
+ path: string;
870
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
871
+ parameters?: Record<string, never> | undefined;
872
+ _responseType?: PowerTypeIndexResponse | undefined;
873
+ };
874
+ playableRace: (namespace: "static-classic" | "static-classic1x", playableRaceId: number) => {
875
+ path: string;
876
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
877
+ parameters?: Record<string, never> | undefined;
878
+ _responseType?: PlayableRaceResponse | undefined;
879
+ };
880
+ playableRaceIndex: (namespace: "static-classic" | "static-classic1x") => {
881
+ path: string;
882
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
883
+ parameters?: Record<string, never> | undefined;
884
+ _responseType?: PlayableRaceIndexResponse | undefined;
885
+ };
886
+ playableClass: (namespace: "static-classic" | "static-classic1x", playableClassId: number) => {
887
+ path: string;
888
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
889
+ parameters?: Record<string, never> | undefined;
890
+ _responseType?: PlayableClassResponse | undefined;
891
+ };
892
+ playableClassIndex: (namespace: "static-classic" | "static-classic1x") => {
893
+ path: string;
894
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
895
+ parameters?: Record<string, never> | undefined;
896
+ _responseType?: PlayableClassIndexResponse | undefined;
897
+ };
898
+ playableClassMedia: (namespace: "static-classic" | "static-classic1x", playableClassId: number) => {
899
+ path: string;
900
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
901
+ parameters?: Record<string, never> | undefined;
902
+ _responseType?: PlayableClassMediaResponse | undefined;
903
+ };
904
+ mediaSearch: (namespace: "static-classic" | "static-classic1x", options: MediaSearchParameters) => {
905
+ path: string;
906
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
907
+ parameters?: MediaSearchParameters | undefined;
908
+ _responseType?: _blizzard_api_core.SearchResponse<MediaSearchResponseItem> | undefined;
909
+ };
910
+ itemClassIndex: (namespace: "static-classic" | "static-classic1x") => {
911
+ path: string;
912
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
913
+ parameters?: Record<string, never> | undefined;
914
+ _responseType?: ItemClassIndexResponse | undefined;
915
+ };
916
+ itemClass: (namespace: "static-classic" | "static-classic1x", itemClassId: number) => {
917
+ path: string;
918
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
919
+ parameters?: Record<string, never> | undefined;
920
+ _responseType?: ItemClassResponse | undefined;
921
+ };
922
+ itemSubClass: (namespace: "static-classic" | "static-classic1x", itemClassId: number, itemSubclassId: number) => {
923
+ path: string;
924
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
925
+ parameters?: Record<string, never> | undefined;
926
+ _responseType?: ItemSubClassResponse | undefined;
927
+ };
928
+ item: (namespace: "static-classic" | "static-classic1x", itemId: number) => {
929
+ path: string;
930
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
931
+ parameters?: Record<string, never> | undefined;
932
+ _responseType?: ItemResponse | undefined;
933
+ };
934
+ itemMedia: (namespace: "static-classic" | "static-classic1x", itemId: number) => {
935
+ path: string;
936
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
937
+ parameters?: Record<string, never> | undefined;
938
+ _responseType?: ItemMediaResponse | undefined;
939
+ };
940
+ itemSearch: (namespace: "static-classic" | "static-classic1x", options: ItemSearchParameters) => {
941
+ path: string;
942
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
943
+ parameters?: Omit<ItemSearchParameters, "name" | "locale"> | undefined;
944
+ _responseType?: _blizzard_api_core.SearchResponse<ItemSearchResponseItem> | undefined;
945
+ };
946
+ guildCrestComponentsIndex: (namespace: "static-classic" | "static-classic1x") => {
947
+ path: string;
948
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
949
+ parameters?: Record<string, never> | undefined;
950
+ _responseType?: GuildCrestComponentsIndexResponse | undefined;
951
+ };
952
+ guildCrestBorder: (namespace: "static-classic" | "static-classic1x", borderId: number) => {
953
+ path: string;
954
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
955
+ parameters?: Record<string, never> | undefined;
956
+ _responseType?: GuildCrestBorderEmblemResponse | undefined;
957
+ };
958
+ guildCrestEmblem: (namespace: "static-classic" | "static-classic1x", emblemId: number) => {
959
+ path: string;
960
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
961
+ parameters?: Record<string, never> | undefined;
962
+ _responseType?: GuildCrestBorderEmblemResponse | undefined;
963
+ };
964
+ creature: (namespace: "static-classic" | "static-classic1x", creatureId: number) => {
965
+ path: string;
966
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
967
+ parameters?: Record<string, never> | undefined;
968
+ _responseType?: CreatureResponse | undefined;
969
+ };
970
+ creatureDisplayMedia: (namespace: "static-classic" | "static-classic1x", creatureDisplayId: number) => {
971
+ path: string;
972
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
973
+ parameters?: Record<string, never> | undefined;
974
+ _responseType?: CreatureDisplayMediaResponse | undefined;
975
+ };
976
+ creatureFamily: (namespace: "static-classic" | "static-classic1x", creatureFamilyId: number) => {
977
+ path: string;
978
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
979
+ parameters?: Record<string, never> | undefined;
980
+ _responseType?: CreatureFamilyResponse | undefined;
981
+ };
982
+ creatureFamilyIndex: (namespace: "static-classic" | "static-classic1x") => {
983
+ path: string;
984
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
985
+ parameters?: Record<string, never> | undefined;
986
+ _responseType?: CreatureFamilyIndexResponse | undefined;
987
+ };
988
+ creatureFamilyMedia: (namespace: "static-classic" | "static-classic1x", creatureFamilyId: number) => {
989
+ path: string;
990
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
991
+ parameters?: Record<string, never> | undefined;
992
+ _responseType?: CreatureFamilyMediaResponse | undefined;
993
+ };
994
+ creatureType: (namespace: "static-classic" | "static-classic1x", creatureTypeId: number) => {
995
+ path: string;
996
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
997
+ parameters?: Record<string, never> | undefined;
998
+ _responseType?: CreatureTypeResponse | undefined;
999
+ };
1000
+ creatureTypeIndex: (namespace: "static-classic" | "static-classic1x") => {
1001
+ path: string;
1002
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1003
+ parameters?: Record<string, never> | undefined;
1004
+ _responseType?: CreatureTypeIndexResponse | undefined;
1005
+ };
1006
+ creatureSearch: (namespace: "static-classic" | "static-classic1x", options: CreatureSearchParameters) => {
1007
+ path: string;
1008
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1009
+ parameters?: Omit<CreatureSearchParameters, "name" | "locale"> | undefined;
1010
+ _responseType?: _blizzard_api_core.SearchResponse<CreatureSearchResponseItem> | undefined;
1011
+ };
1012
+ connectedRealmIndex: (namespace: "dynamic-classic" | "dynamic-classic1x") => {
1013
+ path: string;
1014
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1015
+ parameters?: Record<string, never> | undefined;
1016
+ _responseType?: ConnectedRealmIndexResponse | undefined;
1017
+ };
1018
+ connectedRealm: (namespace: "dynamic-classic" | "dynamic-classic1x", connectedRealmId: number) => {
1019
+ path: string;
1020
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1021
+ parameters?: Record<string, never> | undefined;
1022
+ _responseType?: ConnectedRealmResponse | undefined;
1023
+ };
1024
+ connectedRealmSearch: (namespace: "dynamic-classic" | "dynamic-classic1x", options: ConnectedRealmSearchParameters) => {
1025
+ path: string;
1026
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1027
+ parameters?: ConnectedRealmSearchParameters | undefined;
1028
+ _responseType?: _blizzard_api_core.SearchResponse<ConnectedRealmSearchResponseItem> | undefined;
1029
+ };
1030
+ auctionHouseIndex: (namespace: "dynamic-classic" | "dynamic-classic1x", connectedRealmId: number) => {
1031
+ path: string;
1032
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1033
+ parameters?: Record<string, never> | undefined;
1034
+ _responseType?: AuctionHouseIndexResponse | undefined;
1035
+ };
1036
+ auctions: (namespace: "dynamic-classic" | "dynamic-classic1x", connectedRealmId: number, auctionHouseId: number) => {
1037
+ path: string;
1038
+ namespace?: _blizzard_api_core.BlizzardNamespaces | undefined;
1039
+ parameters?: Record<string, never> | undefined;
1040
+ _responseType?: AuctionsResponse | undefined;
1041
+ };
1042
+ };
1043
+
1044
+ export { type AuctionHouseIndexResponse, type AuctionsResponse, type ConnectedRealmIndexResponse, type ConnectedRealmResponse, type ConnectedRealmSearchParameters, type ConnectedRealmSearchResponseItem, type CreatureDisplayMediaResponse, type CreatureFamilyIndexResponse, type CreatureFamilyMediaResponse, type CreatureFamilyResponse, type CreatureResponse, type CreatureSearchParameters, type CreatureSearchResponseItem, type CreatureTypeIndexResponse, type CreatureTypeResponse, type GuildCrestBorderEmblemResponse, type GuildCrestComponentsIndexResponse, type ItemClassIndexResponse, type ItemClassResponse, type ItemMediaResponse, type ItemResponse, type ItemSearchParameters, type ItemSearchResponseItem, type ItemSubClassResponse, type MediaSearchParameters, type MediaSearchResponseItem, type PlayableClassIndexResponse, type PlayableClassMediaResponse, type PlayableClassResponse, type PlayableRaceIndexResponse, type PlayableRaceResponse, type PowerTypeIndexResponse, type PowerTypeResponse, type PvpSeasonIndexResponse, type PvpSeasonResponse, type RealmCategory, type RealmIndexResponse, type RealmResponse, type RealmSearchParameters, type RealmSearchResponseItem, type RealmTimezone, type RealmType, type RealmTypeCapitalized, type RegionIndexResponse, type RegionResponse, type WithoutUnderscore, classicWow };