import { AlternativeTitles, Changes, ContentRatings, Credits, EpisodeGroups, ExternalIds, Images, MovieChangeValue, MovieKeywords, MovieLists, PeopleImages, PersonChangeValue, PersonCombinedCredits, PersonMovieCredit, PersonTranslations, PersonTvShowCredit, Recommendations, ReleaseDates, Reviews, ScreenedTheatrically, SimilarMovies, SimilarTvShows, TaggedImages, Translations, TvEpisodeChangeValue, TvEpisodeCredit, TvEpisodeTranslations, TvSeasonChangeValue, TvShowChangeValue, Videos, WatchProviders } from '.'; export interface LanguageOption { language?: string; } export interface RegionOption { region?: string; } export interface PageOption { page?: number; } export interface ChangeOption extends PageOption { start_date?: string; end_date?: string; } export type AppendToResponseMovieKey = 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' | 'similar' | 'lists' | 'release_dates' | 'alternative_titles' | 'external_ids' | 'translations' | 'watch/providers' | 'keywords'; export 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'; export type AppendToResponsePersonKey = 'images' | 'changes' | 'movie_credits' | 'tv_credits' | 'combined_credits' | 'external_ids' | 'tagged_images' | 'translations'; export type AppendToResponseTvEpisodeKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'translations'; export type AppendToResponseTvSeasonKey = 'images' | 'credits' | 'external_ids' | 'videos' | 'aggregate_credits' | 'translations'; type AppendToResponseAllKeys = AppendToResponseTvKey | AppendToResponseMovieKey | AppendToResponseTvEpisodeKey | AppendToResponseTvSeasonKey | AppendToResponsePersonKey; export type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person' | 'tvSeason' | 'tvEpisode'; export type AppendToResponse = K & (T extends undefined ? object : T extends Array ? ('credits' extends T[number] ? { credits: Media extends 'tvEpisode' ? TvEpisodeCredit : Omit; } : object) & ('videos' extends T[number] ? { videos: Omit; } : object) & ('images' extends T[number] ? { images: Omit; } : object) & ('recommendations' extends T[number] ? { recommendations: Recommendations; } : object) & ('reviews' extends T[number] ? { reviews: Omit; } : object) & ('reviews' extends T[number] ? { reviews: Omit; } : object) & ('changes' extends T[number] ? { changes: Changes; } : object) & ('keywords' extends T[number] ? { keywords: Omit; } : object) & ('lists' extends T[number] ? { lists: Omit; } : object) & ('release_dates' extends T[number] ? { release_dates: Omit; } : object) & ('alternative_titles' extends T[number] ? { alternative_titles: Omit; } : object) & ('external_ids' extends T[number] ? { external_ids: Omit; } : object) & ('translations' extends T[number] ? { translations: Omit; } : object) & ('watch/providers' extends T[number] ? { 'watch/providers': Omit; } : object) & ('aggregate_credits' extends T[number] ? { aggregate_credits: Omit; } : object) & ('episode_groups' extends T[number] ? { episode_groups: Omit; } : object) & ('screened_theatrically' extends T[number] ? { screened_theatrically: Omit; } : object) & ('similar' extends T[number] ? { similar: Media extends 'movie' ? SimilarMovies : Media extends 'tvShow' ? SimilarTvShows : unknown; } : object) & ('content_ratings' extends T[number] ? { content_ratings: Omit; } : object) & ('movie_credits' extends T[number] ? { movie_credits: Omit; } : object) & ('tv_credits' extends T[number] ? { tv_credits: Omit; } : object) & ('combined_credits' extends T[number] ? { combined_credits: Omit; } : object) & ('tagged_images' extends T[number] ? { tagged_images: TaggedImages; } : object) : never); export {};