UNPKG

78 kBTypeScriptView Raw
1/* eslint-disable no-shadow */
2import { IncomingHttpHeaders } from 'http2';
3
4declare namespace MovieDB {
5 namespace Objects {
6 interface Movie {
7 poster_path: string | null;
8 adult: boolean;
9 overview: string;
10 release_date: string;
11 genre_ids: number[];
12 id: number;
13 original_title: string;
14 original_language: string;
15 title: string;
16 backdrop_path: string | null;
17 popularity: number;
18 vote_count: number;
19 video: boolean;
20 vote_average: number;
21 }
22
23 interface MovieWithRating extends Movie {
24 rating: number;
25 }
26
27 interface MovieWithMediaType extends Movie {
28 media_type: 'movie';
29 }
30
31 interface TVShow {
32 poster_path: string | null;
33 popularity: number;
34 id: number;
35 backdrop_path: string | null;
36 vote_average: number;
37 overview: string;
38 first_air_date: string;
39 origin_country: string[];
40 genre_ids: number[];
41 original_language: string;
42 vote_count: number;
43 name: string;
44 original_name: string;
45 }
46
47 interface TVShowWithRating extends TVShow {
48 rating: number;
49 }
50
51 interface TVShowWithMediaType extends TVShow {
52 media_type: 'tv';
53 }
54
55 interface Status {
56 status_code: number;
57 status_message: string;
58 }
59
60 interface Image {
61 aspect_ratio: number;
62 file_path: string;
63 height: number;
64 iso_639_1: null;
65 vote_average: number;
66 vote_count: number;
67 width: number;
68 }
69
70 interface Translation {
71 iso_639_1: string;
72 iso_3166_1: string;
73 name: string;
74 english_name: string;
75 data: {
76 title: string;
77 overview: string;
78 homepage: string;
79 };
80 }
81
82 interface AccountStates {
83 id: number;
84 favorite: boolean;
85 watchlist: boolean;
86 rated: {
87 value: number;
88 } | boolean;
89 }
90
91 interface AlternativeTitles {
92 id: number;
93 titles: {
94 iso_3166_1: string;
95 title: string;
96 type: string;
97 }[];
98 }
99
100 interface ChangesTVShow {
101 changes: {
102 key: string;
103 items: {
104 id: string;
105 action: string;
106 time: string;
107 }[];
108 }[];
109 }
110
111 interface ChangesMovie {
112 changes: {
113 key: string;
114 items: {
115 id: string;
116 action: string;
117 time: string;
118 iso_639_1: string;
119 value: string;
120 original_value: string;
121 }[];
122 }[];
123 }
124
125 interface MovieExternalIDs {
126 imdb_id: string | null;
127 facebook_id: string | null;
128 instagram_id: string | null;
129 twitter_id: string | null;
130 id: number;
131 }
132
133 interface TVShowExternalIDs extends MovieExternalIDs {
134 freebase_mid: string | null;
135 freebase_id: string | null;
136 tvdb_id: number | null;
137 tvrage_id: number | null;
138 }
139
140 interface TVSeasonExternalIDs {
141 freebase_mid: string | null;
142 freebase_id: string | null;
143 tvdb_id: number | null;
144 tvrage_id: number | null;
145 id: number;
146 }
147
148 interface TVEpisodeExternalIDs {
149 imdb_id: string | null;
150 freebase_mid: string | null;
151 freebase_id: string | null;
152 tvdb_id: number | null;
153 tvrage_id: number | null;
154 id: number;
155 }
156
157 interface Videos {
158 id: number;
159 results: {
160 id: string;
161 iso_639_1: string;
162 iso_3166_1: string;
163 key: string;
164 name: string;
165 site: string;
166 size:
167 | 360
168 | 480
169 | 720
170 | 1080;
171 type:
172 | 'Trailer'
173 | 'Teaser'
174 | 'Clip'
175 | 'Featurette'
176 | 'Behind the Scenes'
177 | 'Bloopers';
178 }[];
179 }
180
181 interface Reviews {
182 id: number;
183 page: number;
184 total_pages: number;
185 total_results: number;
186 results: {
187 id: string;
188 author: string;
189 content: string;
190 url: string;
191 }[];
192 }
193
194 interface Person {
195 profile_path: string | null;
196 adult: boolean;
197 id: number;
198 known_for: (MovieWithMediaType | TVShowWithMediaType)[];
199 name: string;
200 popularity: number;
201 }
202
203 interface PersonWithMediaType extends Person {
204 media_type: 'person';
205 }
206
207 interface Episode {
208 air_date: string;
209 episode_number: number;
210 id: number;
211 name: string;
212 overview: string;
213 production_code: string;
214 season_number: number;
215 show_id: number;
216 still_path: string | null;
217 vote_average: number;
218 vote_count: number;
219 }
220 }
221
222 namespace Endpoints {
223 interface Account {
224 getDetails(sessionID: string): Response<Responses.Account.GetDetails>;
225 getCreatedList(args: Arguments.Account.GetCreatedList): Response<Responses.Account.GetCreatedList>;
226 getFavoriteMovies(args: Arguments.Account.GetFavoriteMovies): Response<Responses.Account.GetFavoriteMovies>;
227 getFavoriteTVShows(args: Arguments.Account.GetFavoriteTVShows): Response<Responses.Account.GetFavoriteTVShows>;
228 markAsFavorite(args: Arguments.Account.MarkAsFavorite): Response<Responses.Account.MarkAsFavorite>;
229 getRatedMovies(args: Arguments.Account.GetRatedMovies): Response<Responses.Account.GetRatedMovies>;
230 getRatedTVShows(args: Arguments.Account.GetRatedTVShows): Response<Responses.Account.GetRatedTVShows>;
231 getRatedTVEpisodes(args: Arguments.Account.GetRatedTVEpisodes): Response<Responses.Account.GetRatedTVEpisodes>;
232 getMovieWatchlist(args: Arguments.Account.GetMovieWatchlist): Response<Responses.Account.GetMovieWatchlist>;
233 getTVShowWatchlist(args: Arguments.Account.GetTVShowWatchlist): Response<Responses.Account.GetTVShowWatchlist>;
234 addToWatchlist(args: Arguments.Account.AddToWatchlist): Response<Responses.Account.AddToWatchlist>;
235 }
236
237 interface Authentication {
238 createGuestSession(): Response<Responses.Authentication.CreateGuestSession>;
239 createRequestToken(): Response<Responses.Authentication.CreateRequestToken>;
240 createSession(args: Arguments.Authentication.CreateSession): Response<Responses.Authentication.CreateSession>;
241 createSessionWithLogin(
242 args: Arguments.Authentication.CreateSessionWithLogin,
243 ): Response<Responses.Authentication.CreateSessionWithLogin>;
244 createSessionFromAccessToken(
245 args: Arguments.Authentication.CreateSessionFromAccessToken,
246 ): Response<Responses.Authentication.CreateSessionFromAccessToken>;
247 deleteSession(args: Arguments.Authentication.DeleteSession): Response<Responses.Authentication.DeleteSession>;
248 }
249
250 interface Certification {
251 getMovieCertifications(): Response<Responses.Certification.GetMovieCertifications>;
252 getTVCertifications(): Response<Responses.Certification.GetTVCertifications>;
253 }
254
255 interface Collection {
256 getDetails(args: Arguments.Collection.GetDetails): Response<Responses.Collection.GetDetails>;
257 getImages(args: Arguments.Collection.GetImages): Response<Responses.Collection.GetImages>;
258 getTranslations(args: Arguments.Collection.GetTranslations): Response<Responses.Collection.GetTranslations>;
259 }
260
261 interface Company {
262 getDetails(args: Arguments.Company.Common): Response<Responses.Company.GetDetails>;
263 getAlternativeNames(args: Arguments.Company.Common): Response<Responses.Company.GetAlternativeNames>;
264 getImages(args: Arguments.Company.Common): Response<Responses.Company.GetImages>;
265 }
266
267 interface Configuration {
268 getAPIConfiguration(): Response<Responses.Configuration.GetAPIConfiguration>;
269 getCountries(): Response<Responses.Configuration.GetCountries[]>;
270 getJobs(): Response<Responses.Configuration.GetJobs[]>;
271 getLanguages(): Response<Responses.Configuration.GetLanguages[]>;
272 getPrimaryTranslations(): Response<string[]>;
273 getTimezones(): Response<Responses.Configuration.GetTimezones[]>;
274 }
275
276 interface Credit {
277 getDetails(args: Arguments.Credit.GetDetails): Response<Responses.Credit.GetDetails>;
278 }
279
280 interface Discover {
281 movie(args: Arguments.Discover.Movie): Response<Responses.Discover.Movie>;
282 tv(args: Arguments.Discover.TV): Response<Responses.Discover.TV>;
283 }
284
285 interface Find {
286 byExternalID(args: Arguments.Find.ByID): Response<Responses.Find.ByExternalID>;
287 }
288
289 interface Genre {
290 getMovieList(): Response<Responses.Genre.Common>;
291 getTVList(): Response<Responses.Genre.Common>;
292 }
293
294 interface GuestSession {
295 getRatedMovies(args: Arguments.GuestSession.Common): Response<Responses.GuestSession.GetRatedMovies>;
296 getRatedTVShows(args: Arguments.GuestSession.Common): Response<Responses.GuestSession.GetRatedTVShows>;
297 getRatedTVEpisodes(args: Arguments.GuestSession.Common): Response<Responses.GuestSession.GetRatedTVEpisodes>;
298 }
299
300 interface Keyword {
301 getDetails(args: Arguments.Keyword.GetDetails): Response<Responses.Keyword.GetDetails>;
302 getMovies(args: Arguments.Keyword.GetMovies): Response<Responses.Keyword.GetMovies>;
303 }
304
305 interface List {
306 getDetails(args: Arguments.List.GetDetails): Response<Responses.List.GetDetails>;
307 checkItemStatus(args: Arguments.List.CheckItemStatus): Response<Responses.List.CheckItemStatus>;
308 createList(args: Arguments.List.CreateList): Response<Responses.List.CreateList>;
309 addMovie(args: Arguments.List.AddMovie): Response<Responses.List.AddMovie>;
310 removeMovie(args: Arguments.List.RemoveMovie): Response<Responses.List.RemoveMovie>;
311 clearList(args: Arguments.List.ClearList): Response<Responses.List.ClearList>;
312 deleteList(args: Arguments.List.DeleteList): Response<Responses.List.DeleteList>;
313 }
314
315 interface Movie {
316 getDetails(args: Arguments.Movie.GetDetails): Response<Responses.Movie.GetDetails>;
317 getAccountStates(args: Arguments.Movie.GetAccountStates): Response<Responses.Movie.GetAccountStates>;
318 getAlternativeTitles(args: Arguments.Movie.GetAlternativeTitles): Response<Responses.Movie.GetAlternativeTitles>;
319 getChanges(args: Arguments.Movie.GetChanges): Response<Responses.Movie.GetChanges>;
320 getCredits(args: Arguments.Movie.GetCredits): Response<Responses.Movie.GetCredits>;
321 getExternalIDs(args: Arguments.Movie.GetExternalIDs): Response<Responses.Movie.GetExternalIDs>;
322 getImages(args: Arguments.Movie.GetImages): Response<Responses.Movie.GetImages>;
323 getKeywords(args: Arguments.Movie.GetKeywords): Response<Responses.Movie.GetKeywords>;
324 getReleaseDates(args: Arguments.Movie.GetReleaseDates): Response<Responses.Movie.GetReleaseDates>;
325 getVideos(args: Arguments.Movie.GetVideos): Response<Responses.Movie.GetVideos>;
326 getTranslations(args: Arguments.Movie.GetTranslations): Response<Responses.Movie.GetTranslations>;
327 getRecommendations(args: Arguments.Movie.GetRecommendations): Response<Responses.Movie.GetRecommendations>;
328 getSimilarMovies(args: Arguments.Movie.GetSimilarMovies): Response<Responses.Movie.GetSimilarMovies>;
329 getReviews(args: Arguments.Movie.GetReviews): Response<Responses.Movie.GetReviews>;
330 getLists(args: Arguments.Movie.GetLists): Response<Responses.Movie.GetLists>;
331 rateMovie(args: Arguments.Movie.RateMovie): Response<Responses.Movie.RateMovie>;
332 deleteRating(args: Arguments.Movie.DeleteRating): Response<Responses.Movie.DeleteRating>;
333 getLatest(): Response<Responses.Movie.GetLatest>;
334 getNowPlaying(args: Arguments.Movie.GetNowPlaying): Response<Responses.Movie.GetNowPlaying>;
335 getPopular(args: Arguments.Movie.GetPopular): Response<Responses.Movie.GetPopular>;
336 getTopRated(args: Arguments.Movie.GetTopRated): Response<Responses.Movie.GetTopRated>;
337 getUpcoming(args: Arguments.Movie.GetUpcoming): Response<Responses.Movie.GetUpcoming>;
338 getChangeList(args: Arguments.Movie.GetChangeList): Response<Responses.Movie.GetChangeList>;
339 }
340
341 interface Network {
342 getDetails(args: Arguments.Network.GetDetails): Response<Responses.Network.GetDetails>;
343 getAlternativeNames(args: Arguments.Network.GetAlternativeNames): Response<Responses.Network.GetAlternativeNames>;
344 getImages(args: Arguments.Network.GetImages): Response<Responses.Network.GetImages>;
345 }
346
347 interface Trending {
348 getTrending(args: Arguments.Trending.GetTrending): Response<Responses.Trending.GetTrending>;
349 }
350
351 interface Person {
352 getDetails(args: Arguments.Person.GetDetails): Response<Responses.Person.GetDetails>;
353 getChanges(args: Arguments.Person.GetChanges): Response<Responses.Person.GetChanges>;
354 getMovieCredits(args: Arguments.Person.GetMovieCredits): Response<Responses.Person.GetMovieCredits>;
355 getTVCredits(args: Arguments.Person.GetTVCredits): Response<Responses.Person.GetTVCredits>;
356 getCombinedCredits(args: Arguments.Person.GetCombinedCredits): Response<Responses.Person.GetCombinedCredits>;
357 getExternalIDs(args: Arguments.Person.GetExternalIDs): Response<Responses.Person.GetExternalIDs>;
358 getImages(args: Arguments.Person.GetImages): Response<Responses.Person.GetImages>;
359 getTaggedImages(args: Arguments.Person.GetTaggedImages): Response<Responses.Person.GetTaggedImages>;
360 getTranslations(args: Arguments.Person.GetTranslations): Response<Responses.Person.GetTranslations>;
361 getLatest(): Response<Responses.Person.GetLatest>;
362 getPopular(args: Arguments.Person.GetPopular): Response<Responses.Person.GetPopular>;
363 getChangeList(args: Arguments.Person.GetChangeList): Response<Responses.Person.GetChangeList>;
364 }
365
366 interface Review {
367 getDetails(args: Arguments.Review.GetDetails): Response<Responses.Review.GetDetails>;
368 }
369
370 interface Search {
371 companies(args: Arguments.Search.Companies): Response<Responses.Search.Companies>;
372 collections(args: Arguments.Search.Collections): Response<Responses.Search.Collections>;
373 keywords(args: Arguments.Search.Keywords): Response<Responses.Search.Keywords>;
374 movies(args: Arguments.Search.Movies): Response<Responses.Search.Movies>;
375 multi(args: Arguments.Search.Multi): Response<Responses.Search.Multi>;
376 people(args: Arguments.Search.People): Response<Responses.Search.People>;
377 TVShows(args: Arguments.Search.TVShows): Response<Responses.Search.TVShows>;
378 }
379
380 interface TV {
381 season: {
382 getDetails(args: Arguments.TV.Season.GetDetails): Response<Responses.TV.Season.GetDetails>;
383 getChanges(args: Arguments.TV.Season.GetChanges): Response<Responses.TV.Season.GetChanges>;
384 getAccountStates(args: Arguments.TV.Season.GetAccountStates): Response<Responses.TV.Season.GetAccountStates>;
385 getCredits(args: Arguments.TV.Season.GetCredits): Response<Responses.TV.Season.GetCredits>;
386 getExternalIDs(args: Arguments.TV.Season.GetExternalIDs): Response<Responses.TV.Season.GetExternalIDs>;
387 getImages(args: Arguments.TV.Season.GetImages): Response<Responses.TV.Season.GetImages>;
388 getVideos(args: Arguments.TV.Season.GetVideos): Response<Responses.TV.Season.GetVideos>;
389 };
390 episode: {
391 getDetails(args: Arguments.TV.Episode.GetDetails): Response<Responses.TV.Episode.GetDetails>;
392 getChanges(args: Arguments.TV.Episode.GetChanges): Response<Responses.TV.Episode.GetChanges>;
393 getAccountStates(args: Arguments.TV.Episode.GetAccountStates): Response<Responses.TV.Episode.GetAccountStates>;
394 getCredits(args: Arguments.TV.Episode.GetCredits): Response<Responses.TV.Episode.GetCredits>;
395 getExternalIDs(args: Arguments.TV.Episode.GetExternalIDs): Response<Responses.TV.Episode.GetExternalIDs>;
396 getImages(args: Arguments.TV.Episode.GetImages): Response<Responses.TV.Episode.GetImages>;
397 getTranslations(args: Arguments.TV.Episode.GetTranslations): Response<Responses.TV.Episode.GetTranslations>;
398 rateTVEpisode(args: Arguments.TV.Episode.RateTVEpisode): Response<Responses.TV.Episode.RateTVEpisode>;
399 deleteRating(args: Arguments.TV.Episode.DeleteRating): Response<Responses.TV.Episode.DeleteRating>;
400 getVideos(args: Arguments.TV.Episode.GetVideos): Response<Responses.TV.Episode.GetVideos>;
401 };
402 group: {
403 getDetails(args: Arguments.TV.Group.GetDetails): Response<Responses.TV.Group.GetDetails>;
404 };
405 getDetails(args: Arguments.TV.GetDetails): Response<Responses.TV.GetDetails>;
406 getAccountStates(args: Arguments.TV.GetAccountStates): Response<Responses.TV.GetAccountStates>;
407 getAlternativeTitles(args: Arguments.TV.GetAlternativeTitles): Response<Responses.TV.GetAlternativeTitles>;
408 getChanges(args: Arguments.TV.GetChanges): Response<Responses.TV.GetChanges>;
409 getContentRatings(args: Arguments.TV.GetContentRatings): Response<Responses.TV.GetContentRatings>;
410 getCredits(args: Arguments.TV.GetCredits): Response<Responses.TV.GetCredits>;
411 getEpisodeGroups(args: Arguments.TV.GetEpisodeGroups): Response<Responses.TV.GetEpisodeGroups>;
412 getExternalIDs(args: Arguments.TV.GetExternalIDs): Response<Responses.TV.GetExternalIDs>;
413 getImages(args: Arguments.TV.GetImages): Response<Responses.TV.GetImages>;
414 getKeywords(args: Arguments.TV.GetKeywords): Response<Responses.TV.GetKeywords>;
415 getRecommendations(args: Arguments.TV.GetRecommendations): Response<Responses.TV.GetRecommendations>;
416 getReviews(args: Arguments.TV.GetReviews): Response<Responses.TV.GetReviews>;
417 getScreenedTheatrically(
418 args: Arguments.TV.GetScreenedTheatrically,
419 ): Response<Responses.TV.GetScreenedTheatrically>;
420 getSimilarTVShows(args: Arguments.TV.GetSimilarTVShows): Response<Responses.TV.GetSimilarTVShows>;
421 getTranslations(args: Arguments.TV.GetTranslations): Response<Responses.TV.GetTranslations>;
422 getVideos(args: Arguments.TV.GetVideos): Response<Responses.TV.GetVideos>;
423 rateTVShow(args: Arguments.TV.RateTVShow): Response<Responses.TV.RateTVShow>;
424 deleteRating(args: Arguments.TV.DeleteRating): Response<Responses.TV.DeleteRating>;
425 getLatest(): Response<Responses.TV.GetLatest>;
426 getAiringToday(args: Arguments.TV.GetAiringToday): Response<Responses.TV.GetAiringToday>;
427 getOnAir(args: Arguments.TV.GetOnAir): Response<Responses.TV.GetOnAir>;
428 getPopular(args: Arguments.TV.GetPopular): Response<Responses.TV.GetPopular>;
429 getTopRated(args: Arguments.TV.GetTopRated): Response<Responses.TV.GetTopRated>;
430 getChangeList(args: Arguments.TV.GetChangeList): Response<Responses.TV.GetChangeList>;
431 }
432 }
433
434 namespace Arguments {
435 namespace Account {
436 interface GetCreatedList {
437 query: {
438 session_id: string;
439 page?: number | string;
440 };
441 pathParameters: {
442 account_id: number | string;
443 };
444 }
445
446 interface GetFavoriteMovies {
447 query: {
448 session_id: string;
449 sort_by?: 'created_at.asc' | 'created_at.desc';
450 page?: number | string;
451 };
452 pathParameters: {
453 account_id: number | string;
454 };
455 }
456
457 interface GetFavoriteTVShows {
458 query: {
459 session_id: number | string;
460 sort_by?: 'created_at.asc' | 'created_at.desc';
461 page?: number | string;
462 };
463 pathParameters: {
464 account_id: number | string;
465 };
466 }
467
468 interface MarkAsFavorite {
469 query: {
470 session_id: string;
471 };
472 pathParameters: {
473 account_id: number | string;
474 };
475 body: {
476 media_type: 'movie' | 'tv';
477 media_id: number;
478 favorite: boolean;
479 };
480 }
481
482 interface GetRatedMovies {
483 query: {
484 session_id: string;
485 sort_by?: 'created_at.asc' | 'created_at.desc';
486 page?: number | string;
487 };
488 pathParameters: {
489 account_id: number | string;
490 };
491 }
492
493 interface GetRatedTVShows {
494 query: {
495 session_id: string;
496 sort_by?: 'created_at.asc' | 'created_at.desc';
497 page?: number;
498 };
499 pathParameters: {
500 account_id: number | string;
501 };
502 }
503
504 interface GetRatedTVEpisodes {
505 query: {
506 session_id: string;
507 sort_by?: 'created_at.asc' | 'created_at.desc';
508 page?: number | string;
509 };
510 pathParameters: {
511 account_id: number | string;
512 };
513 }
514
515 interface GetMovieWatchlist {
516 query: {
517 session_id: string;
518 sort_by?: 'created_at.asc' | 'created_at.desc';
519 page?: number | string;
520 };
521 pathParameters: {
522 account_id: number | string;
523 };
524 }
525
526 interface GetTVShowWatchlist {
527 query: {
528 session_id: string;
529 sort_by?: 'created_at.asc' | 'created_at.desc';
530 page?: number | string;
531 };
532 pathParameters: {
533 account_id: number | string;
534 };
535 }
536
537 interface AddToWatchlist {
538 query: {
539 session_id: string;
540 };
541 pathParameters: {
542 account_id: number | string;
543 };
544 body: {
545 media_type: 'movie' | 'tv';
546 media_id: number;
547 watchlist: boolean;
548 };
549 }
550 }
551
552 namespace Authentication {
553 interface CreateSession {
554 body: {
555 request_token: string;
556 };
557 }
558
559 interface CreateSessionWithLogin {
560 body: {
561 username: string;
562 password: string;
563 request_token: string;
564 };
565 }
566
567 interface CreateSessionFromAccessToken {
568 body: {
569 access_token: string;
570 };
571 }
572
573 interface DeleteSession {
574 body: {
575 session_id: string;
576 };
577 }
578 }
579
580 namespace Collection {
581 interface GetDetails {
582 pathParameters: {
583 collection_id: number | string;
584 };
585 }
586
587 interface GetImages {
588 pathParameters: {
589 collection_id: number | string;
590 };
591 }
592
593 interface GetTranslations {
594 pathParameters: {
595 collection_id: number | string;
596 };
597 }
598 }
599
600 namespace Company {
601 interface Common {
602 pathParamaters: {
603 company_id: number | string;
604 };
605 }
606 }
607
608 namespace Credit {
609 interface GetDetails {
610 pathParameters: {
611 credit_id: string;
612 };
613 }
614 }
615
616 namespace Discover {
617 interface Movie {
618 query?: {
619 region?: string;
620 sort_by?:
621 | 'popularity.asc' | 'popularity.desc'
622 | 'release_date.asc' | 'release_date.desc'
623 | 'revenue.asc' | 'revenue.desc'
624 | 'primary_release_date.asc' | 'primary_release_date.desc'
625 | 'original_title.asc' | 'original_title.desc'
626 | 'vote_average.asc' | 'vote_average.desc'
627 | 'vote_count.asc' | 'vote_count.desc';
628 certification_country?: string;
629 certification?: string;
630 'certification.let'?: string;
631 include_adult?: boolean;
632 include_video?: boolean;
633 page?: number | string;
634 primary_release_year?: number | string;
635 'primary_release_date.lte'?: string;
636 'primary_release_date.gte'?: string;
637 'release_date.gte'?: string;
638 'release_date.lte'?: string;
639 'vote_count.gte'?: number | string;
640 'vote_count.lte'?: number | string;
641 'vote_average.gte'?: number | string;
642 'vote_average.lte'?: number | string;
643 with_cast?: string;
644 with_crew?: string;
645 with_companies?: string;
646 with_genres?: string;
647 with_keywords?: string;
648 with_people?: string;
649 year?: number | string;
650 without_genres?: string;
651 'with_runtime.gte'?: number | string;
652 'with_runtime.lte'?: number | string;
653 with_release_type?: string;
654 with_original_language?: string;
655 without_keywords?: string;
656 };
657 }
658
659 interface TV {
660 query?: {
661 'vote_average.gte'?: number | string;
662 'vote_average.lte'?: number | string;
663 with_genres?: string;
664 without_genres?: string;
665 'with_runtime.gte'?: number | string;
666 'with_runtime.lte'?: number | string;
667 with_original_language?: string;
668 without_keywords?: string;
669 with_companies?: string;
670 sort_by?:
671 | 'vote_average.asc' | 'vote_average.desc'
672 | 'first_air_date.asc' | 'first_air_date.desc'
673 | 'popularity.asc' | 'popularity.desc';
674 'air_date.gte'?: string;
675 'air_date.lte'?: string;
676 'first_air_date.gte'?: string;
677 'first_air_date.lte'?: string;
678 first_air_date_year?: number | string;
679 page?: number | string;
680 timezone?: string;
681 with_networks?: string;
682 include_null_first_air_dates?: boolean;
683 screened_theatrically?: boolean;
684 };
685 }
686 }
687
688 namespace Find {
689 interface ByID {
690 query: {
691 external_source:
692 | 'imdb_id'
693 | 'freebase_mid'
694 | 'freebase_id'
695 | 'tvdb_id'
696 | 'tvrage_id'
697 | 'facebook_id'
698 | 'twitter_id'
699 | 'instagram_id';
700 };
701 pathParameters: {
702 external_id: string;
703 };
704 }
705 }
706
707 namespace GuestSession {
708 interface Common {
709 query?: {
710 sort_by?: 'created_at.asc' | 'created_at.desc';
711 };
712 pathParameters: {
713 guest_session_id: string;
714 };
715 }
716 }
717
718 namespace Keyword {
719 interface GetDetails {
720 pathParameters: {
721 keyword_id: number | string;
722 };
723 }
724
725 interface GetMovies extends GetDetails {
726 query?: {
727 include_adult?: boolean;
728 };
729 }
730 }
731
732 namespace List {
733 interface Common {
734 pathParameters: {
735 list_id: number | string;
736 };
737 }
738
739 interface GetDetails extends Common {}
740
741 interface CheckItemStatus extends Common {
742 query: {
743 movie_id: number;
744 };
745 }
746
747 interface CreateList {
748 query: {
749 session_id: string;
750 };
751 body: {
752 name?: string;
753 description?: string;
754 language?: string;
755 };
756 }
757
758 interface AddMovie {
759 query: {
760 session_id: string;
761 };
762 pathParameters: {
763 list_id: number | string;
764 };
765 body: {
766 media_id: number;
767 };
768 }
769
770 interface RemoveMovie extends AddMovie {}
771
772 interface ClearList {
773 query: {
774 session_id: string;
775 confirm: boolean;
776 };
777 pathParameters: {
778 list_id: number | string;
779 };
780 }
781
782 interface DeleteList {
783 query: {
784 session_id: string;
785 };
786 pathParameters: {
787 list_id: number | string;
788 };
789 }
790 }
791
792 namespace Movie {
793 interface Common {
794 pathParameters: {
795 movie_id: number | string;
796 };
797 }
798
799 interface GetDetails extends Common {
800 query?: {
801 append_to_response?: string;
802 };
803 }
804
805 interface GetAccountStates extends Common {
806 query: {
807 session_id?: string;
808 guest_session_id?: string;
809 };
810 }
811
812 interface GetAlternativeTitles extends Common {
813 query?: {
814 country?: string;
815 };
816 }
817
818 interface GetChanges extends Common {
819 query?: {
820 start_date?: string;
821 end_date?: string;
822 page?: number | string;
823 };
824 }
825
826 interface GetCredits extends Common {}
827
828 interface GetExternalIDs extends Common {}
829
830 interface GetImages extends Common {
831 query?: {
832 include_image_language?: string;
833 };
834 }
835
836 interface GetKeywords extends Common {}
837
838 interface GetReleaseDates extends Common {}
839
840 interface GetVideos extends Common {}
841
842 interface GetTranslations extends Common {}
843
844 interface GetRecommendations extends Common {
845 query?: {
846 page?: number | string;
847 };
848 }
849
850 interface GetSimilarMovies extends Common {
851 query?: {
852 page?: number | string;
853 };
854 }
855
856 interface GetReviews extends Common {
857 query?: {
858 page?: number | string;
859 };
860 }
861
862 interface GetLists extends Common {
863 query?: {
864 page?: number | string;
865 };
866 }
867
868 interface RateMovie extends Common {
869 query?: {
870 guest_session_id?: string;
871 session_id?: string;
872 };
873 body: {
874 value: number;
875 };
876 }
877
878 interface DeleteRating extends Common {
879 query?: {
880 guest_session_id?: string;
881 session_id?: string;
882 };
883 }
884
885 interface GetNowPlaying {
886 query?: {
887 page?: number | string;
888 region?: string;
889 };
890 }
891
892 interface GetPopular extends GetNowPlaying {}
893
894 interface GetTopRated extends GetNowPlaying {}
895
896 interface GetUpcoming extends GetNowPlaying {}
897
898 interface GetChangeList {
899 query?: {
900 end_date?: string;
901 start_date?: string;
902 page?: number | string;
903 };
904 }
905 }
906
907 namespace Network {
908 interface Common {
909 pathParameters: {
910 network_id: number | string;
911 };
912 }
913
914 interface GetDetails extends Common {}
915
916 interface GetAlternativeNames extends Common {}
917
918 interface GetImages extends Common {}
919 }
920
921 namespace Trending {
922 interface GetTrending {
923 pathParameters: {
924 media_type:
925 | 'all'
926 | 'movie'
927 | 'tv'
928 | 'person';
929 time_window:
930 | 'day'
931 | 'week';
932 };
933 }
934 }
935
936 namespace Person {
937 interface Common {
938 pathParameters: {
939 person_id: number;
940 };
941 }
942
943 interface GetDetails extends Common {
944 query?: {
945 language?: string;
946 append_to_response?: string;
947 };
948 }
949
950 interface GetChanges extends Common {
951 query?: {
952 end_date?: string;
953 start_date?: string;
954 page?: number | string;
955 };
956 }
957
958 interface GetMovieCredits extends Common {}
959
960 interface GetTVCredits extends Common {}
961
962 interface GetCombinedCredits extends Common {}
963
964 interface GetExternalIDs extends Common {}
965
966 interface GetImages extends Common {}
967
968 interface GetTaggedImages extends Common {
969 query?: {
970 page?: number | string;
971 };
972 }
973
974 interface GetTranslations extends Common {}
975
976 interface GetPopular {
977 query?: {
978 page?: number | string;
979 };
980 }
981
982 interface GetChangeList {
983 query?: {
984 end_date?: string;
985 start_date?: string;
986 page?: number | string;
987 };
988 }
989 }
990
991 namespace Review {
992 interface GetDetails {
993 pathParameters: {
994 review_id: string;
995 };
996 }
997 }
998
999 namespace Search {
1000 interface Companies {
1001 query: {
1002 query: string;
1003 page?: number | string;
1004 };
1005 }
1006
1007 interface Collections {
1008 query: {
1009 query: string;
1010 page?: number | string;
1011 };
1012 }
1013
1014 interface Keywords {
1015 query: {
1016 query: string;
1017 page?: number | string;
1018 };
1019 }
1020
1021 interface Movies {
1022 query: {
1023 query: string;
1024 page?: number | string;
1025 include_adult?: boolean;
1026 region?: string;
1027 year?: number;
1028 primary_release_year?: number;
1029 };
1030 }
1031
1032 interface Multi {
1033 query: {
1034 query: string;
1035 page?: number | string;
1036 include_adult?: boolean;
1037 region?: string;
1038 };
1039 }
1040
1041 interface People {
1042 query: {
1043 query: string;
1044 page?: number | string;
1045 include_adult?: boolean;
1046 region?: string;
1047 };
1048 }
1049
1050 interface TVShows {
1051 query: {
1052 query: string;
1053 page?: number | string;
1054 first_air_date?: number | string;
1055 };
1056 }
1057 }
1058
1059 namespace TV {
1060 interface Common {
1061 pathParameters: {
1062 tv_id: number | string;
1063 };
1064 }
1065
1066 interface GetDetails extends Common {
1067 query?: {
1068 append_to_response?: string;
1069 };
1070 }
1071
1072 interface GetAccountStates extends Common {
1073 query?: {
1074 guest_session_id?: string;
1075 session_id?: string;
1076 };
1077 }
1078
1079 interface GetAlternativeTitles extends Common {
1080 query?: {
1081 country?: string;
1082 };
1083 }
1084
1085 interface GetChanges extends Common {
1086 query?: {
1087 start_date?: string;
1088 end_date?: string;
1089 page?: number | string;
1090 };
1091 }
1092
1093 interface GetContentRatings extends Common {}
1094
1095 interface GetCredits extends Common {}
1096
1097 interface GetEpisodeGroups extends Common {}
1098
1099 interface GetExternalIDs extends Common {}
1100
1101 interface GetImages extends Common {}
1102
1103 interface GetKeywords extends Common {}
1104
1105 interface GetRecommendations extends Common {
1106 query?: {
1107 page?: number | string;
1108 };
1109 }
1110
1111 interface GetReviews extends Common {
1112 query?: {
1113 page?: number | string;
1114 };
1115 }
1116
1117 interface GetScreenedTheatrically extends Common {}
1118
1119 interface GetSimilarTVShows extends Common {
1120 query?: {
1121 page?: number | string;
1122 };
1123 }
1124
1125 interface GetTranslations extends Common {}
1126
1127 interface GetVideos extends Common {}
1128
1129 interface RateTVShow extends Common {
1130 query?: {
1131 guest_session_id?: string;
1132 session_id?: string;
1133 };
1134 body: {
1135 value: number;
1136 };
1137 }
1138
1139 interface DeleteRating extends Common {
1140 query?: {
1141 guest_session_id?: string;
1142 session_id?: string;
1143 };
1144 }
1145
1146 interface GetAiringToday {
1147 query?: {
1148 page?: number | string;
1149 };
1150 }
1151
1152 interface GetOnAir extends GetAiringToday {}
1153
1154 interface GetPopular extends GetAiringToday {}
1155
1156 interface GetTopRated extends GetAiringToday {}
1157
1158 interface GetChangeList {
1159 query?: {
1160 start_date?: string;
1161 end_date?: string;
1162 page?: number | string;
1163 };
1164 }
1165
1166 namespace Season {
1167 interface Common {
1168 pathParameters: {
1169 tv_id: number | string;
1170 season_number: number | string;
1171 };
1172 }
1173
1174 interface GetDetails extends Common {
1175 query?: {
1176 append_to_response?: string;
1177 };
1178 }
1179
1180 interface GetChanges {
1181 pathParameters: {
1182 season_id: number | string;
1183 };
1184 query?: {
1185 start_date?: string;
1186 end_date?: string;
1187 page?: number | string;
1188 };
1189 }
1190
1191 interface GetAccountStates extends Common {
1192 query?: {
1193 guest_session_id?: string;
1194 session_id?: string;
1195 };
1196 }
1197
1198 interface GetCredits extends Common {}
1199
1200 interface GetExternalIDs extends Common {}
1201
1202 interface GetImages extends Common {}
1203
1204 interface GetVideos extends Common {}
1205 }
1206
1207 namespace Episode {
1208 interface Common {
1209 pathParameters: {
1210 tv_id: number | string;
1211 season_number: number | string;
1212 episode_number: number | string;
1213 };
1214 }
1215
1216 interface GetDetails extends Common {
1217 query?: {
1218 append_to_response?: string;
1219 };
1220 }
1221
1222 interface GetChanges {
1223 pathParameters: {
1224 episode_id: number | string;
1225 };
1226 query?: {
1227 start_date?: string;
1228 end_date?: string;
1229 page?: number | string;
1230 };
1231 }
1232
1233 interface GetAccountStates extends Common {
1234 query?: {
1235 guest_session_id?: string;
1236 session_id?: string;
1237 };
1238 }
1239
1240 interface GetCredits extends Common {}
1241
1242 interface GetExternalIDs extends Common {}
1243
1244 interface GetImages extends Common {}
1245
1246 interface GetTranslations extends Common {}
1247
1248 interface RateTVEpisode extends Common {
1249 query?: {
1250 guest_session_id?: string;
1251 session_id?: string;
1252 };
1253 body: {
1254 value: number;
1255 };
1256 }
1257
1258 interface DeleteRating extends Common {
1259 query?: {
1260 guest_session_id?: string;
1261 session_id?: string;
1262 };
1263 }
1264
1265 interface GetVideos extends Common {}
1266 }
1267
1268 namespace Group {
1269 interface GetDetails {
1270 pathParameters: {
1271 id: string;
1272 };
1273 }
1274 }
1275 }
1276 }
1277
1278 namespace Responses {
1279 interface ResponseWithPage {
1280 page: number;
1281 total_pages: number;
1282 total_results: number;
1283 }
1284
1285 namespace Account {
1286 interface GetDetails {
1287 avatar: {
1288 gravatar: {
1289 hash: string;
1290 };
1291 };
1292 id: number;
1293 iso_639_1: string;
1294 iso_3166_1: string;
1295 name: string;
1296 include_adult: boolean;
1297 username: string;
1298 }
1299
1300 interface GetCreatedList extends ResponseWithPage {
1301 results: {
1302 description: string;
1303 favorite_count: number;
1304 id: number;
1305 item_count: number;
1306 iso_639_1: string;
1307 list_type: string;
1308 name: string;
1309 poster_path: null;
1310 }[];
1311 }
1312
1313 interface GetFavoriteMovies extends ResponseWithPage {
1314 results: Objects.Movie[];
1315 }
1316
1317 interface GetFavoriteTVShows extends ResponseWithPage {
1318 results: Objects.TVShow[];
1319 }
1320
1321 interface MarkAsFavorite extends Objects.Status {}
1322
1323 interface GetRatedMovies extends ResponseWithPage {
1324 results: Objects.MovieWithRating[];
1325 }
1326
1327 interface GetRatedTVShows extends ResponseWithPage {
1328 results: Objects.TVShowWithRating[];
1329 }
1330
1331 interface GetRatedTVEpisodes extends ResponseWithPage {
1332 results: {
1333 air_date: string;
1334 episode_number: number;
1335 id: number;
1336 name: string;
1337 overview: string;
1338 production_code: string | null;
1339 season_number: number;
1340 show_id: number;
1341 still_path: string | null;
1342 vote_average: number;
1343 vote_count: number;
1344 rating: number;
1345 }[];
1346 }
1347
1348 interface GetMovieWatchlist extends ResponseWithPage {
1349 results: Objects.Movie[];
1350 }
1351
1352 interface GetTVShowWatchlist extends ResponseWithPage {
1353 results: Objects.TVShow[];
1354 }
1355
1356 interface AddToWatchlist extends Objects.Status {}
1357 }
1358
1359 namespace Authentication {
1360 interface CreateGuestSession {
1361 success: boolean;
1362 guest_session_id: string;
1363 expires_at: string;
1364 }
1365
1366 interface CreateRequestToken {
1367 success: boolean;
1368 expires_at: string;
1369 request_token: string;
1370 }
1371
1372 interface CreateSession {
1373 success: boolean;
1374 session_id: string;
1375 }
1376
1377 interface CreateSessionWithLogin {
1378 success: boolean;
1379 expires_at: string;
1380 request_token: string;
1381 }
1382
1383 interface CreateSessionFromAccessToken {
1384 success: boolean;
1385 session_id: string;
1386 }
1387
1388 interface DeleteSession {
1389 success: boolean;
1390 }
1391 }
1392
1393 namespace Certification {
1394 interface Certification {
1395 certification: string;
1396 meaning: string;
1397 order: number;
1398 }
1399
1400 interface GetMovieCertifications {
1401 certifications: {
1402 US: Certification;
1403 CA: Certification;
1404 DE: Certification;
1405 GB: Certification;
1406 AU: Certification;
1407 BR: Certification;
1408 FR: Certification;
1409 NZ: Certification;
1410 IN: Certification;
1411 };
1412 }
1413
1414 interface GetTVCertifications {
1415 sertifications: {
1416 US: Certification;
1417 CA: Certification;
1418 AU: Certification;
1419 FR: Certification;
1420 RU: Certification;
1421 DE: Certification;
1422 TH: Certification;
1423 KR: Certification;
1424 GB: Certification;
1425 BR: Certification;
1426 };
1427 }
1428 }
1429
1430 namespace Collection {
1431 interface GetDetails {
1432 id: number;
1433 name: string;
1434 overview: string;
1435 poster_path: null;
1436 backdrop_path: string;
1437 parts: {
1438 adult: boolean;
1439 backdrop_path: null;
1440 original_language: string;
1441 original_title: string;
1442 overview: string;
1443 release_date: string;
1444 poster_path: string;
1445 popularity: number;
1446 title: string;
1447 video: boolean;
1448 vote_average: number;
1449 vote_count: number;
1450 }[];
1451 }
1452
1453 interface GetImages {
1454 id: number;
1455 backdrops: Objects.Image[];
1456 posters: Objects.Image[];
1457 }
1458
1459 interface GetTranslations {
1460 id: number;
1461 translations: Objects.Translation[];
1462 }
1463 }
1464
1465 namespace Company {
1466 interface Company {
1467 description: string;
1468 headquarters: string;
1469 homepage: string;
1470 id: number;
1471 logo_path: string;
1472 name: string;
1473 origin_country: string;
1474 parent_company: Company | null;
1475 }
1476
1477 interface GetDetails extends Company {}
1478
1479 interface GetAlternativeNames {
1480 id: number;
1481 results: {
1482 name: string;
1483 type: string;
1484 }[];
1485 }
1486
1487 interface GetImages {
1488 id: number;
1489 logos: {
1490 aspect_ration: number;
1491 file_path: string;
1492 height: number;
1493 id: number;
1494 file_type: '.svg' | '.png';
1495 vote_average: number;
1496 vote_count: number;
1497 width: number;
1498 }[];
1499 }
1500 }
1501
1502 namespace Configuration {
1503 interface GetAPIConfiguration {
1504 images: {
1505 base_url: string;
1506 secure_base_url: string;
1507 backdrop_sizes: string[];
1508 logo_sizes: string[];
1509 poster_sizes: string[];
1510 profile_sizes: string[];
1511 still_sizes: string;
1512 };
1513 change_keys: string[];
1514 }
1515
1516 interface GetCountries {
1517 iso_3166_1: string;
1518 english_name: string;
1519 }
1520
1521 interface GetJobs {
1522 department: string;
1523 jobs: string[];
1524 }
1525
1526 interface GetLanguages {
1527 iso_639_1: string;
1528 english_name: string;
1529 name: string;
1530 }
1531
1532 interface GetTimezones {
1533 iso_3166_1: string;
1534 zones: string[];
1535 }
1536 }
1537
1538 namespace Credit {
1539 type GetDetails = GetDetailsForTV | GetDetailsForMovie;
1540
1541 interface GetDetailsCommon {
1542 credit_type: string;
1543 department: string;
1544 job: string;
1545 id: string;
1546 person: {
1547 adult: boolean;
1548 gender: number;
1549 name: string;
1550 id: number;
1551 known_for: {
1552 original_name: string;
1553 id: number;
1554 name: string;
1555 vote_count: number;
1556 vote_average: number;
1557 first_air_date: string;
1558 poster_path: string | null;
1559 genre_ids: number[];
1560 original_language: string;
1561 backdrop_path: string | null;
1562 overview: string;
1563 origin_country: string[];
1564 popularity: number;
1565 media_type: 'movie' | 'tv';
1566 }[];
1567 known_for_department: string;
1568 profile_path: string;
1569 popularity: number;
1570 };
1571 }
1572
1573 interface GetDetailsForTV extends GetDetailsCommon {
1574 media: {
1575 id: number;
1576 original_language: string;
1577 overview: string;
1578 backdrop_path: string | null;
1579 poster_path: string | null;
1580 vote_count: number;
1581 vote_average: number;
1582 popularity: number;
1583 original_name: string;
1584 name: string;
1585 first_air_date: string;
1586 genre_ids: number[];
1587 origin_country: string[];
1588 episodes: Record<string, unknown>[]; // TODO
1589 seasons: {
1590 air_date: string;
1591 episode_count: number;
1592 id: number;
1593 name: string;
1594 overview: string;
1595 poster_path: string | null;
1596 season_number: number;
1597 show_id: number;
1598 }[];
1599 };
1600 media_type: 'tv';
1601 }
1602
1603 interface GetDetailsForMovie extends GetDetailsCommon {
1604 media: {
1605 id: number;
1606 original_language: string;
1607 overview: string;
1608 backdrop_path: string | null;
1609 poster_path: string | null;
1610 vote_count: number;
1611 vote_average: number;
1612 popularity: number;
1613 adult: boolean;
1614 genre_ids: number[];
1615 original_title: string;
1616 release_date: string;
1617 title: string;
1618 video: boolean;
1619 character: string;
1620 };
1621 media_type: 'movie';
1622 }
1623 }
1624
1625 namespace Discover {
1626 interface Movie extends ResponseWithPage {
1627 results: Objects.Movie[];
1628 }
1629
1630 interface TV extends ResponseWithPage {
1631 results: Objects.TVShow[];
1632 }
1633 }
1634
1635 namespace Find {
1636 type ByExternalID =
1637 | ByExternalIDMovie
1638 | ByExternalIDTV
1639 | ByExternalIDTVEpisode
1640 | ByExternalIDPerson;
1641
1642 interface ByExternalIDTV {
1643 tv_results: Objects.TVShow[];
1644 }
1645
1646 // eslint-disable-next-line @typescript-eslint/no-empty-interface
1647 interface ByExternalIDTVSeason {} // TODO
1648
1649 interface ByExternalIDMovie {
1650 movie_results: Objects.Movie[];
1651 }
1652
1653 interface ByExternalIDTVEpisode {
1654 tv_episode_results: {
1655 air_date: string;
1656 episode_number: number;
1657 id: number;
1658 name: string;
1659 overview: string;
1660 production_code: string | null;
1661 season_number: number;
1662 show_id: number;
1663 still_path: string | null;
1664 vote_average: number;
1665 vote_count: number;
1666 }[];
1667 }
1668
1669 interface ByExternalIDPerson {
1670 person_results: {
1671 adult: boolean;
1672 gender: number;
1673 name: string;
1674 id: number;
1675 known_for: Objects.MovieWithMediaType[] | Objects.TVShowWithMediaType[];
1676 known_for_department: string;
1677 profile_path: string | null;
1678 popularity: number;
1679 }[];
1680 }
1681 }
1682
1683 namespace Genre {
1684 interface Common {
1685 genres: {
1686 id: number;
1687 name: string;
1688 }[];
1689 }
1690 }
1691
1692 namespace GuestSession {
1693 interface GetRatedMovies extends ResponseWithPage {
1694 results: Objects.MovieWithRating[];
1695 }
1696
1697 interface GetRatedTVShows extends ResponseWithPage {
1698 results: Objects.TVShowWithRating[];
1699 }
1700
1701 interface GetRatedTVEpisodes extends ResponseWithPage {
1702 results: {
1703 air_date: string;
1704 episode_number: number;
1705 id: number;
1706 name: string;
1707 overview: string;
1708 production_code: string | null;
1709 season_number: number;
1710 show_id: number;
1711 still_path: string | null;
1712 vote_average: number;
1713 vote_count: number;
1714 rating: number;
1715 }[];
1716 }
1717 }
1718
1719 namespace Keyword {
1720 interface GetDetails {
1721 id: number;
1722 name: string;
1723 }
1724
1725 interface GetMovies extends ResponseWithPage {
1726 id: number;
1727 results: Objects.Movie[];
1728 }
1729 }
1730
1731 namespace List {
1732 interface GetDetails {
1733 created_by: string;
1734 description: string;
1735 favorite_count: number;
1736 id: string;
1737 item_count: number;
1738 iso_639_1: string;
1739 name: string;
1740 poster_path: string | null;
1741 items: Objects.Movie[];
1742 }
1743
1744 interface CheckItemStatus {
1745 id: string;
1746 item_present: boolean;
1747 }
1748
1749 interface CreateList extends Objects.Status {
1750 success: boolean;
1751 lsit_id: number;
1752 }
1753
1754 interface AddMovie extends Objects.Status {}
1755
1756 interface RemoveMovie extends Objects.Status {}
1757
1758 interface ClearList extends Objects.Status {}
1759
1760 interface DeleteList extends Objects.Status {}
1761 }
1762
1763 namespace Movie {
1764 interface Image {
1765 aspect_ratio: number;
1766 file_path: string;
1767 height: number;
1768 iso_639_1: string | null;
1769 vote_average: number;
1770 vote_count: number;
1771 width: number;
1772 }
1773
1774 interface GetDetails {
1775 adult: boolean;
1776 backdrop_path: string | null;
1777 belongs_to_collection: {
1778 id: number;
1779 name: string;
1780 poster_path: string | null;
1781 backdrop_path: string | null;
1782 } | null;
1783 budget: number;
1784 genres: {
1785 id: number;
1786 name: string;
1787 }[];
1788 homepage: string | null;
1789 id: number;
1790 imdb_id: string | null;
1791 original_language: string;
1792 original_title: string;
1793 overview: string | null;
1794 popularity: number;
1795 poster_path: string | null;
1796 production_companies: {
1797 name: string;
1798 id: number;
1799 logo_path: string | null;
1800 origin_country: string;
1801 }[];
1802 production_countries: {
1803 iso_3166_1: string;
1804 name: string;
1805 }[];
1806 release_date: string;
1807 revenue: string;
1808 runtime: number | null;
1809 spoken_language: {
1810 iso_639_1: string;
1811 name: string;
1812 }[];
1813 status:
1814 | 'Rumored'
1815 | 'Planned'
1816 | 'In Production'
1817 | 'Post Production'
1818 | 'Released'
1819 | 'Canceled';
1820 tagline: string | null;
1821 title: string;
1822 video: boolean;
1823 vote_average: number;
1824 vote_count: number;
1825 }
1826
1827 interface GetAccountStates extends Objects.AccountStates {}
1828
1829 interface GetAlternativeTitles extends Objects.AlternativeTitles {}
1830
1831 interface GetChanges extends Objects.ChangesMovie {}
1832
1833 interface GetCredits {
1834 id: number;
1835 cast: {
1836 cast_id: number;
1837 character: string;
1838 credit_id: string;
1839 gender: number | null;
1840 id: number;
1841 name: string;
1842 order: number;
1843 profile_path: string | null;
1844 }[];
1845 crew: {
1846 credit_id: string;
1847 department: string;
1848 gender: number | null;
1849 id: number;
1850 job: string;
1851 name: string;
1852 profile_path: string | null;
1853 }[];
1854 }
1855
1856 interface GetExternalIDs extends Objects.MovieExternalIDs {}
1857
1858 interface GetImages {
1859 id: number;
1860 backdrops: Image[];
1861 posters: Image[];
1862 }
1863
1864 interface GetKeywords {
1865 id: number;
1866 keywords: {
1867 id: number;
1868 name: string;
1869 }[];
1870 }
1871
1872 interface GetReleaseDates {
1873 id: number;
1874 results: {
1875 iso_3166_1: string;
1876 release_dates: {
1877 certification: string;
1878 iso_639_1: string;
1879 release_date: string;
1880 type: number;
1881 note: string;
1882 }[];
1883 }[];
1884 }
1885
1886 interface GetVideos extends Objects.Videos {}
1887
1888 interface GetTranslations {
1889 id: number;
1890 translations: {
1891 iso_639_1: string;
1892 iso_3166_1: string;
1893 name: string;
1894 english_name: string;
1895 data: {
1896 title: string;
1897 overview: string;
1898 homepage: string;
1899 };
1900 }[];
1901 }
1902
1903 interface GetRecommendations extends ResponseWithPage {
1904 results: Objects.Movie[];
1905 }
1906
1907 interface GetSimilarMovies extends ResponseWithPage {
1908 results: Objects.Movie[];
1909 }
1910
1911 interface GetReviews extends Objects.Reviews {}
1912
1913 interface GetLists extends ResponseWithPage {
1914 id: number;
1915 results: {
1916 description: string;
1917 favorite_count: number;
1918 id: number;
1919 item_count: number;
1920 iso_639_1: string;
1921 list_type: string;
1922 name: string;
1923 poster_path: string | null;
1924 }[];
1925 }
1926
1927 interface RateMovie extends Objects.Status {}
1928
1929 interface DeleteRating extends Objects.Status {}
1930
1931 interface GetLatest {
1932 adult: boolean;
1933 backdrop_path: string | null;
1934 belongs_to_collection: null;
1935 budget: number;
1936 genre_ids: {
1937 id: number;
1938 name: string;
1939 }[];
1940 homepage: string;
1941 id: number;
1942 imdb_id: string;
1943 original_language: string;
1944 original_title: string;
1945 overview: string;
1946 popularity: number;
1947 poster_path: string | null;
1948 // eslint-disable-next-line @typescript-eslint/ban-types
1949 production_companies: {}[];
1950 // eslint-disable-next-line @typescript-eslint/ban-types
1951 production_countries: {}[];
1952 release_date: string;
1953 revenue: number;
1954 runtime: number;
1955 // eslint-disable-next-line @typescript-eslint/ban-types
1956 spoken_languages: {}[];
1957 status: string;
1958 tagline: string;
1959 title: string;
1960 video: boolean;
1961 vote_average: number;
1962 vote_count: number;
1963 }
1964
1965 interface GetNowPlaying extends ResponseWithPage {
1966 results: Objects.Movie[];
1967 dates: {
1968 maximum: string;
1969 minimum: string;
1970 };
1971 }
1972
1973 interface GetPopular extends ResponseWithPage {
1974 results: Objects.Movie[];
1975 }
1976
1977 interface GetTopRated extends GetPopular {}
1978
1979 interface GetUpcoming extends GetNowPlaying {}
1980
1981 interface GetChangeList extends ResponseWithPage {
1982 results: {
1983 id: number;
1984 adult: boolean | null;
1985 }[];
1986 }
1987 }
1988
1989 namespace Network {
1990 interface GetDetails {
1991 headquarters: string;
1992 homepage: string;
1993 id: number;
1994 name: string;
1995 origin_country: string;
1996 }
1997
1998 interface GetAlternativeNames {
1999 id: number;
2000 results: {
2001 name: string;
2002 type: string;
2003 }[];
2004 }
2005
2006 interface GetImages {
2007 id: number;
2008 logos: {
2009 aspect_ratio: number;
2010 file_path: string;
2011 height: number;
2012 id: string;
2013 file_type:
2014 | '.svg'
2015 | '.png';
2016 vote_average: number;
2017 vote_count: number;
2018 width: number;
2019 }[];
2020 }
2021 }
2022
2023 namespace Trending {
2024 interface GetTrending extends ResponseWithPage {
2025 results: Objects.Movie[];
2026 }
2027 }
2028
2029 namespace Person {
2030 interface GetDetails {
2031 birthdate: string | null;
2032 known_for_department: string;
2033 deathday: string | null;
2034 id: number;
2035 also_known_as: string[];
2036 gender: 0 | 1 | 2;
2037 biography: string;
2038 popularity: number;
2039 place_of_birth: string | null;
2040 profile_path: string | null;
2041 adult: boolean;
2042 imdb_id: string;
2043 homepage: string | null;
2044 }
2045
2046 interface GetChanges {
2047 changes: {
2048 key: string;
2049 items: {
2050 id: string;
2051 action: string;
2052 time: string;
2053 original_value: {
2054 profile: {
2055 file_path: string;
2056 };
2057 };
2058 }[];
2059 }[];
2060 }
2061
2062 interface GetMovieCredits {
2063 cast: {
2064 character: string;
2065 credit_id: string;
2066 release_date: string;
2067 vote_count: number;
2068 video: boolean;
2069 adult: boolean;
2070 vote_average: number;
2071 title: string;
2072 genre_ids: number[];
2073 original_language: string;
2074 original_title: string;
2075 popularity: number;
2076 id: number;
2077 backdrop_path: string | null;
2078 overview: string;
2079 poster_path: string | null;
2080 }[];
2081 crew: {
2082 id: number;
2083 department: string;
2084 original_language: string;
2085 original_title: string;
2086 job: string;
2087 overview: string;
2088 vote_count: number;
2089 video: boolean;
2090 poster_path: string | null;
2091 backdrop_path: string | null;
2092 title: string;
2093 popularity: number;
2094 genre_ids: number[];
2095 vote_average: number;
2096 adult: boolean;
2097 release_date: string;
2098 credit_id: string;
2099 }[];
2100 id: number;
2101 }
2102
2103 interface GetTVCredits {
2104 cast: {
2105 credit_id: string;
2106 original_name: string;
2107 id: number;
2108 genre_ids: number[];
2109 character: string;
2110 name: string;
2111 poster_path: string | null;
2112 vote_count: number;
2113 vote_average: number;
2114 popularity: number;
2115 episode_count: number;
2116 original_language: string;
2117 first_air_date: string;
2118 backdrop_path: string | null;
2119 overview: string;
2120 origin_country: string[];
2121 }[];
2122 crew: {
2123 id: number;
2124 department: string;
2125 original_language: string;
2126 episode_count: number;
2127 job: string;
2128 overview: string;
2129 origin_country: string[];
2130 original_name: string;
2131 genre_ids: number[];
2132 name: string;
2133 first_air_date: string;
2134 backrop_path: string | null;
2135 popularity: number;
2136 vote_count: number;
2137 vote_average: number;
2138 poster_path: string | null;
2139 credit_id: string;
2140 }[];
2141 id: number;
2142 }
2143
2144 interface GetCombinedCredits {
2145 cast: {
2146 id: number;
2147 original_language: string;
2148 episode_count: number;
2149 overview: string;
2150 origin_country: string[];
2151 original_name: string;
2152 genre_ids: number[];
2153 name: string;
2154 media_type: string;
2155 poster_path: string | null;
2156 first_air_date: string;
2157 vote_average: number;
2158 vote_count: number;
2159 character: string;
2160 backdrop_path: string | null;
2161 popularity: number;
2162 credit_id: string;
2163 original_title: string;
2164 video: boolean;
2165 release_date: string;
2166 title: string;
2167 adult: boolean;
2168 }[];
2169 crew: {
2170 id: number;
2171 department: string;
2172 original_language: string;
2173 episode_count: number;
2174 job: string;
2175 overview: string;
2176 origin_country: string[];
2177 original_name: string;
2178 vote_count: number;
2179 name: string;
2180 media_type: string;
2181 popularity: number;
2182 credit_id: string;
2183 backdrop_path: string | null;
2184 first_air_date: string;
2185 vote_average: number;
2186 genre_ids: number[];
2187 poster_path: string | null;
2188 original_title: string;
2189 video: boolean;
2190 title: string;
2191 adult: boolean;
2192 release_date: string;
2193 }[];
2194 id: number;
2195 }
2196
2197 interface GetExternalIDs {
2198 imdb_id: string | null;
2199 facebook_id: string | null;
2200 freebase_mid: string | null;
2201 freebase_id: string | null;
2202 tvrage_id: number | null;
2203 twitter_id: string | null;
2204 instagram_id: string | null;
2205 id: number;
2206 }
2207
2208 interface GetImages {
2209 id: number;
2210 profiles: Objects.Image[];
2211 }
2212
2213 interface GetTaggedImages extends ResponseWithPage {
2214 id: number;
2215 results: {
2216 aspect_ratio: number;
2217 file_path: string;
2218 height: number;
2219 id: string;
2220 iso_639_1: string | null;
2221 vote_average: number;
2222 vote_count: number;
2223 width: number;
2224 media: Objects.Movie | Objects.TVShow;
2225 media_type: 'tv' | 'movie';
2226 }[];
2227 }
2228
2229 interface GetTranslations {
2230 id: number;
2231 translations: {
2232 iso_639_1: string;
2233 iso_3166_1: string;
2234 name: string;
2235 data: {
2236 biography: string;
2237 };
2238 english_name: string;
2239 }[];
2240 }
2241
2242 interface GetLatest {
2243 adult: boolean;
2244 also_known_as: Record<string, unknown>;
2245 biography: string | null;
2246 birthday: string | null;
2247 deathday: string | null;
2248 gender: 0 | 1 | 2;
2249 homepage: string | null;
2250 id: number;
2251 imdb_id: string | null;
2252 name: string;
2253 place_of_birth: string | null;
2254 popularity: number;
2255 profile_path: string | null;
2256 }
2257
2258 interface GetPopular extends ResponseWithPage {
2259 results: {
2260 profile_path: string;
2261 adult: boolean;
2262 id: number;
2263 known_for: (Objects.MovieWithMediaType | Objects.TVShowWithMediaType)[];
2264 name: string;
2265 popularity: number;
2266 }[];
2267 }
2268
2269 interface GetChangeList extends ResponseWithPage {
2270 results: {
2271 id: number;
2272 adult: boolean | null;
2273 }[];
2274 }
2275 }
2276
2277 namespace Review {
2278 interface GetDetails {
2279 id: string;
2280 author: string;
2281 content: string;
2282 iso_639_1: string;
2283 media_id: number;
2284 media_title: string;
2285 media_type: string;
2286 url: string;
2287 }
2288 }
2289
2290 namespace Search {
2291 interface Companies extends ResponseWithPage {
2292 results: {
2293 id: number;
2294 logo_path: string | null;
2295 name: string;
2296 }[];
2297 }
2298
2299 interface Collections extends ResponseWithPage {
2300 results: {
2301 id: number;
2302 backdrop_path: string | null;
2303 name: string;
2304 }[];
2305 }
2306
2307 interface Keywords extends ResponseWithPage {
2308 results: {
2309 id: number;
2310 name: string;
2311 }[];
2312 }
2313
2314 interface Movies extends ResponseWithPage {
2315 results: Objects.Movie[];
2316 }
2317
2318 interface Multi extends ResponseWithPage {
2319 results: (
2320 | Objects.MovieWithMediaType
2321 | Objects.TVShowWithMediaType
2322 | Objects.PersonWithMediaType
2323 )[];
2324 }
2325
2326 interface People extends ResponseWithPage {
2327 results: Objects.Person[];
2328 }
2329
2330 interface TVShows extends ResponseWithPage {
2331 results: Objects.TVShow[];
2332 }
2333 }
2334
2335 namespace TV {
2336 interface GetDetails {
2337 backdrop_path: string | null;
2338 created_by: {
2339 id: number;
2340 credit_id: string;
2341 name: string;
2342 gender: 0 | 1 | 2;
2343 profile_path: string;
2344 }[];
2345 episode_run_time: number[];
2346 first_air_date: string;
2347 genres: {
2348 id: number;
2349 name: string;
2350 }[];
2351 homepage: string;
2352 id: number;
2353 in_production: boolean;
2354 languages: string[];
2355 last_air_date: string;
2356 last_episode_to_air: Objects.Episode;
2357 name: string;
2358 next_episode_to_air: Objects.Episode | null;
2359 networks: {
2360 name: string;
2361 id: number;
2362 logo_path: string;
2363 origin_country: string;
2364 }[];
2365 number_of_episodes: number;
2366 number_of_seasons: number;
2367 origin_country: string[];
2368 original_language: string;
2369 original_name: string;
2370 overview: string;
2371 popularity: number;
2372 poster_path: string | null;
2373 production_companies: {
2374 id: number;
2375 logo_path: string | null;
2376 name: string;
2377 origin_country: string;
2378 }[];
2379 seasons: {
2380 air_date: string;
2381 episode_count: number;
2382 id: number;
2383 name: string;
2384 overview: string;
2385 poster_path: string | null;
2386 season_number: number;
2387 }[];
2388 status: string;
2389 type: string;
2390 vote_average: number;
2391 vote_count: number;
2392 }
2393
2394 interface GetAccountStates extends Objects.AccountStates {}
2395
2396 interface GetAlternativeTitles extends Objects.AlternativeTitles {}
2397
2398 interface GetChanges {
2399 changes: {
2400 key: string;
2401 items: {
2402 id: string;
2403 action: string;
2404 time: string;
2405 }[];
2406 }[];
2407 }
2408
2409 interface GetContentRatings {
2410 results: {
2411 iso_3166_1: string;
2412 rating: string;
2413 }[];
2414 id: number;
2415 }
2416
2417 interface GetCredits {
2418 cast: {
2419 character: string;
2420 credit_id: string;
2421 gender: 0 | 1 | 2 | null;
2422 id: number;
2423 name: string;
2424 order: number;
2425 profile_path: string | null;
2426 }[];
2427 crew: {
2428 credit_id: string;
2429 department: string;
2430 gender: 0 | 1 | 2 | null;
2431 id: number;
2432 job: string;
2433 name: string;
2434 profile_path: string | null;
2435 }[];
2436 id: number;
2437 }
2438
2439 interface GetEpisodeGroups {
2440 results: {
2441 description: string;
2442 episode_count: number;
2443 group_count: number;
2444 id: string;
2445 name: string;
2446 network: {
2447 id: number;
2448 logo_path: string;
2449 name: string;
2450 origin_country: string;
2451 } | null;
2452 type: string;
2453 }[];
2454 id: number;
2455 }
2456
2457 interface GetExternalIDs extends Objects.TVShowExternalIDs {}
2458
2459 interface GetImages {
2460 backdrops: Objects.Image[];
2461 id: number;
2462 posters: Objects.Image[];
2463 }
2464
2465 interface GetKeywords {
2466 id: number;
2467 results: {
2468 id: number;
2469 name: string;
2470 }[];
2471 }
2472
2473 interface GetRecommendations extends ResponseWithPage {
2474 results: Objects.TVShow[];
2475 }
2476
2477 interface GetReviews extends Objects.Reviews {}
2478
2479 interface GetScreenedTheatrically {
2480 id: number;
2481 results: {
2482 id: number;
2483 episode_number: number;
2484 season_number: number;
2485 }[];
2486 }
2487
2488 interface GetSimilarTVShows extends ResponseWithPage {
2489 results: Objects.TVShow[];
2490 }
2491
2492 interface GetTranslations {
2493 id: number;
2494 translations: {
2495 iso_639_1: string;
2496 iso_3166_1: string;
2497 name: string;
2498 english_name: string;
2499 data: {
2500 name: string;
2501 overview: string;
2502 homepage: string;
2503 };
2504 }[];
2505 }
2506
2507 interface GetVideos extends Objects.Videos {}
2508
2509 interface RateTVShow extends Objects.Status {}
2510
2511 interface DeleteRating extends Objects.Status {}
2512
2513 interface GetLatest {
2514 backdrop_path: string | null;
2515 created_by: {
2516 id: number;
2517 credit_id: string;
2518 name: string;
2519 gender: 0 | 1 | 2;
2520 profile_path: string;
2521 };
2522 episode_run_time: number[];
2523 first_air_date: string;
2524 genres: {
2525 id: number;
2526 name: string;
2527 }[];
2528 homepage: string;
2529 id: number;
2530 in_production: boolean;
2531 languages: string[];
2532 last_air_date: string;
2533 name: string;
2534 networs: {
2535 id: number;
2536 name: string;
2537 }[];
2538 number_of_episodes: number;
2539 number_of_seasons: number;
2540 origin_country: string[];
2541 original_language: string;
2542 original_name: string;
2543 overview: string | null;
2544 popularity: number;
2545 poster_path: string | null;
2546 production_companies: Record<string, unknown>[]; // TODO
2547 seasons: {
2548 air_date: string;
2549 episode_count: number;
2550 id: number;
2551 poster_path: string | null;
2552 season_number: number;
2553 }[];
2554 status: string;
2555 type: string;
2556 vote_average: number;
2557 vote_count: number;
2558 }
2559
2560 interface GetAiringToday extends ResponseWithPage {
2561 results: Objects.TVShow[];
2562 }
2563
2564 interface GetOnAir extends GetAiringToday {}
2565
2566 interface GetPopular extends GetAiringToday {}
2567
2568 interface GetTopRated extends GetAiringToday {}
2569
2570 interface GetChangeList extends ResponseWithPage {
2571 results: {
2572 id: number;
2573 adult: boolean | null;
2574 }[];
2575 }
2576
2577 namespace Season {
2578 interface GetDetails {
2579 // eslint-disable-next-line @typescript-eslint/naming-convention
2580 _id: string;
2581 air_date: string;
2582 episodes: {
2583 air_date: string;
2584 crew: {
2585 id: number;
2586 credit_id: string;
2587 name: string;
2588 department: string;
2589 job: string;
2590 profile_path: string | null;
2591 }[];
2592 episode_number: number;
2593 guest_stars: {
2594 id: number;
2595 name: string;
2596 credit_id: string;
2597 character: string;
2598 order: number;
2599 gender: 0 | 1 | 2;
2600 profile_path: string | null;
2601 }[];
2602 name: string;
2603 overview: string;
2604 id: number;
2605 production_code: string | null;
2606 season_number: number;
2607 still_path: string | null;
2608 vote_average: number;
2609 vote_count: number;
2610 }[];
2611 name: string;
2612 overview: string;
2613 id: number;
2614 poster_path: string | null;
2615 season_number: number;
2616 }
2617
2618 interface GetChanges {
2619 changes: {
2620 key: string;
2621 items: {
2622 id: string;
2623 action: string;
2624 time: string;
2625 value: {
2626 episode_id: number;
2627 episode_season: number;
2628 } | string;
2629 iso_639_1: string;
2630 original_value: string;
2631 }[];
2632 }[];
2633 }
2634
2635 interface GetAccountStates {
2636 id: number;
2637 results: {
2638 id: number;
2639 episode_number: number;
2640 rated: {
2641 value: number;
2642 } | boolean;
2643 }[];
2644 }
2645
2646 interface GetCredits {
2647 cast: {
2648 character: string;
2649 credit_id: string;
2650 gender: 0 | 1 | 2 | null;
2651 id: number;
2652 name: string;
2653 order: number;
2654 profile_path: string | null;
2655 }[];
2656 crew: {
2657 credit_id: string;
2658 department: string;
2659 gender: 0 | 1 | 2 | null;
2660 id: number;
2661 job: string;
2662 name: string;
2663 profile_path: string | null;
2664 }[];
2665 id: number;
2666 }
2667
2668 interface GetExternalIDs {
2669 freebase_mid: string | null;
2670 freebase_id: string | null;
2671 tvdb_id: number | null;
2672 tvrage_id: number | null;
2673 id: number;
2674 }
2675
2676 interface GetImages {
2677 id: number;
2678 posters: Objects.Image[];
2679 }
2680
2681 interface GetVideos extends Objects.Videos {}
2682 }
2683
2684 namespace Episode {
2685 interface GetDetails {
2686 air_date: string;
2687 crew: {
2688 id: number;
2689 credit_id: string;
2690 name: string;
2691 department: string;
2692 job: string;
2693 profile_path: string | null;
2694 }[];
2695 episode_number: number;
2696 guest_stars: {
2697 id: number;
2698 name: string;
2699 credit_id: string;
2700 character: string;
2701 order: number;
2702 profile_path: string | null;
2703 }[];
2704 name: string;
2705 overview: string;
2706 id: number;
2707 production_code: string | null;
2708 season_number: number;
2709 still_path: string | null;
2710 vote_average: number;
2711 vote_count: number;
2712 }
2713
2714 interface GetChanges {
2715 changes: {
2716 key: string;
2717 items: {
2718 id: string;
2719 action: string;
2720 time: string;
2721 value: string;
2722 iso_639_1: string;
2723 }[];
2724 }[];
2725 }
2726
2727 interface GetAccountStates {
2728 id: number;
2729 rated: {
2730 value: number;
2731 } | boolean;
2732 }
2733
2734 interface GetCredits {
2735 id: number;
2736 cast: {
2737 character: string;
2738 credit_id: string;
2739 gender: 0 | 1 | 2;
2740 id: number;
2741 name: string;
2742 order: number;
2743 profile_path: string | null;
2744 }[];
2745 crew: {
2746 id: number;
2747 credit_id: string;
2748 name: string;
2749 department: string;
2750 job: string;
2751 gender: 0 | 1 | 2;
2752 profile_path: string | null;
2753 }[];
2754 guest_stars: {
2755 id: number;
2756 name: string;
2757 credit_id: string;
2758 character: string;
2759 order: number;
2760 gender: 0 | 1 | 2;
2761 profile_path: string | null;
2762 }[];
2763 }
2764
2765 interface GetExternalIDs {
2766 imdb_id: string | null;
2767 freebase_mid: string | null;
2768 freebase_id: string | null;
2769 tvdb_id: number | null;
2770 tvrage_id: number | null;
2771 id: number;
2772 }
2773
2774 interface GetImages {
2775 id: number;
2776 stills: Objects.Image[];
2777 }
2778
2779 interface GetTranslations {
2780 id: number;
2781 translations: {
2782 iso_3166_1: string;
2783 iso_639_1: string;
2784 name: string;
2785 english_name: string;
2786 data: {
2787 name: string;
2788 overview: string;
2789 };
2790 }[];
2791 }
2792
2793 interface RateTVEpisode extends Objects.Status {}
2794
2795 interface DeleteRating extends Objects.Status {}
2796
2797 interface GetVideos extends Objects.Videos {}
2798 }
2799
2800 namespace Group {
2801 interface GetDetails {
2802 description: string;
2803 episode_count: number;
2804 group_count: number;
2805 groups: {
2806 id: string;
2807 name: string;
2808 order: number;
2809 episodes: {
2810 air_date: string;
2811 episode_number: number;
2812 id: number;
2813 name: string;
2814 overview: string;
2815 production_code: null;
2816 season_number: number;
2817 show_id: number;
2818 still_path: string | null;
2819 vote_average: number;
2820 vote_count: number;
2821 order: number;
2822 }[];
2823 locked: boolean;
2824 }[];
2825 id: string;
2826 name: string;
2827 network: {
2828 id: number;
2829 logo_path: string | null;
2830 name: string;
2831 origin_country: string;
2832 };
2833 type: number;
2834 }
2835 }
2836 }
2837 }
2838
2839 namespace Errors {
2840 interface BadRequest extends Error {
2841 code: number;
2842 errorCode: 400;
2843 }
2844
2845 interface UnauthorizedError extends Error {
2846 code: number;
2847 errorCode: 401;
2848 }
2849
2850 interface NotFoundError extends Error {
2851 code: number;
2852 errorCode: 404;
2853 }
2854
2855 interface RequestTimeout extends Error {
2856 code: number;
2857 errorCode: 408;
2858 }
2859
2860 /**
2861 * @deprecated Because limits does not exists anymore in API
2862 */
2863 interface TooManyRequests extends Error {
2864 code: number;
2865 errorCode: 429;
2866 }
2867 }
2868
2869 type Response<T> = Promise<{
2870 data: T;
2871 headers: IncomingHttpHeaders;
2872 }>;
2873
2874 interface ConstructorOptions {
2875 language?: string;
2876 }
2877}
2878
2879declare class MovieDB {
2880 public account: MovieDB.Endpoints.Account;
2881 public authentication: MovieDB.Endpoints.Authentication;
2882 public certification: MovieDB.Endpoints.Certification;
2883 public collection: MovieDB.Endpoints.Collection;
2884 public company: MovieDB.Endpoints.Company;
2885 public configuration: MovieDB.Endpoints.Configuration;
2886 public credit: MovieDB.Endpoints.Credit;
2887 public discover: MovieDB.Endpoints.Discover;
2888 public find: MovieDB.Endpoints.Find;
2889 public genre: MovieDB.Endpoints.Genre;
2890 public guestSession: MovieDB.Endpoints.GuestSession;
2891 public keyword: MovieDB.Endpoints.Keyword;
2892 public list: MovieDB.Endpoints.List;
2893 public movie: MovieDB.Endpoints.Movie;
2894 public network: MovieDB.Endpoints.Network;
2895 public trending: MovieDB.Endpoints.Trending;
2896 public person: MovieDB.Endpoints.Person;
2897 public review: MovieDB.Endpoints.Review;
2898 public search: MovieDB.Endpoints.Search;
2899 public tv: MovieDB.Endpoints.TV;
2900
2901 public constructor(apiKey: string, options?: MovieDB.ConstructorOptions);
2902 public setApiKey(apiKey: string): void;
2903 public setLanguage(language: string): void;
2904}
2905
2906export = MovieDB;