@kenzuya/tmdb-ts 2.0.4 → 2.0.8

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
@@ -1,79 +1,3 @@
1
- declare const AvailableLanguages: readonly ["af-ZA", "ar-AE", "ar-BH", "ar-EG", "ar-IQ", "ar-JO", "ar-LY", "ar-MA", "ar-QA", "ar-SA", "ar-TD", "ar-YE", "be-BY", "bg-BG", "bn-BD", "br-FR", "ca-AD", "ca-ES", "ch-GU", "cs-CZ", "cy-GB", "da-DK", "de-AT", "de-CH", "de-DE", "el-CY", "el-GR", "en-AG", "en-AU", "en-BB", "en-BZ", "en-CA", "en-CM", "en-GB", "en-GG", "en-GH", "en-GI", "en-GY", "en-IE", "en-JM", "en-KE", "en-LC", "en-MW", "en-NZ", "en-PG", "en-TC", "en-US", "en-ZM", "en-ZW", "eo-EO", "es-AR", "es-CL", "es-DO", "es-EC", "es-ES", "es-GQ", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PY", "es-SV", "es-UY", "et-EE", "eu-ES", "fa-IR", "fi-FI", "fr-BF", "fr-CA", "fr-CD", "fr-CI", "fr-FR", "fr-GF", "fr-GP", "fr-MC", "fr-ML", "fr-MU", "fr-PF", "ga-IE", "gd-GB", "gl-ES", "he-IL", "hi-IN", "hr-HR", "hu-HU", "id-ID", "it-IT", "it-VA", "ja-JP", "ka-GE", "kk-KZ", "kn-IN", "ko-KR", "ky-KG", "lt-LT", "lv-LV", "ml-IN", "mr-IN", "ms-MY", "ms-SG", "nb-NO", "nl-BE", "nl-NL", "no-NO", "pa-IN", "pl-PL", "pt-AO", "pt-BR", "pt-MZ", "pt-PT", "ro-MD", "ro-RO", "ru-RU", "si-LK", "sk-SK", "sl-SI", "sq-AL", "sq-XK", "sr-ME", "sr-RS", "sv-SE", "sw-TZ", "ta-IN", "te-IN", "th-TH", "tl-PH", "tr-TR", "uk-UA", "ur-PK", "vi-VN", "zh-CN", "zh-HK", "zh-SG", "zh-TW", "zu-ZA"];
2
- type AvailableLanguage = (typeof AvailableLanguages)[number];
3
- interface LanguageOption {
4
- language?: AvailableLanguage;
5
- }
6
- interface WatchRegionOption {
7
- watch_region?: CountryCode;
8
- }
9
- interface RegionOption {
10
- region?: string;
11
- }
12
- interface TimezoneOption {
13
- timezone?: string;
14
- }
15
- interface PageOption {
16
- page?: number;
17
- }
18
- interface ChangeOption extends PageOption {
19
- start_date?: string;
20
- end_date?: string;
21
- }
22
- type AppendToResponseMovieKey = 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'lists' | 'release_dates' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'keywords';
23
- type AppendToResponseTvKey = 'content_ratings' | 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'aggregate_credits' | 'episode_groups' | 'screened_theatrically' | 'keywords';
24
- type AppendToResponsePersonKey = 'images' | 'changes' | 'movie_credits' | 'tv_credits' | 'combined_credits' | 'external_ids' | 'tagged_images' | 'translations';
25
- type AppendToResponseTvEpisodeKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'translations';
26
- type AppendToResponseTvSeasonKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'aggregate_credits' | 'translations';
27
- type AppendToResponseAllKeys = AppendToResponseTvKey | AppendToResponseMovieKey | AppendToResponseTvEpisodeKey | AppendToResponseTvSeasonKey | AppendToResponsePersonKey;
28
- type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person' | 'tvSeason' | 'tvEpisode';
29
- type AppendToResponse<K, T extends AppendToResponseAllKeys[] | undefined, Media extends AppendToResponseMediaType> = K & (T extends undefined ? object : T extends Array<unknown> ? ('credits' extends T[number] ? {
30
- credits: Media extends 'tvEpisode' ? TvEpisodeCredit : Omit<Credits, 'id'>;
31
- } : object) & ('videos' extends T[number] ? {
32
- videos: Omit<Videos, 'id'>;
33
- } : object) & ('images' extends T[number] ? {
34
- images: Omit<Media extends 'person' ? PeopleImages : Images, 'id'>;
35
- } : object) & ('recommendations' extends T[number] ? {
36
- recommendations: Recommendations;
37
- } : object) & ('reviews' extends T[number] ? {
38
- reviews: Omit<Reviews, 'id'>;
39
- } : object) & ('reviews' extends T[number] ? {
40
- reviews: Omit<Translations, 'id'>;
41
- } : object) & ('changes' extends T[number] ? {
42
- changes: Changes<Media extends 'person' ? PersonChangeValue : Media extends 'movie' ? MovieChangeValue : Media extends 'tvShow' ? TvShowChangeValue : Media extends 'tvSeason' ? TvSeasonChangeValue : TvEpisodeChangeValue>;
43
- } : object) & ('keywords' extends T[number] ? {
44
- keywords: Omit<Keywords, 'id'>;
45
- } : object) & ('lists' extends T[number] ? {
46
- lists: Omit<MovieLists, 'id'>;
47
- } : object) & ('release_dates' extends T[number] ? {
48
- release_dates: Omit<ReleaseDates, 'id'>;
49
- } : object) & ('alternative_titles' extends T[number] ? {
50
- alternative_titles: Omit<AlternativeTitles, 'id'>;
51
- } : object) & ('external_ids' extends T[number] ? {
52
- external_ids: Omit<ExternalIds, 'id'>;
53
- } : object) & ('translations' extends T[number] ? {
54
- translations: Omit<Media extends 'person' ? PersonTranslations : Media extends 'tvEpisode' ? TvEpisodeTranslations : Translations, 'id'>;
55
- } : object) & ('watch/providers' extends T[number] ? {
56
- 'watch/providers': Omit<WatchProviders, 'id'>;
57
- } : object) & ('aggregate_credits' extends T[number] ? {
58
- aggregate_credits: Omit<Credits, 'id'>;
59
- } : object) & ('episode_groups' extends T[number] ? {
60
- episode_groups: Omit<EpisodeGroups, 'id'>;
61
- } : object) & ('screened_theatrically' extends T[number] ? {
62
- screened_theatrically: Omit<ScreenedTheatrically, 'id'>;
63
- } : object) & ('similar' extends T[number] ? {
64
- similar: Media extends 'movie' ? SimilarMovies : Media extends 'tvShow' ? SimilarTvShows : unknown;
65
- } : object) & ('content_ratings' extends T[number] ? {
66
- content_ratings: Omit<ContentRatings, 'id'>;
67
- } : object) & ('movie_credits' extends T[number] ? {
68
- movie_credits: Omit<PersonMovieCredit, 'id'>;
69
- } : object) & ('tv_credits' extends T[number] ? {
70
- tv_credits: Omit<PersonTvShowCredit, 'id'>;
71
- } : object) & ('combined_credits' extends T[number] ? {
72
- combined_credits: Omit<PersonCombinedCredits, 'id'>;
73
- } : object) & ('tagged_images' extends T[number] ? {
74
- tagged_images: TaggedImages;
75
- } : object) : never);
76
-
77
1
  interface Certification {
78
2
  certification: string;
79
3
  meaning: string;
@@ -135,140 +59,47 @@ interface Certifications {
135
59
  };
136
60
  }
137
61
 
138
- interface CreditSeason {
139
- air_date?: string;
140
- poster_path?: string;
141
- season_number?: number;
142
- }
143
- interface Media {
144
- id?: number;
145
- name?: string;
146
- first_air_date?: string;
147
- vote_count?: number;
148
- overview?: string;
149
- vote_average?: number;
150
- backdrop_path?: string;
151
- genre_ids?: number[];
152
- media_type: string;
153
- adult: boolean;
154
- original_name?: string;
155
- origin_country?: string[];
156
- poster_path?: string;
157
- original_language?: string;
158
- popularity?: number;
159
- character?: string;
160
- episodes?: string[];
161
- seasons?: CreditSeason[];
162
- }
163
- interface CreditResponse {
164
- credit_type?: string;
165
- department?: string;
166
- job?: string;
167
- media?: Media;
168
- media_type?: string;
169
- id?: string;
170
- person?: Person;
171
- }
172
- interface Title {
173
- iso_3166_1: CountryCode;
174
- title: string;
175
- type: string;
176
- }
177
- interface AlternativeTitles {
178
- id: number;
179
- titles: Title[];
180
- }
181
- interface Cast$1 {
182
- adult: boolean;
183
- gender: number;
62
+ interface MediaChange {
184
63
  id: number;
185
- known_for_department: string;
186
- name: string;
187
- original_name: string;
188
- popularity: number;
189
- profile_path: string;
190
- cast_id: number;
191
- character: string;
192
- credit_id: string;
193
- order: number;
64
+ adult?: boolean;
194
65
  }
195
- interface Crew$1 {
196
- adult: boolean;
197
- gender: number;
198
- id: number;
199
- known_for_department: string;
200
- name: string;
201
- original_name: string;
202
- popularity: number;
203
- profile_path: string;
204
- credit_id: string;
205
- department: string;
206
- job: string;
66
+ interface MediaChanges {
67
+ results: MediaChange[];
68
+ page: number;
69
+ total_pages: number;
70
+ total_results: number;
207
71
  }
208
- interface Credits {
209
- id: number;
210
- cast: Cast$1[];
211
- crew: Crew$1[];
72
+ interface Changes<T> {
73
+ changes: Change<T>[];
212
74
  }
213
- interface ImageCollection {
214
- id: number;
215
- backdrops: Image[];
216
- posters: Image[];
75
+ interface Change<T> {
76
+ key: string;
77
+ items: ChangeItem<T>[];
217
78
  }
218
- interface Video {
79
+ interface ChangeItem<T> {
219
80
  id: string;
81
+ action: string;
82
+ time: string;
83
+ value: T;
220
84
  iso_639_1: string;
221
- iso_3166_1: CountryCode;
222
- key: string;
223
- name: string;
224
- site: string;
225
- size: number;
226
- type: string;
227
- }
228
- interface Videos {
229
- id: number;
230
- results: Video[];
231
- }
232
- interface AggregateCredits {
233
- id: number;
234
- cast: AggregateCast[];
235
- crew: AggregateCrew[];
236
- }
237
- interface CastRole {
238
- credit_id: string;
239
- character: string;
240
- episode_count: number;
85
+ original_value: T;
241
86
  }
242
- interface AggregateCast {
243
- adult: boolean;
244
- gender: number;
87
+
88
+ interface Collection {
245
89
  id: number;
246
- known_for_department: string;
247
90
  name: string;
248
- original_name: string;
249
- popularity: number;
250
- profile_path: string;
251
- roles: CastRole[];
252
- total_episode_count: number;
253
- order: number;
91
+ overview: string;
92
+ poster_path: string;
93
+ backdrop_path: string;
254
94
  }
255
- interface CrewJob {
256
- credit_id: string;
257
- job: string;
258
- episode_count: number;
95
+ interface CollectionDetails extends Collection {
96
+ parts: Movie[];
259
97
  }
260
- interface AggregateCrew {
261
- adult: boolean;
262
- gender: number;
263
- id: number;
264
- known_for_department: string;
265
- name: string;
266
- original_name: string;
267
- popularity: number;
268
- profile_path: string;
269
- jobs: CrewJob[];
270
- department: string;
271
- total_episode_count: number;
98
+ interface CollectionImageOptions extends LanguageOption {
99
+ /**
100
+ * a list of ISO-639-1 values to query
101
+ */
102
+ include_image_language?: string[];
272
103
  }
273
104
 
274
105
  interface CompanyDetails {
@@ -299,19 +130,6 @@ interface CompanyImages {
299
130
  logos: Image[];
300
131
  }
301
132
 
302
- interface NetworkDetails {
303
- headquarters: string;
304
- homepage: string;
305
- id: number;
306
- logo_path: string;
307
- name: string;
308
- origin_country: string;
309
- }
310
- interface NetworkImages {
311
- id: number;
312
- logos: Image[];
313
- }
314
-
315
133
  interface ImageConfiguration {
316
134
  base_url: string;
317
135
  secure_base_url: string;
@@ -460,1101 +278,1283 @@ declare const ChangeKey: {
460
278
  };
461
279
  type ChangeKeys = (typeof ChangeKey)[keyof typeof ChangeKey];
462
280
 
463
- interface MediaChange {
464
- id: number;
465
- adult?: boolean;
466
- }
467
- interface MediaChanges {
468
- results: MediaChange[];
469
- page: number;
470
- total_pages: number;
471
- total_results: number;
472
- }
473
- interface Changes<T> {
474
- changes: Change<T>[];
281
+ interface CreditSeason {
282
+ air_date?: string;
283
+ poster_path?: string;
284
+ season_number?: number;
475
285
  }
476
- interface Change<T> {
477
- key: string;
478
- items: ChangeItem<T>[];
479
- }
480
- interface ChangeItem<T> {
481
- id: string;
482
- action: string;
483
- time: string;
484
- value: T;
485
- iso_639_1: string;
486
- original_value: T;
487
- }
488
-
489
- interface BelongsToCollection {
490
- id: number;
491
- name: string;
492
- poster_path: string;
493
- backdrop_path: string;
494
- }
495
- interface MovieDetails {
286
+ interface Media {
287
+ id?: number;
288
+ name?: string;
289
+ first_air_date?: string;
290
+ vote_count?: number;
291
+ overview?: string;
292
+ vote_average?: number;
293
+ backdrop_path?: string;
294
+ genre_ids?: number[];
295
+ media_type: string;
496
296
  adult: boolean;
497
- backdrop_path: string;
498
- belongs_to_collection?: BelongsToCollection;
499
- budget: number;
500
- genres: Genre[];
501
- homepage: string;
502
- id: number;
503
- imdb_id: string | null;
504
- original_language: string;
505
- original_title: string;
506
- overview: string;
507
- popularity: number;
297
+ original_name?: string;
298
+ origin_country?: string[];
508
299
  poster_path?: string;
509
- production_companies: ProductionCompany[];
510
- production_countries: ProductionCountry[];
511
- release_date: string;
512
- revenue: number;
513
- runtime: number;
514
- spoken_languages: SpokenLanguage[];
515
- status: string;
516
- tagline: string;
517
- title: string;
518
- video: boolean;
519
- vote_average: number;
520
- vote_count: number;
521
- }
522
- declare enum ReleaseDateType {
523
- Premiere = 1,
524
- 'Theatrical (limited)' = 2,
525
- Theatrical = 3,
526
- Digital = 4,
527
- Physical = 5,
528
- TV = 6
300
+ original_language?: string;
301
+ popularity?: number;
302
+ character?: string;
303
+ episodes?: string[];
304
+ seasons?: CreditSeason[];
529
305
  }
530
- interface ReleaseDate {
531
- certification: string;
532
- descriptors: string[];
533
- iso_639_1: string;
534
- release_date: string;
535
- type: ReleaseDateType;
536
- note: string;
306
+ interface CreditResponse {
307
+ credit_type?: string;
308
+ department?: string;
309
+ job?: string;
310
+ media?: Media;
311
+ media_type?: string;
312
+ id?: string;
313
+ person?: Person;
537
314
  }
538
- interface ReleaseDateResult {
315
+ interface Title {
539
316
  iso_3166_1: CountryCode;
540
- release_dates: ReleaseDate[];
317
+ title: string;
318
+ type: string;
541
319
  }
542
- interface ReleaseDates {
320
+ interface AlternativeTitles {
543
321
  id: number;
544
- results: ReleaseDateResult[];
545
- }
546
- interface SimilarMovies {
547
- page: number;
548
- results: Movie[];
549
- total_pages: number;
550
- total_results: number;
322
+ titles: Title[];
551
323
  }
552
- interface MovieList {
553
- description: string;
554
- favorite_count: number;
324
+ interface Cast$1 {
325
+ adult: boolean;
326
+ gender: number;
555
327
  id: number;
556
- item_count: number;
557
- iso_639_1: string;
558
- list_type: string;
328
+ known_for_department: string;
559
329
  name: string;
560
- poster_path: string;
561
- }
562
- interface MovieLists {
563
- id: number;
564
- page: number;
565
- results: MovieList[];
566
- total_pages: number;
567
- total_results: number;
330
+ original_name: string;
331
+ popularity: number;
332
+ profile_path: string;
333
+ cast_id: number;
334
+ character: string;
335
+ credit_id: string;
336
+ order: number;
568
337
  }
569
- interface LatestMovie {
338
+ interface Crew$1 {
570
339
  adult: boolean;
571
- backdrop_path?: string;
572
- belongs_to_collection?: BelongsToCollection;
573
- budget: number;
574
- genres: Genre[];
575
- homepage: string;
340
+ gender: number;
576
341
  id: number;
577
- imdb_id: string | null;
578
- original_language: string;
579
- original_title: string;
580
- overview: string;
342
+ known_for_department: string;
343
+ name: string;
344
+ original_name: string;
581
345
  popularity: number;
582
- poster_path: string;
583
- production_companies: ProductionCompany[];
584
- production_countries: ProductionCountry[];
585
- release_date: string;
586
- revenue: number;
587
- runtime: number;
588
- spoken_languages: SpokenLanguage[];
589
- status: string;
590
- tagline: string;
591
- title: string;
592
- video: boolean;
593
- vote_average: number;
594
- vote_count: number;
346
+ profile_path: string;
347
+ credit_id: string;
348
+ department: string;
349
+ job: string;
595
350
  }
596
- interface Dates {
597
- maximum: string;
598
- minimum: string;
351
+ interface Credits {
352
+ id: number;
353
+ cast: Cast$1[];
354
+ crew: Crew$1[];
599
355
  }
600
- interface MoviesPlayingNow {
601
- page: number;
602
- results: Movie[];
603
- dates: Dates;
604
- total_pages: number;
605
- total_results: number;
356
+ interface ImageCollection {
357
+ id: number;
358
+ backdrops: Image[];
359
+ posters: Image[];
606
360
  }
607
- interface PopularMovies {
608
- page: number;
609
- results: Movie[];
610
- total_results: number;
611
- total_pages: number;
361
+ interface Video {
362
+ id: string;
363
+ iso_639_1: string;
364
+ iso_3166_1: CountryCode;
365
+ key: string;
366
+ name: string;
367
+ site: string;
368
+ size: number;
369
+ type: string;
612
370
  }
613
- interface TopRatedMovies {
614
- page: number;
615
- results: Movie[];
616
- total_results: number;
617
- total_pages: number;
371
+ interface Videos {
372
+ id: number;
373
+ results: Video[];
618
374
  }
619
- interface UpcomingMovies {
620
- page: number;
621
- results: Movie[];
622
- total_results: number;
623
- total_pages: number;
375
+ interface AggregateCredits {
376
+ id: number;
377
+ cast: AggregateCast[];
378
+ crew: AggregateCrew[];
624
379
  }
625
- type MovieChangeValue = string | {
626
- person_id: number;
627
- character: string;
628
- order: number;
629
- cast_id: number;
380
+ interface CastRole {
630
381
  credit_id: string;
631
- } | unknown;
632
-
633
- interface Search<T> {
634
- page: number;
635
- results: T[];
636
- total_pages: number;
637
- total_results: number;
382
+ character: string;
383
+ episode_count: number;
638
384
  }
639
- type MultiSearchResult = MovieWithMediaType | TVWithMediaType | PersonWithMediaType;
640
-
641
- interface CreatedBy {
385
+ interface AggregateCast {
386
+ adult: boolean;
387
+ gender: number;
642
388
  id: number;
643
- credit_id: string;
389
+ known_for_department: string;
644
390
  name: string;
645
- gender: number;
391
+ original_name: string;
392
+ popularity: number;
646
393
  profile_path: string;
394
+ roles: CastRole[];
395
+ total_episode_count: number;
396
+ order: number;
647
397
  }
648
- interface NextEpisodeToAir {
649
- id: number;
650
- name: string;
651
- overview: string;
652
- vote_average: number;
653
- vote_count: number;
654
- air_date: string;
655
- episode_number: number;
656
- production_code: string;
657
- runtime: number;
658
- season_number: number;
659
- show_id: number;
660
- still_path: string;
398
+ interface CrewJob {
399
+ credit_id: string;
400
+ job: string;
401
+ episode_count: number;
661
402
  }
662
- interface LastEpisodeToAir {
663
- air_date: string;
664
- episode_number: number;
403
+ interface AggregateCrew {
404
+ adult: boolean;
405
+ gender: number;
665
406
  id: number;
407
+ known_for_department: string;
666
408
  name: string;
667
- overview: string;
668
- production_code: string;
669
- season_number: number;
670
- still_path: string;
671
- vote_average: number;
672
- vote_count: number;
409
+ original_name: string;
410
+ popularity: number;
411
+ profile_path: string;
412
+ jobs: CrewJob[];
413
+ department: string;
414
+ total_episode_count: number;
673
415
  }
674
- interface Season {
675
- air_date: string;
676
- episode_count: number;
416
+
417
+ type MonetizationType = 'flatrate' | 'free' | 'ads' | 'rent' | 'buy';
418
+ interface DiscoverQueryOptions {
419
+ language?: string;
420
+ sort_by?: SortOption;
421
+ page?: number;
422
+ 'vote_average.gte'?: number;
423
+ 'vote_count.gte'?: number;
424
+ 'vote_count.lte'?: number;
425
+ 'vote_average.lte'?: number;
426
+ with_watch_providers?: string;
427
+ watch_region?: string;
428
+ without_companies?: string;
429
+ with_watch_monetization_types?: MonetizationType;
430
+ 'with_runtime.gte'?: number;
431
+ 'with_runtime.lte'?: number;
432
+ with_genres?: string;
433
+ without_genres?: string;
434
+ with_original_language?: string;
435
+ without_keywords?: string;
436
+ with_keywords?: string;
437
+ with_companies?: string;
438
+ include_adult?: boolean;
439
+ }
440
+ interface MovieQueryOptions extends DiscoverQueryOptions {
441
+ region?: string;
442
+ certification_country?: string;
443
+ certification?: string;
444
+ 'certification.lte'?: string;
445
+ 'certification.gte'?: string;
446
+ include_adult?: boolean;
447
+ include_video?: boolean;
448
+ primary_release_year?: number;
449
+ 'primary_release_date.gte'?: string;
450
+ 'primary_release_date.lte'?: string;
451
+ 'release_date.gte'?: string;
452
+ 'release_date.lte'?: string;
453
+ with_release_type?: string;
454
+ year?: number;
455
+ with_cast?: string;
456
+ with_crew?: string;
457
+ with_people?: string;
458
+ }
459
+ interface TvShowQueryOptions extends DiscoverQueryOptions {
460
+ 'air_date.gte'?: string;
461
+ 'air_date.lte'?: string;
462
+ 'first_air_date.gte'?: string;
463
+ 'first_air_date.lte'?: string;
464
+ first_air_date_year?: number;
465
+ timezone?: string;
466
+ with_networks?: string;
467
+ include_null_first_air_dates?: boolean;
468
+ screened_theatrically?: boolean;
469
+ with_status?: string;
470
+ with_type?: string;
471
+ }
472
+ type SortOption = 'first_air_date.asc' | 'first_air_date.desc' | 'popularity.asc' | 'popularity.desc' | 'release_date.asc' | 'release_date.desc' | 'revenue.asc' | 'revenue.desc' | 'primary_release_date.asc' | 'primary_release_date.desc' | 'original_title.asc' | 'original_title.desc' | 'vote_average.asc' | 'vote_average.desc' | 'vote_count.asc' | 'vote_count.desc';
473
+ interface MovieDiscoverResult {
474
+ page: number;
475
+ results: Movie[];
476
+ total_results: number;
477
+ total_pages: number;
478
+ }
479
+ interface TvShowDiscoverResult {
480
+ page: number;
481
+ results: TV[];
482
+ total_results: number;
483
+ total_pages: number;
484
+ }
485
+
486
+ type ExternalSource = 'imdb_id' | 'freebase_mid' | 'freebase_id' | 'tvdb_id' | 'tvrage_id' | 'facebook_id' | 'twitter_id' | 'instagram_id';
487
+ interface ExternalIdOptions {
488
+ external_source: ExternalSource;
489
+ language?: string;
490
+ }
491
+ type MediaTagged<T> = T & {
492
+ media_type: MediaType;
493
+ };
494
+ interface FindResult {
495
+ movie_results: MediaTagged<Movie>[];
496
+ person_results: MediaTagged<Person>[];
497
+ tv_results: MediaTagged<TV>[];
498
+ tv_episode_results: MediaTagged<Episode>[];
499
+ tv_season_results: MediaTagged<Season & {
500
+ show_id: string;
501
+ }>[];
502
+ }
503
+
504
+ declare const AvailableLanguages: readonly ["af-ZA", "ar-AE", "ar-BH", "ar-EG", "ar-IQ", "ar-JO", "ar-LY", "ar-MA", "ar-QA", "ar-SA", "ar-TD", "ar-YE", "be-BY", "bg-BG", "bn-BD", "br-FR", "ca-AD", "ca-ES", "ch-GU", "cs-CZ", "cy-GB", "da-DK", "de-AT", "de-CH", "de-DE", "el-CY", "el-GR", "en-AG", "en-AU", "en-BB", "en-BZ", "en-CA", "en-CM", "en-GB", "en-GG", "en-GH", "en-GI", "en-GY", "en-IE", "en-JM", "en-KE", "en-LC", "en-MW", "en-NZ", "en-PG", "en-TC", "en-US", "en-ZM", "en-ZW", "eo-EO", "es-AR", "es-CL", "es-DO", "es-EC", "es-ES", "es-GQ", "es-GT", "es-HN", "es-MX", "es-NI", "es-PA", "es-PE", "es-PY", "es-SV", "es-UY", "et-EE", "eu-ES", "fa-IR", "fi-FI", "fr-BF", "fr-CA", "fr-CD", "fr-CI", "fr-FR", "fr-GF", "fr-GP", "fr-MC", "fr-ML", "fr-MU", "fr-PF", "ga-IE", "gd-GB", "gl-ES", "he-IL", "hi-IN", "hr-HR", "hu-HU", "id-ID", "it-IT", "it-VA", "ja-JP", "ka-GE", "kk-KZ", "kn-IN", "ko-KR", "ky-KG", "lt-LT", "lv-LV", "ml-IN", "mr-IN", "ms-MY", "ms-SG", "nb-NO", "nl-BE", "nl-NL", "no-NO", "pa-IN", "pl-PL", "pt-AO", "pt-BR", "pt-MZ", "pt-PT", "ro-MD", "ro-RO", "ru-RU", "si-LK", "sk-SK", "sl-SI", "sq-AL", "sq-XK", "sr-ME", "sr-RS", "sv-SE", "sw-TZ", "ta-IN", "te-IN", "th-TH", "tl-PH", "tr-TR", "uk-UA", "ur-PK", "vi-VN", "zh-CN", "zh-HK", "zh-SG", "zh-TW", "zu-ZA"];
505
+ type AvailableLanguage = (typeof AvailableLanguages)[number];
506
+ interface LanguageOption {
507
+ language?: AvailableLanguage;
508
+ }
509
+ interface WatchRegionOption {
510
+ watch_region?: CountryCode;
511
+ }
512
+ interface RegionOption {
513
+ region?: string;
514
+ }
515
+ interface TimezoneOption {
516
+ timezone?: string;
517
+ }
518
+ interface PageOption {
519
+ page?: number;
520
+ }
521
+ interface ChangeOption extends PageOption {
522
+ start_date?: string;
523
+ end_date?: string;
524
+ }
525
+ type AppendToResponseMovieKey = 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'lists' | 'release_dates' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'keywords';
526
+ type AppendToResponseTvKey = 'content_ratings' | 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'aggregate_credits' | 'episode_groups' | 'screened_theatrically' | 'keywords';
527
+ type AppendToResponsePersonKey = 'images' | 'changes' | 'movie_credits' | 'tv_credits' | 'combined_credits' | 'external_ids' | 'tagged_images' | 'translations';
528
+ type AppendToResponseTvEpisodeKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'translations';
529
+ type AppendToResponseTvSeasonKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'aggregate_credits' | 'translations';
530
+ type AppendToResponseAllKeys = AppendToResponseTvKey | AppendToResponseMovieKey | AppendToResponseTvEpisodeKey | AppendToResponseTvSeasonKey | AppendToResponsePersonKey;
531
+ type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person' | 'tvSeason' | 'tvEpisode';
532
+ type AppendToResponse<K, T extends AppendToResponseAllKeys[] | undefined, Media extends AppendToResponseMediaType> = K & (T extends undefined ? object : T extends Array<unknown> ? ('credits' extends T[number] ? {
533
+ credits: Media extends 'tvEpisode' ? TvEpisodeCredit : Omit<Credits, 'id'>;
534
+ } : object) & ('videos' extends T[number] ? {
535
+ videos: Omit<Videos, 'id'>;
536
+ } : object) & ('images' extends T[number] ? {
537
+ images: Omit<Media extends 'person' ? PeopleImages : Images, 'id'>;
538
+ } : object) & ('recommendations' extends T[number] ? {
539
+ recommendations: Recommendations;
540
+ } : object) & ('reviews' extends T[number] ? {
541
+ reviews: Omit<Reviews, 'id'>;
542
+ } : object) & ('reviews' extends T[number] ? {
543
+ reviews: Omit<Translations, 'id'>;
544
+ } : object) & ('changes' extends T[number] ? {
545
+ changes: Changes<Media extends 'person' ? PersonChangeValue : Media extends 'movie' ? MovieChangeValue : Media extends 'tvShow' ? TvShowChangeValue : Media extends 'tvSeason' ? TvSeasonChangeValue : TvEpisodeChangeValue>;
546
+ } : object) & ('keywords' extends T[number] ? {
547
+ keywords: Omit<Keywords, 'id'>;
548
+ } : object) & ('lists' extends T[number] ? {
549
+ lists: Omit<MovieLists, 'id'>;
550
+ } : object) & ('release_dates' extends T[number] ? {
551
+ release_dates: Omit<ReleaseDates, 'id'>;
552
+ } : object) & ('alternative_titles' extends T[number] ? {
553
+ alternative_titles: Omit<AlternativeTitles, 'id'>;
554
+ } : object) & ('external_ids' extends T[number] ? {
555
+ external_ids: Omit<ExternalIds, 'id'>;
556
+ } : object) & ('translations' extends T[number] ? {
557
+ translations: Omit<Media extends 'person' ? PersonTranslations : Media extends 'tvEpisode' ? TvEpisodeTranslations : Translations, 'id'>;
558
+ } : object) & ('watch/providers' extends T[number] ? {
559
+ 'watch/providers': Omit<WatchProviders, 'id'>;
560
+ } : object) & ('aggregate_credits' extends T[number] ? {
561
+ aggregate_credits: Omit<Credits, 'id'>;
562
+ } : object) & ('episode_groups' extends T[number] ? {
563
+ episode_groups: Omit<EpisodeGroups, 'id'>;
564
+ } : object) & ('screened_theatrically' extends T[number] ? {
565
+ screened_theatrically: Omit<ScreenedTheatrically, 'id'>;
566
+ } : object) & ('similar' extends T[number] ? {
567
+ similar: Media extends 'movie' ? SimilarMovies : Media extends 'tvShow' ? SimilarTvShows : unknown;
568
+ } : object) & ('content_ratings' extends T[number] ? {
569
+ content_ratings: Omit<ContentRatings, 'id'>;
570
+ } : object) & ('movie_credits' extends T[number] ? {
571
+ movie_credits: Omit<PersonMovieCredit, 'id'>;
572
+ } : object) & ('tv_credits' extends T[number] ? {
573
+ tv_credits: Omit<PersonTvShowCredit, 'id'>;
574
+ } : object) & ('combined_credits' extends T[number] ? {
575
+ combined_credits: Omit<PersonCombinedCredits, 'id'>;
576
+ } : object) & ('tagged_images' extends T[number] ? {
577
+ tagged_images: TaggedImages;
578
+ } : object) : never);
579
+
580
+ interface KeywordsOptions extends PageOption {
581
+ include_adult?: boolean;
582
+ language?: string;
583
+ }
584
+ interface BelongingMovies {
585
+ page: number;
586
+ results: Movie[];
587
+ total_results: number;
588
+ total_pages: number;
589
+ }
590
+ interface Keyword {
591
+ id: number;
592
+ name: string;
593
+ }
594
+ interface Keywords {
595
+ id: number;
596
+ keywords: Keyword[];
597
+ }
598
+
599
+ interface BelongsToCollection {
677
600
  id: number;
678
601
  name: string;
679
- overview: string;
680
602
  poster_path: string;
681
- season_number: number;
603
+ backdrop_path: string;
682
604
  }
683
- interface TvShowDetails {
605
+ interface MovieDetails {
606
+ adult: boolean;
684
607
  backdrop_path: string;
685
- created_by: CreatedBy[];
686
- episode_run_time: number[];
687
- first_air_date: string;
608
+ belongs_to_collection?: BelongsToCollection;
609
+ budget: number;
688
610
  genres: Genre[];
689
611
  homepage: string;
690
612
  id: number;
691
- in_production: boolean;
692
- languages: string[];
693
- last_air_date: string;
694
- last_episode_to_air: LastEpisodeToAir;
695
- name: string;
696
- next_episode_to_air?: NextEpisodeToAir;
697
- networks: Network[];
698
- number_of_episodes: number;
699
- number_of_seasons: number;
700
- origin_country: string[];
613
+ imdb_id: string | null;
701
614
  original_language: string;
702
- original_name: string;
615
+ original_title: string;
703
616
  overview: string;
704
617
  popularity: number;
705
- poster_path: string;
618
+ poster_path?: string;
706
619
  production_companies: ProductionCompany[];
707
620
  production_countries: ProductionCountry[];
708
- seasons: Season[];
621
+ release_date: string;
622
+ revenue: number;
623
+ runtime: number;
709
624
  spoken_languages: SpokenLanguage[];
710
625
  status: string;
711
626
  tagline: string;
712
- type: string;
627
+ title: string;
628
+ video: boolean;
713
629
  vote_average: number;
714
630
  vote_count: number;
715
631
  }
716
- interface Network {
717
- name: string;
718
- id: number;
719
- logo_path: string;
720
- origin_country: string;
632
+ declare enum ReleaseDateType {
633
+ Premiere = 1,
634
+ 'Theatrical (limited)' = 2,
635
+ Theatrical = 3,
636
+ Digital = 4,
637
+ Physical = 5,
638
+ TV = 6
721
639
  }
722
- interface Network {
723
- id: number;
724
- logo_path: string;
725
- name: string;
726
- origin_country: string;
640
+ interface ReleaseDate {
641
+ certification: string;
642
+ descriptors: string[];
643
+ iso_639_1: string;
644
+ release_date: string;
645
+ type: ReleaseDateType;
646
+ note: string;
727
647
  }
728
- interface EpisodeGroup {
729
- description: string;
730
- episode_count: number;
731
- group_count: number;
732
- id: string;
733
- name: string;
734
- network: Network;
735
- type: number;
736
- }
737
- interface EpisodeGroups {
738
- results: EpisodeGroup[];
739
- id: number;
648
+ interface ReleaseDateResult {
649
+ iso_3166_1: CountryCode;
650
+ release_dates: ReleaseDate[];
740
651
  }
741
- interface ScreenedTheatricallyResult {
652
+ interface ReleaseDates {
742
653
  id: number;
743
- episode_number: number;
744
- season_number: number;
654
+ results: ReleaseDateResult[];
745
655
  }
746
- interface ScreenedTheatrically {
747
- id: number;
748
- results: ScreenedTheatricallyResult[];
656
+ interface SimilarMovies {
657
+ page: number;
658
+ results: Movie[];
659
+ total_pages: number;
660
+ total_results: number;
749
661
  }
750
- interface SimilarTvShow {
751
- backdrop_path: string;
752
- first_air_date: string;
753
- genre_ids: number[];
662
+ interface MovieList {
663
+ description: string;
664
+ favorite_count: number;
754
665
  id: number;
755
- original_language: string;
756
- original_name: string;
757
- overview: string;
758
- origin_country: string[];
759
- poster_path: string;
760
- popularity: number;
666
+ item_count: number;
667
+ iso_639_1: string;
668
+ list_type: string;
761
669
  name: string;
762
- vote_average: number;
763
- vote_count: number;
670
+ poster_path: string;
764
671
  }
765
- interface SimilarTvShows {
672
+ interface MovieLists {
673
+ id: number;
766
674
  page: number;
767
- results: SimilarTvShow[];
675
+ results: MovieList[];
768
676
  total_pages: number;
769
677
  total_results: number;
770
678
  }
771
- interface LatestTvShows {
679
+ interface LatestMovie {
680
+ adult: boolean;
772
681
  backdrop_path?: string;
773
- created_by: CreatedBy[];
774
- episode_run_time: number[];
775
- first_air_date: string;
682
+ belongs_to_collection?: BelongsToCollection;
683
+ budget: number;
776
684
  genres: Genre[];
777
685
  homepage: string;
778
686
  id: number;
779
- in_production: boolean;
780
- languages: string[];
781
- last_air_date: string;
782
- name: string;
783
- networks: Network[];
784
- number_of_episodes: number;
785
- number_of_seasons: number;
786
- origin_country: string[];
687
+ imdb_id: string | null;
787
688
  original_language: string;
788
- original_name: string;
789
- overview?: string;
689
+ original_title: string;
690
+ overview: string;
790
691
  popularity: number;
791
- poster_path?: string;
692
+ poster_path: string;
792
693
  production_companies: ProductionCompany[];
793
- seasons: Season[];
694
+ production_countries: ProductionCountry[];
695
+ release_date: string;
696
+ revenue: number;
697
+ runtime: number;
698
+ spoken_languages: SpokenLanguage[];
794
699
  status: string;
795
- type: string;
700
+ tagline: string;
701
+ title: string;
702
+ video: boolean;
796
703
  vote_average: number;
797
704
  vote_count: number;
798
705
  }
799
- interface OnTheAirResult {
800
- poster_path: string;
801
- popularity: number;
802
- id: number;
803
- backdrop_path: string;
804
- vote_average: number;
805
- overview: string;
806
- first_air_date: string;
807
- origin_country: string[];
808
- genre_ids: number[];
809
- original_language: string;
810
- vote_count: number;
811
- name: string;
812
- original_name: string;
706
+ interface Dates {
707
+ maximum: string;
708
+ minimum: string;
813
709
  }
814
- interface OnTheAir {
710
+ interface MoviesPlayingNow {
815
711
  page: number;
816
- results: OnTheAirResult[];
712
+ results: Movie[];
713
+ dates: Dates;
714
+ total_pages: number;
715
+ total_results: number;
716
+ }
717
+ interface PopularMovies {
718
+ page: number;
719
+ results: Movie[];
817
720
  total_results: number;
818
721
  total_pages: number;
819
722
  }
820
- interface AiringTodayResult {
821
- poster_path: string;
822
- popularity: number;
823
- id: number;
824
- backdrop_path: string;
825
- vote_average: number;
826
- overview: string;
827
- first_air_date: string;
828
- origin_country: string[];
829
- genre_ids: number[];
830
- original_language: string;
831
- vote_count: number;
832
- name: string;
833
- original_name: string;
723
+ interface TopRatedMovies {
724
+ page: number;
725
+ results: Movie[];
726
+ total_results: number;
727
+ total_pages: number;
834
728
  }
835
- interface TvShowsAiringToday {
729
+ interface UpcomingMovies {
836
730
  page: number;
837
- results: AiringTodayResult[];
731
+ results: Movie[];
838
732
  total_results: number;
839
733
  total_pages: number;
840
734
  }
841
- interface PopularTvShowResult {
842
- poster_path: string;
843
- popularity: number;
735
+ type MovieChangeValue = string | {
736
+ person_id: number;
737
+ character: string;
738
+ order: number;
739
+ cast_id: number;
740
+ credit_id: string;
741
+ } | unknown;
742
+
743
+ interface NetworkDetails {
744
+ headquarters: string;
745
+ homepage: string;
844
746
  id: number;
845
- backdrop_path: string;
846
- vote_average: number;
847
- overview: string;
848
- first_air_date: string;
849
- origin_country: string[];
850
- genre_ids: number[];
851
- original_language: string;
852
- vote_count: number;
747
+ logo_path: string;
853
748
  name: string;
854
- original_name: string;
749
+ origin_country: string;
855
750
  }
856
- interface PopularTvShows {
857
- page: number;
858
- results: PopularTvShowResult[];
859
- total_results: number;
860
- total_pages: number;
751
+ interface NetworkImages {
752
+ id: number;
753
+ logos: Image[];
861
754
  }
862
- interface TopRatedTvShowResult {
863
- poster_path: string;
864
- popularity: number;
755
+
756
+ interface Cast {
757
+ character: string;
758
+ credit_id: string;
759
+ vote_count: number;
865
760
  id: number;
866
761
  backdrop_path: string;
762
+ poster_path: string;
763
+ original_language: string;
867
764
  vote_average: number;
868
- overview: string;
869
- first_air_date: string;
870
- origin_country: string[];
871
765
  genre_ids: number[];
766
+ popularity: number;
767
+ overview: string;
768
+ }
769
+ interface Crew {
770
+ id: number;
771
+ department: string;
872
772
  original_language: string;
773
+ credit_id: string;
774
+ overview: string;
873
775
  vote_count: number;
874
- name: string;
875
- original_name: string;
776
+ poster_path: string;
777
+ backdrop_path: string;
778
+ popularity: number;
779
+ genre_ids: number[];
780
+ job: string;
781
+ vote_average: number;
876
782
  }
877
- interface TopRatedTvShows {
878
- page: number;
879
- results: TopRatedTvShowResult[];
880
- total_results: number;
881
- total_pages: number;
783
+ interface PersonMovieCast extends Cast {
784
+ release_date: string;
785
+ video: boolean;
786
+ adult: boolean;
787
+ title: string;
788
+ original_title: string;
882
789
  }
883
- interface TvShowChangeValue {
884
- season_id: number;
885
- season_number: number;
790
+ interface PersonMovieCrew extends Crew {
791
+ original_title: string;
792
+ video: boolean;
793
+ title: string;
794
+ adult: boolean;
795
+ release_date: string;
886
796
  }
887
- interface TvShowImageOptions extends LanguageOption {
888
- /**
889
- * a list of ISO-639-1 values to query
890
- */
891
- include_image_language?: string[];
797
+ interface PersonTvShowCrew extends Crew {
798
+ episode_count: number;
799
+ origin_country: string[];
800
+ original_name: string;
801
+ name: string;
802
+ first_air_date: string;
892
803
  }
893
- interface TvShowVideoOptions extends LanguageOption {
894
- /**
895
- * a list of ISO-639-1 values to query
896
- */
897
- include_video_language?: string[];
804
+ interface PersonTvShowCast extends Cast {
805
+ original_name: string;
806
+ name: string;
807
+ episode_count: number;
808
+ first_air_date: string;
809
+ origin_country: string[];
898
810
  }
899
-
900
- interface Region {
901
- iso_3166_1: CountryCode;
902
- english_name: string;
903
- native_name: string;
811
+ interface PersonMovieCredit {
812
+ cast: PersonMovieCast[];
813
+ crew: PersonMovieCrew[];
814
+ id: number;
904
815
  }
905
-
906
- interface WatchProvider {
907
- display_priorities: {
908
- [K in CountryCode]: number;
909
- };
910
- display_priority: number;
911
- logo_path: string;
912
- provider_id: number;
913
- provider_name: string;
816
+ interface PersonTvShowCredit {
817
+ cast: PersonTvShowCast[];
818
+ crew: PersonTvShowCrew[];
819
+ id: number;
914
820
  }
915
- interface RegionResult {
916
- results: Array<Region>;
821
+ interface PersonCombinedCredits {
822
+ cast: (PersonMovieCast & PersonTvShowCast)[];
823
+ crew: (PersonMovieCrew & PersonTvShowCrew)[];
824
+ id: number;
917
825
  }
918
- interface WatchProviderResult {
919
- results: Array<WatchProvider>;
826
+ interface PersonDetails {
827
+ birthday: string;
828
+ known_for_department: string;
829
+ deathday: string;
830
+ id: number;
831
+ name: string;
832
+ also_known_as: string[];
833
+ gender: number;
834
+ biography: string;
835
+ popularity: number;
836
+ place_of_birth: string;
837
+ profile_path: string;
838
+ adult: boolean;
839
+ imdb_id: string;
840
+ homepage: string;
920
841
  }
921
- interface Flatrate {
922
- display_priority: number;
923
- logo_path: string;
924
- provider_id: number;
925
- provider_name: string;
842
+ type PersonChangeValue = string | {
843
+ profile: {
844
+ file_path: string;
845
+ };
846
+ };
847
+ interface PopularPeople {
848
+ page: number;
849
+ results: Person[];
850
+ total_results: number;
851
+ total_pages: number;
926
852
  }
927
- interface Rent {
928
- display_priority: number;
929
- logo_path: string;
930
- provider_id: number;
931
- provider_name: string;
853
+ interface PeopleImages {
854
+ id: number;
855
+ profiles: Image[];
932
856
  }
933
- interface Buy {
934
- display_priority: number;
935
- logo_path: string;
936
- provider_id: number;
937
- provider_name: string;
857
+ interface TaggedImage {
858
+ aspect_ratio: number;
859
+ file_path: string;
860
+ height: number;
861
+ id: string;
862
+ iso_639_1: string;
863
+ vote_average: number;
864
+ vote_count: number;
865
+ width: number;
866
+ image_type: string;
867
+ media_type: string;
868
+ media: Movie | TV;
938
869
  }
939
- interface WatchLocale {
940
- AR: {
941
- link: string;
942
- flatrate: Flatrate[];
943
- rent: Rent[];
944
- buy: Buy[];
945
- };
946
- AT: {
947
- link: string;
948
- rent: Rent[];
949
- buy: Buy[];
950
- };
951
- AU: {
952
- link: string;
953
- flatrate: Flatrate[];
954
- rent: Rent[];
955
- buy: Buy[];
956
- };
957
- BE: {
958
- link: string;
959
- buy: Buy[];
960
- flatrate: Flatrate[];
961
- rent: Rent[];
962
- };
963
- BR: {
964
- link: string;
965
- rent: Rent[];
966
- buy: Buy[];
967
- flatrate: Flatrate[];
968
- };
969
- CA: {
970
- link: string;
971
- rent: Rent[];
972
- flatrate: Flatrate[];
973
- buy: Buy[];
974
- };
975
- CH: {
976
- link: string;
977
- rent: Rent[];
978
- buy: Buy[];
979
- flatrate: Flatrate[];
980
- };
981
- CL: {
982
- link: string;
983
- flatrate: Flatrate[];
984
- buy: Buy[];
985
- rent: Rent[];
986
- };
987
- CO: {
988
- link: string;
989
- flatrate: Flatrate[];
990
- rent: Rent[];
991
- buy: Buy[];
992
- };
993
- CZ: {
994
- link: string;
995
- buy: Buy[];
996
- flatrate: Flatrate[];
997
- rent: Rent[];
998
- };
999
- DE: {
1000
- link: string;
1001
- rent: Rent[];
1002
- buy: Buy[];
1003
- };
1004
- DK: {
1005
- link: string;
1006
- rent: Rent[];
1007
- buy: Buy[];
1008
- flatrate: Flatrate[];
1009
- };
1010
- EC: {
1011
- link: string;
1012
- flatrate: Flatrate[];
1013
- buy: Buy[];
1014
- rent: Rent[];
1015
- };
1016
- EE: {
1017
- link: string;
1018
- flatrate: Flatrate[];
1019
- buy: Buy[];
1020
- rent: Rent[];
1021
- };
1022
- ES: {
1023
- link: string;
1024
- rent: Rent[];
1025
- flatrate: Flatrate[];
1026
- buy: Buy[];
870
+ interface TaggedImages {
871
+ page: number;
872
+ results: TaggedImage[];
873
+ total_results: number;
874
+ total_pages: number;
875
+ }
876
+ interface PersonTranslations {
877
+ id: number;
878
+ translations: {
879
+ iso_3166_1: CountryCode;
880
+ iso_639_1: string;
881
+ name: string;
882
+ english_name: string;
883
+ data: {
884
+ biography: string;
885
+ };
1027
886
  };
1028
- FI: {
1029
- link: string;
1030
- buy: Buy[];
1031
- flatrate: Flatrate[];
1032
- rent: Rent[];
1033
- };
1034
- FR: {
1035
- link: string;
1036
- flatrate: Flatrate[];
1037
- buy: Buy[];
1038
- rent: Rent[];
1039
- };
1040
- GB: {
1041
- link: string;
1042
- rent: Rent[];
1043
- flatrate: Flatrate[];
1044
- buy: Buy[];
1045
- };
1046
- GR: {
1047
- link: string;
1048
- flatrate: Flatrate[];
1049
- rent: Rent[];
1050
- buy: Buy[];
1051
- };
1052
- HU: {
1053
- link: string;
1054
- rent: Rent[];
1055
- buy: Buy[];
1056
- flatrate: Flatrate[];
1057
- };
1058
- ID: {
1059
- link: string;
1060
- flatrate: Flatrate[];
1061
- rent: Rent[];
1062
- buy: Buy[];
1063
- };
1064
- IE: {
1065
- link: string;
1066
- rent: Rent[];
1067
- flatrate: Flatrate[];
1068
- buy: Buy[];
1069
- };
1070
- IN: {
1071
- link: string;
1072
- buy: Buy[];
1073
- flatrate: Flatrate[];
1074
- rent: Rent[];
1075
- };
1076
- IT: {
1077
- link: string;
1078
- buy: Buy[];
1079
- flatrate: Flatrate[];
1080
- rent: Rent[];
1081
- };
1082
- JP: {
1083
- link: string;
1084
- rent: Rent[];
1085
- flatrate: Flatrate[];
1086
- buy: Buy[];
1087
- };
1088
- KR: {
1089
- link: string;
1090
- buy: Buy[];
1091
- rent: Rent[];
1092
- flatrate: Flatrate[];
1093
- };
1094
- LT: {
1095
- link: string;
1096
- buy: Buy[];
1097
- flatrate: Flatrate[];
1098
- };
1099
- LV: {
1100
- link: string;
1101
- buy: Buy[];
1102
- flatrate: Flatrate[];
1103
- };
1104
- MX: {
1105
- link: string;
1106
- flatrate: Flatrate[];
1107
- rent: Rent[];
1108
- buy: Buy[];
1109
- };
1110
- MY: {
1111
- link: string;
1112
- rent: Rent[];
1113
- flatrate: Flatrate[];
1114
- buy: Buy[];
1115
- };
1116
- NL: {
1117
- link: string;
1118
- flatrate: Flatrate[];
1119
- buy: Buy[];
1120
- rent: Rent[];
1121
- };
1122
- NO: {
1123
- link: string;
1124
- buy: Buy[];
1125
- rent: Rent[];
1126
- flatrate: Flatrate[];
1127
- };
1128
- NZ: {
1129
- link: string;
1130
- buy: Buy[];
1131
- rent: Rent[];
1132
- flatrate: Flatrate[];
1133
- };
1134
- PE: {
1135
- link: string;
1136
- flatrate: Flatrate[];
1137
- rent: Rent[];
1138
- buy: Buy[];
1139
- };
1140
- PH: {
1141
- link: string;
1142
- rent: Rent[];
1143
- buy: Buy[];
1144
- flatrate: Flatrate[];
1145
- };
1146
- PL: {
1147
- link: string;
1148
- rent: Rent[];
1149
- flatrate: Flatrate[];
1150
- buy: Buy[];
1151
- };
1152
- PT: {
1153
- link: string;
1154
- rent: Rent[];
1155
- flatrate: Flatrate[];
1156
- buy: Buy[];
1157
- };
1158
- RO: {
1159
- link: string;
1160
- flatrate: Flatrate[];
1161
- };
1162
- RU: {
1163
- link: string;
1164
- rent: Rent[];
1165
- flatrate: Flatrate[];
1166
- buy: Buy[];
1167
- };
1168
- SE: {
1169
- link: string;
1170
- rent: Rent[];
1171
- flatrate: Flatrate[];
1172
- buy: Buy[];
1173
- };
1174
- SG: {
1175
- link: string;
1176
- flatrate: Flatrate[];
1177
- buy: Buy[];
1178
- rent: Rent[];
1179
- };
1180
- TH: {
1181
- link: string;
1182
- flatrate: Flatrate[];
1183
- rent: Rent[];
1184
- buy: Buy[];
1185
- };
1186
- TR: {
1187
- link: string;
1188
- buy: Buy[];
1189
- rent: Rent[];
1190
- flatrate: Flatrate[];
1191
- };
1192
- US: {
1193
- link: string;
1194
- rent: Rent[];
1195
- buy: Buy[];
1196
- flatrate: Flatrate[];
1197
- };
1198
- VE: {
1199
- link: string;
1200
- flatrate: Flatrate[];
1201
- rent: Rent[];
1202
- buy: Buy[];
1203
- };
1204
- ZA: {
1205
- link: string;
1206
- rent: Rent[];
1207
- buy: Buy[];
1208
- flatrate: Flatrate[];
887
+ }
888
+
889
+ interface ReviewDetails extends Review {
890
+ iso_639_1: string;
891
+ media_id: number;
892
+ media_title: number;
893
+ media_type: number;
894
+ }
895
+
896
+ interface Search<T> {
897
+ page: number;
898
+ results: T[];
899
+ total_pages: number;
900
+ total_results: number;
901
+ }
902
+ type MultiSearchResult = MovieWithMediaType | TVWithMediaType | PersonWithMediaType;
903
+
904
+ type TimeWindow = 'day' | 'week';
905
+ type TrendingMediaType = MediaType | 'all';
906
+ type TrendingResult<T extends TrendingMediaType> = T extends 'tv' ? TV : T extends 'movie' ? Movie : T extends 'person' ? Person : TVWithMediaType | MovieWithMediaType | PersonWithMediaType;
907
+ interface TrendingResults<T extends TrendingMediaType> {
908
+ page: number;
909
+ results: TrendingResult<T>[];
910
+ total_pages: number;
911
+ total_results: number;
912
+ }
913
+
914
+ interface EpisodeSelection {
915
+ tvShowID: number;
916
+ seasonNumber: number;
917
+ episodeNumber: number;
918
+ }
919
+ interface Episode {
920
+ air_date: string;
921
+ episode_number: number;
922
+ crew: Crew$1[];
923
+ guest_stars: GuestStar[];
924
+ id: number;
925
+ name: string;
926
+ overview: string;
927
+ production_code: string;
928
+ season_number: number;
929
+ still_path: string;
930
+ vote_average: number;
931
+ vote_count: number;
932
+ runtime: number;
933
+ show_id: number;
934
+ }
935
+ interface GuestStar {
936
+ credit_id: string;
937
+ order: number;
938
+ character: string;
939
+ adult: boolean;
940
+ gender: number | null;
941
+ id: number;
942
+ known_for_department: string;
943
+ name: string;
944
+ original_name: string;
945
+ popularity: number;
946
+ profile_path: string | null;
947
+ }
948
+ interface TvEpisodeCredit extends Credits {
949
+ guest_stars: GuestStar[];
950
+ }
951
+ interface TvEpisodeTranslations {
952
+ id: number;
953
+ translations: {
954
+ iso_3166_1: CountryCode;
955
+ iso_639_1: string;
956
+ name: string;
957
+ english_name: string;
958
+ data: {
959
+ name: string;
960
+ overview: string;
961
+ };
1209
962
  };
1210
963
  }
1211
- interface WatchProviders {
964
+ type TvEpisodeChangeValue = string | unknown;
965
+
966
+ interface SeasonSelection {
967
+ tvShowID: number;
968
+ seasonNumber: number;
969
+ }
970
+ interface SeasonDetails {
971
+ air_date: string;
972
+ episodes: Episode[];
973
+ name: string;
974
+ overview: string;
1212
975
  id: number;
1213
- results: WatchLocale;
976
+ poster_path: string | null;
977
+ season_number: number;
1214
978
  }
979
+ type TvSeasonChangeValue = string | {
980
+ episode_id: number;
981
+ episode_number: number;
982
+ };
1215
983
 
1216
- interface Cast {
1217
- character: string;
984
+ interface CreatedBy {
985
+ id: number;
1218
986
  credit_id: string;
1219
- vote_count: number;
987
+ name: string;
988
+ gender: number;
989
+ profile_path: string;
990
+ }
991
+ interface NextEpisodeToAir {
1220
992
  id: number;
1221
- backdrop_path: string;
1222
- poster_path: string;
1223
- original_language: string;
1224
- vote_average: number;
1225
- genre_ids: number[];
1226
- popularity: number;
993
+ name: string;
1227
994
  overview: string;
995
+ vote_average: number;
996
+ vote_count: number;
997
+ air_date: string;
998
+ episode_number: number;
999
+ production_code: string;
1000
+ runtime: number;
1001
+ season_number: number;
1002
+ show_id: number;
1003
+ still_path: string;
1228
1004
  }
1229
- interface Crew {
1005
+ interface LastEpisodeToAir {
1006
+ air_date: string;
1007
+ episode_number: number;
1230
1008
  id: number;
1231
- department: string;
1232
- original_language: string;
1233
- credit_id: string;
1009
+ name: string;
1234
1010
  overview: string;
1235
- vote_count: number;
1236
- poster_path: string;
1237
- backdrop_path: string;
1238
- popularity: number;
1239
- genre_ids: number[];
1240
- job: string;
1011
+ production_code: string;
1012
+ season_number: number;
1013
+ still_path: string;
1241
1014
  vote_average: number;
1015
+ vote_count: number;
1242
1016
  }
1243
- interface PersonMovieCast extends Cast {
1244
- release_date: string;
1245
- video: boolean;
1246
- adult: boolean;
1247
- title: string;
1248
- original_title: string;
1249
- }
1250
- interface PersonMovieCrew extends Crew {
1251
- original_title: string;
1252
- video: boolean;
1253
- title: string;
1254
- adult: boolean;
1255
- release_date: string;
1256
- }
1257
- interface PersonTvShowCrew extends Crew {
1017
+ interface Season {
1018
+ air_date: string;
1258
1019
  episode_count: number;
1259
- origin_country: string[];
1260
- original_name: string;
1020
+ id: number;
1261
1021
  name: string;
1262
- first_air_date: string;
1022
+ overview: string;
1023
+ poster_path: string;
1024
+ season_number: number;
1263
1025
  }
1264
- interface PersonTvShowCast extends Cast {
1026
+ interface TvShowDetails {
1027
+ backdrop_path: string;
1028
+ created_by: CreatedBy[];
1029
+ episode_run_time: number[];
1030
+ first_air_date: string;
1031
+ genres: Genre[];
1032
+ homepage: string;
1033
+ id: number;
1034
+ in_production: boolean;
1035
+ languages: string[];
1036
+ last_air_date: string;
1037
+ last_episode_to_air: LastEpisodeToAir;
1038
+ name: string;
1039
+ next_episode_to_air?: NextEpisodeToAir;
1040
+ networks: Network[];
1041
+ number_of_episodes: number;
1042
+ number_of_seasons: number;
1043
+ origin_country: string[];
1044
+ original_language: string;
1265
1045
  original_name: string;
1046
+ overview: string;
1047
+ popularity: number;
1048
+ poster_path: string;
1049
+ production_companies: ProductionCompany[];
1050
+ production_countries: ProductionCountry[];
1051
+ seasons: Season[];
1052
+ spoken_languages: SpokenLanguage[];
1053
+ status: string;
1054
+ tagline: string;
1055
+ type: string;
1056
+ vote_average: number;
1057
+ vote_count: number;
1058
+ }
1059
+ interface Network {
1060
+ name: string;
1061
+ id: number;
1062
+ logo_path: string;
1063
+ origin_country: string;
1064
+ }
1065
+ interface Network {
1066
+ id: number;
1067
+ logo_path: string;
1266
1068
  name: string;
1069
+ origin_country: string;
1070
+ }
1071
+ interface EpisodeGroup {
1072
+ description: string;
1267
1073
  episode_count: number;
1268
- first_air_date: string;
1269
- origin_country: string[];
1074
+ group_count: number;
1075
+ id: string;
1076
+ name: string;
1077
+ network: Network;
1078
+ type: number;
1270
1079
  }
1271
- interface PersonMovieCredit {
1272
- cast: PersonMovieCast[];
1273
- crew: PersonMovieCrew[];
1080
+ interface EpisodeGroups {
1081
+ results: EpisodeGroup[];
1274
1082
  id: number;
1275
1083
  }
1276
- interface PersonTvShowCredit {
1277
- cast: PersonTvShowCast[];
1278
- crew: PersonTvShowCrew[];
1084
+ interface ScreenedTheatricallyResult {
1279
1085
  id: number;
1086
+ episode_number: number;
1087
+ season_number: number;
1280
1088
  }
1281
- interface PersonCombinedCredits {
1282
- cast: (PersonMovieCast & PersonTvShowCast)[];
1283
- crew: (PersonMovieCrew & PersonTvShowCrew)[];
1089
+ interface ScreenedTheatrically {
1284
1090
  id: number;
1091
+ results: ScreenedTheatricallyResult[];
1285
1092
  }
1286
- interface PersonDetails {
1287
- birthday: string;
1288
- known_for_department: string;
1289
- deathday: string;
1093
+ interface SimilarTvShow {
1094
+ backdrop_path: string;
1095
+ first_air_date: string;
1096
+ genre_ids: number[];
1290
1097
  id: number;
1291
- name: string;
1292
- also_known_as: string[];
1293
- gender: number;
1294
- biography: string;
1098
+ original_language: string;
1099
+ original_name: string;
1100
+ overview: string;
1101
+ origin_country: string[];
1102
+ poster_path: string;
1295
1103
  popularity: number;
1296
- place_of_birth: string;
1297
- profile_path: string;
1298
- adult: boolean;
1299
- imdb_id: string;
1300
- homepage: string;
1104
+ name: string;
1105
+ vote_average: number;
1106
+ vote_count: number;
1301
1107
  }
1302
- type PersonChangeValue = string | {
1303
- profile: {
1304
- file_path: string;
1305
- };
1306
- };
1307
- interface PopularPeople {
1108
+ interface SimilarTvShows {
1308
1109
  page: number;
1309
- results: Person[];
1310
- total_results: number;
1110
+ results: SimilarTvShow[];
1311
1111
  total_pages: number;
1112
+ total_results: number;
1312
1113
  }
1313
- interface PeopleImages {
1114
+ interface LatestTvShows {
1115
+ backdrop_path?: string;
1116
+ created_by: CreatedBy[];
1117
+ episode_run_time: number[];
1118
+ first_air_date: string;
1119
+ genres: Genre[];
1120
+ homepage: string;
1314
1121
  id: number;
1315
- profiles: Image[];
1122
+ in_production: boolean;
1123
+ languages: string[];
1124
+ last_air_date: string;
1125
+ name: string;
1126
+ networks: Network[];
1127
+ number_of_episodes: number;
1128
+ number_of_seasons: number;
1129
+ origin_country: string[];
1130
+ original_language: string;
1131
+ original_name: string;
1132
+ overview?: string;
1133
+ popularity: number;
1134
+ poster_path?: string;
1135
+ production_companies: ProductionCompany[];
1136
+ seasons: Season[];
1137
+ status: string;
1138
+ type: string;
1139
+ vote_average: number;
1140
+ vote_count: number;
1316
1141
  }
1317
- interface TaggedImage {
1318
- aspect_ratio: number;
1319
- file_path: string;
1320
- height: number;
1321
- id: string;
1322
- iso_639_1: string;
1142
+ interface OnTheAirResult {
1143
+ poster_path: string;
1144
+ popularity: number;
1145
+ id: number;
1146
+ backdrop_path: string;
1323
1147
  vote_average: number;
1148
+ overview: string;
1149
+ first_air_date: string;
1150
+ origin_country: string[];
1151
+ genre_ids: number[];
1152
+ original_language: string;
1324
1153
  vote_count: number;
1325
- width: number;
1326
- image_type: string;
1327
- media_type: string;
1328
- media: Movie | TV;
1154
+ name: string;
1155
+ original_name: string;
1329
1156
  }
1330
- interface TaggedImages {
1157
+ interface OnTheAir {
1331
1158
  page: number;
1332
- results: TaggedImage[];
1159
+ results: OnTheAirResult[];
1333
1160
  total_results: number;
1334
1161
  total_pages: number;
1335
1162
  }
1336
- interface PersonTranslations {
1163
+ interface AiringTodayResult {
1164
+ poster_path: string;
1165
+ popularity: number;
1337
1166
  id: number;
1338
- translations: {
1339
- iso_3166_1: CountryCode;
1340
- iso_639_1: string;
1341
- name: string;
1342
- english_name: string;
1343
- data: {
1344
- biography: string;
1345
- };
1346
- };
1347
- }
1348
-
1349
- type MonetizationType = 'flatrate' | 'free' | 'ads' | 'rent' | 'buy';
1350
- interface DiscoverQueryOptions {
1351
- language?: string;
1352
- sort_by?: SortOption;
1353
- page?: number;
1354
- 'vote_average.gte'?: number;
1355
- 'vote_count.gte'?: number;
1356
- 'vote_count.lte'?: number;
1357
- 'vote_average.lte'?: number;
1358
- with_watch_providers?: string;
1359
- watch_region?: string;
1360
- without_companies?: string;
1361
- with_watch_monetization_types?: MonetizationType;
1362
- 'with_runtime.gte'?: number;
1363
- 'with_runtime.lte'?: number;
1364
- with_genres?: string;
1365
- without_genres?: string;
1366
- with_original_language?: string;
1367
- without_keywords?: string;
1368
- with_keywords?: string;
1369
- with_companies?: string;
1370
- include_adult?: boolean;
1371
- }
1372
- interface MovieQueryOptions extends DiscoverQueryOptions {
1373
- region?: string;
1374
- certification_country?: string;
1375
- certification?: string;
1376
- 'certification.lte'?: string;
1377
- 'certification.gte'?: string;
1378
- include_adult?: boolean;
1379
- include_video?: boolean;
1380
- primary_release_year?: number;
1381
- 'primary_release_date.gte'?: string;
1382
- 'primary_release_date.lte'?: string;
1383
- 'release_date.gte'?: string;
1384
- 'release_date.lte'?: string;
1385
- with_release_type?: string;
1386
- year?: number;
1387
- with_cast?: string;
1388
- with_crew?: string;
1389
- with_people?: string;
1390
- }
1391
- interface TvShowQueryOptions extends DiscoverQueryOptions {
1392
- 'air_date.gte'?: string;
1393
- 'air_date.lte'?: string;
1394
- 'first_air_date.gte'?: string;
1395
- 'first_air_date.lte'?: string;
1396
- first_air_date_year?: number;
1397
- timezone?: string;
1398
- with_networks?: string;
1399
- include_null_first_air_dates?: boolean;
1400
- screened_theatrically?: boolean;
1401
- with_status?: string;
1402
- with_type?: string;
1403
- }
1404
- type SortOption = 'first_air_date.asc' | 'first_air_date.desc' | 'popularity.asc' | 'popularity.desc' | 'release_date.asc' | 'release_date.desc' | 'revenue.asc' | 'revenue.desc' | 'primary_release_date.asc' | 'primary_release_date.desc' | 'original_title.asc' | 'original_title.desc' | 'vote_average.asc' | 'vote_average.desc' | 'vote_count.asc' | 'vote_count.desc';
1405
- interface MovieDiscoverResult {
1406
- page: number;
1407
- results: Movie[];
1408
- total_results: number;
1409
- total_pages: number;
1167
+ backdrop_path: string;
1168
+ vote_average: number;
1169
+ overview: string;
1170
+ first_air_date: string;
1171
+ origin_country: string[];
1172
+ genre_ids: number[];
1173
+ original_language: string;
1174
+ vote_count: number;
1175
+ name: string;
1176
+ original_name: string;
1410
1177
  }
1411
- interface TvShowDiscoverResult {
1178
+ interface TvShowsAiringToday {
1412
1179
  page: number;
1413
- results: TV[];
1180
+ results: AiringTodayResult[];
1414
1181
  total_results: number;
1415
1182
  total_pages: number;
1416
1183
  }
1417
-
1418
- interface ReviewDetails extends Review {
1419
- iso_639_1: string;
1420
- media_id: number;
1421
- media_title: number;
1422
- media_type: number;
1423
- }
1424
-
1425
- type TimeWindow = 'day' | 'week';
1426
- type TrendingMediaType = MediaType | 'all';
1427
- type TrendingResult<T extends TrendingMediaType> = T extends 'tv' ? TV : T extends 'movie' ? Movie : T extends 'person' ? Person : TVWithMediaType | MovieWithMediaType | PersonWithMediaType;
1428
- interface TrendingResults<T extends TrendingMediaType> {
1429
- page: number;
1430
- results: TrendingResult<T>[];
1431
- total_pages: number;
1432
- total_results: number;
1433
- }
1434
-
1435
- type ExternalSource = 'imdb_id' | 'freebase_mid' | 'freebase_id' | 'tvdb_id' | 'tvrage_id' | 'facebook_id' | 'twitter_id' | 'instagram_id';
1436
- interface ExternalIdOptions {
1437
- external_source: ExternalSource;
1438
- language?: string;
1439
- }
1440
- type MediaTagged<T> = T & {
1441
- media_type: MediaType;
1442
- };
1443
- interface FindResult {
1444
- movie_results: MediaTagged<Movie>[];
1445
- person_results: MediaTagged<Person>[];
1446
- tv_results: MediaTagged<TV>[];
1447
- tv_episode_results: MediaTagged<Episode>[];
1448
- tv_season_results: MediaTagged<Season & {
1449
- show_id: string;
1450
- }>[];
1451
- }
1452
-
1453
- interface KeywordsOptions extends PageOption {
1454
- include_adult?: boolean;
1455
- language?: string;
1184
+ interface PopularTvShowResult {
1185
+ poster_path: string;
1186
+ popularity: number;
1187
+ id: number;
1188
+ backdrop_path: string;
1189
+ vote_average: number;
1190
+ overview: string;
1191
+ first_air_date: string;
1192
+ origin_country: string[];
1193
+ genre_ids: number[];
1194
+ original_language: string;
1195
+ vote_count: number;
1196
+ name: string;
1197
+ original_name: string;
1456
1198
  }
1457
- interface BelongingMovies {
1199
+ interface PopularTvShows {
1458
1200
  page: number;
1459
- results: Movie[];
1201
+ results: PopularTvShowResult[];
1460
1202
  total_results: number;
1461
1203
  total_pages: number;
1462
1204
  }
1463
- interface Keyword {
1205
+ interface TopRatedTvShowResult {
1206
+ poster_path: string;
1207
+ popularity: number;
1464
1208
  id: number;
1209
+ backdrop_path: string;
1210
+ vote_average: number;
1211
+ overview: string;
1212
+ first_air_date: string;
1213
+ origin_country: string[];
1214
+ genre_ids: number[];
1215
+ original_language: string;
1216
+ vote_count: number;
1465
1217
  name: string;
1218
+ original_name: string;
1466
1219
  }
1467
- interface Keywords {
1468
- id: number;
1469
- keywords: Keyword[];
1470
- }
1471
-
1472
- interface Collection {
1473
- id: number;
1474
- name: string;
1475
- overview: string;
1476
- poster_path: string;
1477
- backdrop_path: string;
1220
+ interface TopRatedTvShows {
1221
+ page: number;
1222
+ results: TopRatedTvShowResult[];
1223
+ total_results: number;
1224
+ total_pages: number;
1478
1225
  }
1479
- interface CollectionDetails extends Collection {
1480
- parts: Movie[];
1226
+ interface TvShowChangeValue {
1227
+ season_id: number;
1228
+ season_number: number;
1481
1229
  }
1482
- interface CollectionImageOptions extends LanguageOption {
1230
+ interface TvShowImageOptions extends LanguageOption {
1483
1231
  /**
1484
1232
  * a list of ISO-639-1 values to query
1485
1233
  */
1486
1234
  include_image_language?: string[];
1487
1235
  }
1236
+ interface TvShowVideoOptions extends LanguageOption {
1237
+ /**
1238
+ * a list of ISO-639-1 values to query
1239
+ */
1240
+ include_video_language?: string[];
1241
+ }
1488
1242
 
1489
- interface EpisodeSelection {
1490
- tvShowID: number;
1491
- seasonNumber: number;
1492
- episodeNumber: number;
1243
+ interface Region {
1244
+ iso_3166_1: CountryCode;
1245
+ english_name: string;
1246
+ native_name: string;
1493
1247
  }
1494
- interface Episode {
1495
- air_date: string;
1496
- episode_number: number;
1497
- crew: Crew$1[];
1498
- guest_stars: GuestStar[];
1499
- id: number;
1500
- name: string;
1501
- overview: string;
1502
- production_code: string;
1503
- season_number: number;
1504
- still_path: string;
1505
- vote_average: number;
1506
- vote_count: number;
1507
- runtime: number;
1508
- show_id: number;
1248
+
1249
+ interface WatchProvider {
1250
+ display_priorities: {
1251
+ [K in CountryCode]: number;
1252
+ };
1253
+ display_priority: number;
1254
+ logo_path: string;
1255
+ provider_id: number;
1256
+ provider_name: string;
1509
1257
  }
1510
- interface GuestStar {
1511
- credit_id: string;
1512
- order: number;
1513
- character: string;
1514
- adult: boolean;
1515
- gender: number | null;
1516
- id: number;
1517
- known_for_department: string;
1518
- name: string;
1519
- original_name: string;
1520
- popularity: number;
1521
- profile_path: string | null;
1258
+ interface RegionResult {
1259
+ results: Array<Region>;
1522
1260
  }
1523
- interface TvEpisodeCredit extends Credits {
1524
- guest_stars: GuestStar[];
1261
+ interface WatchProviderResult {
1262
+ results: Array<WatchProvider>;
1525
1263
  }
1526
- interface TvEpisodeTranslations {
1527
- id: number;
1528
- translations: {
1529
- iso_3166_1: CountryCode;
1530
- iso_639_1: string;
1531
- name: string;
1532
- english_name: string;
1533
- data: {
1534
- name: string;
1535
- overview: string;
1536
- };
1264
+ interface Flatrate {
1265
+ display_priority: number;
1266
+ logo_path: string;
1267
+ provider_id: number;
1268
+ provider_name: string;
1269
+ }
1270
+ interface Rent {
1271
+ display_priority: number;
1272
+ logo_path: string;
1273
+ provider_id: number;
1274
+ provider_name: string;
1275
+ }
1276
+ interface Buy {
1277
+ display_priority: number;
1278
+ logo_path: string;
1279
+ provider_id: number;
1280
+ provider_name: string;
1281
+ }
1282
+ interface WatchLocale {
1283
+ AR: {
1284
+ link: string;
1285
+ flatrate: Flatrate[];
1286
+ rent: Rent[];
1287
+ buy: Buy[];
1288
+ };
1289
+ AT: {
1290
+ link: string;
1291
+ rent: Rent[];
1292
+ buy: Buy[];
1293
+ };
1294
+ AU: {
1295
+ link: string;
1296
+ flatrate: Flatrate[];
1297
+ rent: Rent[];
1298
+ buy: Buy[];
1299
+ };
1300
+ BE: {
1301
+ link: string;
1302
+ buy: Buy[];
1303
+ flatrate: Flatrate[];
1304
+ rent: Rent[];
1305
+ };
1306
+ BR: {
1307
+ link: string;
1308
+ rent: Rent[];
1309
+ buy: Buy[];
1310
+ flatrate: Flatrate[];
1311
+ };
1312
+ CA: {
1313
+ link: string;
1314
+ rent: Rent[];
1315
+ flatrate: Flatrate[];
1316
+ buy: Buy[];
1317
+ };
1318
+ CH: {
1319
+ link: string;
1320
+ rent: Rent[];
1321
+ buy: Buy[];
1322
+ flatrate: Flatrate[];
1323
+ };
1324
+ CL: {
1325
+ link: string;
1326
+ flatrate: Flatrate[];
1327
+ buy: Buy[];
1328
+ rent: Rent[];
1329
+ };
1330
+ CO: {
1331
+ link: string;
1332
+ flatrate: Flatrate[];
1333
+ rent: Rent[];
1334
+ buy: Buy[];
1335
+ };
1336
+ CZ: {
1337
+ link: string;
1338
+ buy: Buy[];
1339
+ flatrate: Flatrate[];
1340
+ rent: Rent[];
1341
+ };
1342
+ DE: {
1343
+ link: string;
1344
+ rent: Rent[];
1345
+ buy: Buy[];
1346
+ };
1347
+ DK: {
1348
+ link: string;
1349
+ rent: Rent[];
1350
+ buy: Buy[];
1351
+ flatrate: Flatrate[];
1352
+ };
1353
+ EC: {
1354
+ link: string;
1355
+ flatrate: Flatrate[];
1356
+ buy: Buy[];
1357
+ rent: Rent[];
1358
+ };
1359
+ EE: {
1360
+ link: string;
1361
+ flatrate: Flatrate[];
1362
+ buy: Buy[];
1363
+ rent: Rent[];
1364
+ };
1365
+ ES: {
1366
+ link: string;
1367
+ rent: Rent[];
1368
+ flatrate: Flatrate[];
1369
+ buy: Buy[];
1370
+ };
1371
+ FI: {
1372
+ link: string;
1373
+ buy: Buy[];
1374
+ flatrate: Flatrate[];
1375
+ rent: Rent[];
1376
+ };
1377
+ FR: {
1378
+ link: string;
1379
+ flatrate: Flatrate[];
1380
+ buy: Buy[];
1381
+ rent: Rent[];
1382
+ };
1383
+ GB: {
1384
+ link: string;
1385
+ rent: Rent[];
1386
+ flatrate: Flatrate[];
1387
+ buy: Buy[];
1388
+ };
1389
+ GR: {
1390
+ link: string;
1391
+ flatrate: Flatrate[];
1392
+ rent: Rent[];
1393
+ buy: Buy[];
1394
+ };
1395
+ HU: {
1396
+ link: string;
1397
+ rent: Rent[];
1398
+ buy: Buy[];
1399
+ flatrate: Flatrate[];
1400
+ };
1401
+ ID: {
1402
+ link: string;
1403
+ flatrate: Flatrate[];
1404
+ rent: Rent[];
1405
+ buy: Buy[];
1406
+ };
1407
+ IE: {
1408
+ link: string;
1409
+ rent: Rent[];
1410
+ flatrate: Flatrate[];
1411
+ buy: Buy[];
1412
+ };
1413
+ IN: {
1414
+ link: string;
1415
+ buy: Buy[];
1416
+ flatrate: Flatrate[];
1417
+ rent: Rent[];
1418
+ };
1419
+ IT: {
1420
+ link: string;
1421
+ buy: Buy[];
1422
+ flatrate: Flatrate[];
1423
+ rent: Rent[];
1424
+ };
1425
+ JP: {
1426
+ link: string;
1427
+ rent: Rent[];
1428
+ flatrate: Flatrate[];
1429
+ buy: Buy[];
1430
+ };
1431
+ KR: {
1432
+ link: string;
1433
+ buy: Buy[];
1434
+ rent: Rent[];
1435
+ flatrate: Flatrate[];
1436
+ };
1437
+ LT: {
1438
+ link: string;
1439
+ buy: Buy[];
1440
+ flatrate: Flatrate[];
1441
+ };
1442
+ LV: {
1443
+ link: string;
1444
+ buy: Buy[];
1445
+ flatrate: Flatrate[];
1446
+ };
1447
+ MX: {
1448
+ link: string;
1449
+ flatrate: Flatrate[];
1450
+ rent: Rent[];
1451
+ buy: Buy[];
1452
+ };
1453
+ MY: {
1454
+ link: string;
1455
+ rent: Rent[];
1456
+ flatrate: Flatrate[];
1457
+ buy: Buy[];
1458
+ };
1459
+ NL: {
1460
+ link: string;
1461
+ flatrate: Flatrate[];
1462
+ buy: Buy[];
1463
+ rent: Rent[];
1464
+ };
1465
+ NO: {
1466
+ link: string;
1467
+ buy: Buy[];
1468
+ rent: Rent[];
1469
+ flatrate: Flatrate[];
1470
+ };
1471
+ NZ: {
1472
+ link: string;
1473
+ buy: Buy[];
1474
+ rent: Rent[];
1475
+ flatrate: Flatrate[];
1476
+ };
1477
+ PE: {
1478
+ link: string;
1479
+ flatrate: Flatrate[];
1480
+ rent: Rent[];
1481
+ buy: Buy[];
1482
+ };
1483
+ PH: {
1484
+ link: string;
1485
+ rent: Rent[];
1486
+ buy: Buy[];
1487
+ flatrate: Flatrate[];
1488
+ };
1489
+ PL: {
1490
+ link: string;
1491
+ rent: Rent[];
1492
+ flatrate: Flatrate[];
1493
+ buy: Buy[];
1494
+ };
1495
+ PT: {
1496
+ link: string;
1497
+ rent: Rent[];
1498
+ flatrate: Flatrate[];
1499
+ buy: Buy[];
1500
+ };
1501
+ RO: {
1502
+ link: string;
1503
+ flatrate: Flatrate[];
1504
+ };
1505
+ RU: {
1506
+ link: string;
1507
+ rent: Rent[];
1508
+ flatrate: Flatrate[];
1509
+ buy: Buy[];
1510
+ };
1511
+ SE: {
1512
+ link: string;
1513
+ rent: Rent[];
1514
+ flatrate: Flatrate[];
1515
+ buy: Buy[];
1516
+ };
1517
+ SG: {
1518
+ link: string;
1519
+ flatrate: Flatrate[];
1520
+ buy: Buy[];
1521
+ rent: Rent[];
1522
+ };
1523
+ TH: {
1524
+ link: string;
1525
+ flatrate: Flatrate[];
1526
+ rent: Rent[];
1527
+ buy: Buy[];
1528
+ };
1529
+ TR: {
1530
+ link: string;
1531
+ buy: Buy[];
1532
+ rent: Rent[];
1533
+ flatrate: Flatrate[];
1534
+ };
1535
+ US: {
1536
+ link: string;
1537
+ rent: Rent[];
1538
+ buy: Buy[];
1539
+ flatrate: Flatrate[];
1540
+ };
1541
+ VE: {
1542
+ link: string;
1543
+ flatrate: Flatrate[];
1544
+ rent: Rent[];
1545
+ buy: Buy[];
1546
+ };
1547
+ ZA: {
1548
+ link: string;
1549
+ rent: Rent[];
1550
+ buy: Buy[];
1551
+ flatrate: Flatrate[];
1537
1552
  };
1538
1553
  }
1539
- type TvEpisodeChangeValue = string | unknown;
1540
-
1541
- interface SeasonSelection {
1542
- tvShowID: number;
1543
- seasonNumber: number;
1544
- }
1545
- interface SeasonDetails {
1546
- air_date: string;
1547
- episodes: Episode[];
1548
- name: string;
1549
- overview: string;
1554
+ interface WatchProviders {
1550
1555
  id: number;
1551
- poster_path: string | null;
1552
- season_number: number;
1556
+ results: WatchLocale;
1553
1557
  }
1554
- type TvSeasonChangeValue = string | {
1555
- episode_id: number;
1556
- episode_number: number;
1557
- };
1558
1558
 
1559
1559
  interface ErrorResponse {
1560
1560
  status_code: number;
@@ -1788,45 +1788,38 @@ declare class ChangeEndpoint extends BaseEndpoint {
1788
1788
  person(options?: ChangeOption): Promise<MediaChanges>;
1789
1789
  }
1790
1790
 
1791
- declare class CreditsEndpoint extends BaseEndpoint {
1791
+ declare class CollectionsEndpoint extends BaseEndpoint {
1792
1792
  protected readonly accessToken: string;
1793
1793
  constructor(accessToken: string);
1794
- getById(id: string): Promise<CreditResponse>;
1794
+ details(id: number, options?: LanguageOption): Promise<CollectionDetails>;
1795
+ images(id: number, options?: CollectionImageOptions): Promise<ImageCollection>;
1796
+ translations(id: number, options?: LanguageOption): Promise<Translations>;
1795
1797
  }
1796
1798
 
1797
- interface SearchOptions {
1798
- query: string;
1799
- page?: number;
1800
- }
1801
- interface MovieSearchOptions extends SearchOptions, LanguageOption, PageOption, RegionOption {
1802
- include_adult?: boolean;
1803
- year?: number;
1804
- primary_release_year?: number;
1805
- }
1806
- interface TvSearchOptions extends SearchOptions, LanguageOption, PageOption {
1807
- include_adult?: boolean;
1808
- year?: number;
1809
- first_air_date_year?: number;
1810
- }
1811
- interface PeopleSearchOptions extends SearchOptions, LanguageOption, PageOption {
1812
- include_adult?: boolean;
1813
- }
1814
- interface MultiSearchOptions extends SearchOptions, LanguageOption, PageOption {
1815
- include_adult?: boolean;
1799
+ declare class ConfigurationEndpoint extends BaseEndpoint {
1800
+ protected readonly accessToken: string;
1801
+ constructor(accessToken: string);
1802
+ getApiConfiguration(): Promise<Configuration>;
1803
+ getCountries(): Promise<CountryConfiguration[]>;
1804
+ getLanguages(): Promise<LanguageConfiguration[]>;
1805
+ getJobs(): Promise<JobConfiguration[]>;
1806
+ getPrimaryTranslations(): Promise<string[]>;
1807
+ getTimezones(): Promise<TimezoneConfiguration[]>;
1816
1808
  }
1817
- declare class SearchEndpoint extends BaseEndpoint {
1809
+
1810
+ declare class CreditsEndpoint extends BaseEndpoint {
1818
1811
  protected readonly accessToken: string;
1819
1812
  constructor(accessToken: string);
1820
- companies(options: SearchOptions): Promise<Search<Company>>;
1821
- collections(options: SearchOptions): Promise<Search<Collection>>;
1822
- keywords(options: SearchOptions): Promise<Search<{
1823
- id: string;
1824
- name: string;
1825
- }>>;
1826
- movies(options: MovieSearchOptions): Promise<Search<Movie>>;
1827
- people(options: PeopleSearchOptions): Promise<Search<Person>>;
1828
- tvShows(options: TvSearchOptions): Promise<Search<TV>>;
1829
- multi(options: MultiSearchOptions): Promise<Search<MultiSearchResult>>;
1813
+ getById(id: string): Promise<CreditResponse>;
1814
+ }
1815
+
1816
+ declare class DiscoverEndpoint extends BaseEndpoint {
1817
+ movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult>;
1818
+ tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult>;
1819
+ }
1820
+
1821
+ declare class FindEndpoint extends BaseEndpoint {
1822
+ byExternalId(id: string, options: ExternalIdOptions): Promise<FindResult>;
1830
1823
  }
1831
1824
 
1832
1825
  interface Genres {
@@ -1842,6 +1835,15 @@ declare class GenreEndpoint extends BaseEndpoint {
1842
1835
  tvShows(options?: LanguageOption): Promise<Genres>;
1843
1836
  }
1844
1837
 
1838
+ declare class KeywordsEndpoint extends BaseEndpoint {
1839
+ details(keywordId: number): Promise<Keyword>;
1840
+ /**
1841
+ *
1842
+ * @deprecated
1843
+ */
1844
+ belongingMovies(keywordId: number, options?: KeywordsOptions): Promise<BelongingMovies>;
1845
+ }
1846
+
1845
1847
  interface MoviesImageSearchOptions extends LanguageOption {
1846
1848
  /**
1847
1849
  * a list of ISO-639-1 values to query
@@ -1877,54 +1879,6 @@ declare class MoviesEndpoint extends BaseEndpoint {
1877
1879
  upcoming(options?: PageOption & LanguageOption & RegionOption): Promise<UpcomingMovies>;
1878
1880
  }
1879
1881
 
1880
- declare class ConfigurationEndpoint extends BaseEndpoint {
1881
- protected readonly accessToken: string;
1882
- constructor(accessToken: string);
1883
- getApiConfiguration(): Promise<Configuration>;
1884
- getCountries(): Promise<CountryConfiguration[]>;
1885
- getLanguages(): Promise<LanguageConfiguration[]>;
1886
- getJobs(): Promise<JobConfiguration[]>;
1887
- getPrimaryTranslations(): Promise<string[]>;
1888
- getTimezones(): Promise<TimezoneConfiguration[]>;
1889
- }
1890
-
1891
- declare class TvShowsEndpoint extends BaseEndpoint {
1892
- protected readonly accessToken: string;
1893
- constructor(accessToken: string);
1894
- details<T extends AppendToResponseTvKey[] | undefined>(id: number, appendToResponse?: T, language?: string): Promise<AppendToResponse<TvShowDetails, T, "tvShow">>;
1895
- alternativeTitles(id: number): Promise<AlternativeTitles>;
1896
- changes(id: number, options?: ChangeOption): Promise<Changes<TvShowChangeValue>>;
1897
- contentRatings(id: number): Promise<ContentRatings>;
1898
- aggregateCredits(id: number, options?: LanguageOption): Promise<AggregateCredits>;
1899
- credits(id: number, options?: LanguageOption): Promise<Credits>;
1900
- season(tvId: number, seasonNumber: number): Promise<SeasonDetails>;
1901
- episodeGroups(id: number): Promise<EpisodeGroups>;
1902
- externalIds(id: number): Promise<ExternalIds>;
1903
- images(id: number, options?: TvShowImageOptions): Promise<Images>;
1904
- keywords(id: number): Promise<Keywords>;
1905
- recommendations(id: number, options?: LanguageOption & PageOption): Promise<Recommendations>;
1906
- reviews(id: number, options?: LanguageOption & PageOption): Promise<Reviews>;
1907
- screenedTheatrically(id: number): Promise<ScreenedTheatrically>;
1908
- similar(id: number, options?: LanguageOption & PageOption): Promise<SimilarTvShows>;
1909
- translations(id: number): Promise<Translations>;
1910
- videos(id: number, options?: TvShowVideoOptions): Promise<Videos>;
1911
- /**
1912
- * Powered by JustWatch
1913
- * @param id
1914
- */
1915
- watchProviders(id: number): Promise<WatchProviders>;
1916
- latest(): Promise<LatestTvShows>;
1917
- onTheAir(options?: PageOption & LanguageOption & TimezoneOption): Promise<OnTheAir>;
1918
- airingToday(options?: PageOption & LanguageOption & TimezoneOption): Promise<TvShowsAiringToday>;
1919
- popular(options?: PageOption & LanguageOption): Promise<PopularTvShows>;
1920
- topRated(options?: PageOption & LanguageOption): Promise<TopRatedTvShows>;
1921
- }
1922
-
1923
- declare class DiscoverEndpoint extends BaseEndpoint {
1924
- movie(options?: MovieQueryOptions): Promise<MovieDiscoverResult>;
1925
- tvShow(options?: TvShowQueryOptions): Promise<TvShowDiscoverResult>;
1926
- }
1927
-
1928
1882
  declare class PeopleEndpoint extends BaseEndpoint {
1929
1883
  details<T extends AppendToResponsePersonKey[] | undefined>(id: number, appendToResponse?: T, language?: string): Promise<AppendToResponse<PersonDetails, T, "person">>;
1930
1884
  changes(id: number, options?: ChangeOption): Promise<Changes<PersonChangeValue>>;
@@ -1946,29 +1900,65 @@ declare class ReviewEndpoint extends BaseEndpoint {
1946
1900
  details(id: string): Promise<ReviewDetails>;
1947
1901
  }
1948
1902
 
1903
+ interface SearchOptions {
1904
+ query: string;
1905
+ page?: number;
1906
+ }
1907
+ interface MovieSearchOptions extends SearchOptions, LanguageOption, PageOption, RegionOption {
1908
+ include_adult?: boolean;
1909
+ year?: number;
1910
+ primary_release_year?: number;
1911
+ }
1912
+ interface TvSearchOptions extends SearchOptions, LanguageOption, PageOption {
1913
+ include_adult?: boolean;
1914
+ year?: number;
1915
+ first_air_date_year?: number;
1916
+ }
1917
+ interface PeopleSearchOptions extends SearchOptions, LanguageOption, PageOption {
1918
+ include_adult?: boolean;
1919
+ }
1920
+ interface MultiSearchOptions extends SearchOptions, LanguageOption, PageOption {
1921
+ include_adult?: boolean;
1922
+ }
1923
+ declare class SearchEndpoint extends BaseEndpoint {
1924
+ protected readonly accessToken: string;
1925
+ constructor(accessToken: string);
1926
+ companies(options: SearchOptions): Promise<Search<Company>>;
1927
+ collections(options: SearchOptions): Promise<Search<Collection>>;
1928
+ keywords(options: SearchOptions): Promise<Search<{
1929
+ id: string;
1930
+ name: string;
1931
+ }>>;
1932
+ movies(options: MovieSearchOptions): Promise<Search<Movie>>;
1933
+ people(options: PeopleSearchOptions): Promise<Search<Person>>;
1934
+ tvShows(options: TvSearchOptions): Promise<Search<TV>>;
1935
+ multi(options: MultiSearchOptions): Promise<Search<MultiSearchResult>>;
1936
+ }
1937
+
1949
1938
  declare class TrendingEndpoint extends BaseEndpoint {
1950
1939
  trending<T extends TrendingMediaType>(mediaType: T, timeWindow: TimeWindow, options?: LanguageOption & PageOption): Promise<TrendingResults<T>>;
1951
1940
  }
1952
1941
 
1953
- declare class FindEndpoint extends BaseEndpoint {
1954
- byExternalId(id: string, options: ExternalIdOptions): Promise<FindResult>;
1942
+ interface TvEpisodeImageSearchOptions extends LanguageOption {
1943
+ /**
1944
+ * a list of ISO-639-1 values to query
1945
+ */
1946
+ include_image_language?: string[];
1955
1947
  }
1956
-
1957
- declare class KeywordsEndpoint extends BaseEndpoint {
1958
- details(keywordId: number): Promise<Keyword>;
1948
+ interface TvEpisodeVideoSearchOptions extends LanguageOption {
1959
1949
  /**
1960
- *
1961
- * @deprecated
1950
+ * a list of ISO-639-1 values to query
1962
1951
  */
1963
- belongingMovies(keywordId: number, options?: KeywordsOptions): Promise<BelongingMovies>;
1952
+ include_video_language?: string[];
1964
1953
  }
1965
-
1966
- declare class CollectionsEndpoint extends BaseEndpoint {
1967
- protected readonly accessToken: string;
1968
- constructor(accessToken: string);
1969
- details(id: number, options?: LanguageOption): Promise<CollectionDetails>;
1970
- images(id: number, options?: CollectionImageOptions): Promise<ImageCollection>;
1971
- translations(id: number, options?: LanguageOption): Promise<Translations>;
1954
+ declare class TvEpisodesEndpoint extends BaseEndpoint {
1955
+ details<T extends AppendToResponseTvEpisodeKey[] | undefined>(episodeSelection: EpisodeSelection, appendToResponse?: T, options?: LanguageOption): Promise<AppendToResponse<Omit<Episode, "show_id">, T, "tvEpisode">>;
1956
+ changes(episodeID: number, options?: ChangeOption): Promise<Changes<unknown>>;
1957
+ credits(episodeSelection: EpisodeSelection, options?: LanguageOption): Promise<TvEpisodeCredit>;
1958
+ externalIds(episodeSelection: EpisodeSelection): Promise<ExternalIds>;
1959
+ images(episodeSelection: EpisodeSelection, options?: TvEpisodeImageSearchOptions): Promise<Images>;
1960
+ translations(episodeSelection: EpisodeSelection): Promise<TvEpisodeTranslations>;
1961
+ videos(episodeSelection: EpisodeSelection, options?: TvEpisodeVideoSearchOptions): Promise<Videos>;
1972
1962
  }
1973
1963
 
1974
1964
  interface TvSeasonImageSearchOptions extends LanguageOption {
@@ -1994,26 +1984,36 @@ declare class TvSeasonsEndpoint extends BaseEndpoint {
1994
1984
  translations(seasonSelection: SeasonSelection, options?: LanguageOption): Promise<Translations>;
1995
1985
  }
1996
1986
 
1997
- interface TvEpisodeImageSearchOptions extends LanguageOption {
1998
- /**
1999
- * a list of ISO-639-1 values to query
2000
- */
2001
- include_image_language?: string[];
2002
- }
2003
- interface TvEpisodeVideoSearchOptions extends LanguageOption {
1987
+ declare class TvShowsEndpoint extends BaseEndpoint {
1988
+ protected readonly accessToken: string;
1989
+ constructor(accessToken: string);
1990
+ details<T extends AppendToResponseTvKey[] | undefined>(id: number, appendToResponse?: T, language?: string): Promise<AppendToResponse<TvShowDetails, T, "tvShow">>;
1991
+ alternativeTitles(id: number): Promise<AlternativeTitles>;
1992
+ changes(id: number, options?: ChangeOption): Promise<Changes<TvShowChangeValue>>;
1993
+ contentRatings(id: number): Promise<ContentRatings>;
1994
+ aggregateCredits(id: number, options?: LanguageOption): Promise<AggregateCredits>;
1995
+ credits(id: number, options?: LanguageOption): Promise<Credits>;
1996
+ season(tvId: number, seasonNumber: number): Promise<SeasonDetails>;
1997
+ episodeGroups(id: number): Promise<EpisodeGroups>;
1998
+ externalIds(id: number): Promise<ExternalIds>;
1999
+ images(id: number, options?: TvShowImageOptions): Promise<Images>;
2000
+ keywords(id: number): Promise<Keywords>;
2001
+ recommendations(id: number, options?: LanguageOption & PageOption): Promise<Recommendations>;
2002
+ reviews(id: number, options?: LanguageOption & PageOption): Promise<Reviews>;
2003
+ screenedTheatrically(id: number): Promise<ScreenedTheatrically>;
2004
+ similar(id: number, options?: LanguageOption & PageOption): Promise<SimilarTvShows>;
2005
+ translations(id: number): Promise<Translations>;
2006
+ videos(id: number, options?: TvShowVideoOptions): Promise<Videos>;
2004
2007
  /**
2005
- * a list of ISO-639-1 values to query
2008
+ * Powered by JustWatch
2009
+ * @param id
2006
2010
  */
2007
- include_video_language?: string[];
2008
- }
2009
- declare class TvEpisodesEndpoint extends BaseEndpoint {
2010
- details<T extends AppendToResponseTvEpisodeKey[] | undefined>(episodeSelection: EpisodeSelection, appendToResponse?: T, options?: LanguageOption): Promise<AppendToResponse<Omit<Episode, "show_id">, T, "tvEpisode">>;
2011
- changes(episodeID: number, options?: ChangeOption): Promise<Changes<unknown>>;
2012
- credits(episodeSelection: EpisodeSelection, options?: LanguageOption): Promise<TvEpisodeCredit>;
2013
- externalIds(episodeSelection: EpisodeSelection): Promise<ExternalIds>;
2014
- images(episodeSelection: EpisodeSelection, options?: TvEpisodeImageSearchOptions): Promise<Images>;
2015
- translations(episodeSelection: EpisodeSelection): Promise<TvEpisodeTranslations>;
2016
- videos(episodeSelection: EpisodeSelection, options?: TvEpisodeVideoSearchOptions): Promise<Videos>;
2011
+ watchProviders(id: number): Promise<WatchProviders>;
2012
+ latest(): Promise<LatestTvShows>;
2013
+ onTheAir(options?: PageOption & LanguageOption & TimezoneOption): Promise<OnTheAir>;
2014
+ airingToday(options?: PageOption & LanguageOption & TimezoneOption): Promise<TvShowsAiringToday>;
2015
+ popular(options?: PageOption & LanguageOption): Promise<PopularTvShows>;
2016
+ topRated(options?: PageOption & LanguageOption): Promise<TopRatedTvShows>;
2017
2017
  }
2018
2018
 
2019
2019
  type ProviderOptions = WatchRegionOption & LanguageOption;