import { TraktStats } from '../models/trakt-stats.model.js'; import { TraktFavoriteList, TraktFavoriteRequest, TraktFavoriteAdded, TraktFavoriteRemoved } from '../models/trakt-favorite.model.js'; import { TraktWatchlistGetQuery, TraktWatchlist, TraktWatchlistList, TraktWatchlistAdded, TraktWatchlistRemoved } from '../models/trakt-watchlist.model.js'; import { TraktSyncRatingRequest, TraktRating, TraktRatingRequest, TraktRatingAdded, TraktRatingRemoved } from '../models/trakt-rating.model.js'; import { TraktHistoryGetQuery, TraktHistory, TraktHistoryRequest, TraktHistoryAdded, TraktHistoryRemovedRequest, TraktHistoryRemoved } from '../models/trakt-history.model.js'; import { TraktWatched, TraktWatching } from '../models/trakt-watched.model.js'; import { TraktCollectionGetQuery, TraktCollectionMetadata, TraktCollectionSeason, TraktCollectionRequest, TraktCollectionAdded, TraktCollectionRemoved } from '../models/trakt-collection.model.js'; import { TraktSyncActivities, TraktSyncProgress, TraktSyncRequest, TraktSyncUpdateRequest } from '../models/trakt-sync.model.js'; import { TraktSeasonExtended, TraktSeasonEpisodes, TraktSeasonShort, TraktSeasonStats } from '../models/trakt-season.model.js'; import { TraktEpisodeShort, TraktEpisodeExtended, TraktEpisodeStats } from '../models/trakt-episode.model.js'; import { TraktCollectionProgress, TraktWatchedProgress, TraktProgressReset } from '../models/trakt-progress.model.js'; import { TraktSearch, TraktSearchResult, TraktIdLookup } from '../models/trakt-search.model.js'; import { TraktScrobbleRequest, TraktScrobble } from '../models/trakt-scrobble.model.js'; import { TraktShowShort, TraktShowExtended, TraktShowTrending, TraktShowFavorited, TraktShowPlayed, TraktShowAnticipated, TraktShowUpdate, TraktShowCertification, TraktShowStats } from '../models/trakt-show.model.js'; import { TraktNoteRequest, TraktNote, TraktNoteItem, TraktNoteTypes } from '../models/trakt-note.model.js'; import { c as TraktCommentRequest, T as TraktComment, a as TraktCommentMedia, b as TraktCommentItem, e as TraktListList, d as TraktList, g as TraktListItem, q as TraktPrivateUser, o as TraktListReordered, y as TraktUserSettings, z as TraktUserFollowRequest, A as TraktUserFollower, F as TraktUserFilter, G as TraktUserHiddenItem, H as TraktUserHiddenRequest, I as TraktUserHiddenAdded, J as TraktUserHiddenDeleted, p as TraktListItemsGetQuery, k as TraktUserListItemAddedRequest, l as TraktUserListItemAdded, m as TraktUserListItemRemoveRequest, n as TraktUserListItemRemoved, E as TraktUserFollow, C as TraktUserFollowing, D as TraktUserFriend } from '../trakt-list.model-CeURmxQs.js'; import { BaseTraktPerson, TraktPersonExtended, TraktPersonJobs, TraktPersonUpdate } from '../models/trakt-people.model.js'; import { TraktCertification, StartDateParam, TraktAlias, TraktTranslation, TraktGenericRating, TraktExtendedRatings, TraktStudio, TraktNetwork } from '../models/trakt-entity.model.js'; import { TraktMovieTrending, TraktMovieShort, TraktMovieExtended, TraktMovieFavorited, TraktMoviePlayed, TraktMovieAnticipated, TraktMovieBoxOffice, TraktMovieUpdate, TraktMovieRelease, TraktMovieStats } from '../models/trakt-movie.model.js'; import { TraktApiMovieFilters, TraktApiShowFilters } from './trakt-api.filters.js'; import { TraktLike } from '../models/trakt-like.model.js'; import { TraktClientEndpoint, TraktApiParamsPagination, TraktApiParamsExtended, TraktApiParamsFilter } from '../models/trakt-client.model.js'; import { TraktCheckinRequest, TraktCheckin } from '../models/trakt-checkin.model.js'; import { TraktCalendarQuery, TraktCalendarShow, TraktCalendarMovie } from '../models/trakt-calendar.model.js'; import { TraktAuthenticationAuthorizeRequest, TraktAuthenticationCodeRequest, TraktAuthentication, TraktAuthenticationRefreshRequest, TraktAuthenticationRevokeRequest, TraktDeviceAuthentication } from '../models/trakt-authentication.model.js'; import '../models/trakt-id.model.js'; import '../models/trakt-image.model.js'; import '@dvcol/common-utils/common/models'; import '@dvcol/base-http-client'; import '@dvcol/common-utils/http/fetch'; declare const traktApi: { authentication: { oAuth: { authorize: TraktClientEndpoint; token: { code: TraktClientEndpoint; refresh: TraktClientEndpoint; }; revoke: TraktClientEndpoint; }; device: { code: TraktClientEndpoint<{ client_id: string; }, TraktDeviceAuthentication, false>; token: TraktClientEndpoint<{ code: string; client_id: string; client_secret: string; }, TraktAuthentication, false>; }; }; calendars: { my: { shows: { get: TraktClientEndpoint; new: TraktClientEndpoint; premieres: TraktClientEndpoint; finales: TraktClientEndpoint; }; movies: TraktClientEndpoint; dvd: TraktClientEndpoint; }; all: { shows: { get: TraktClientEndpoint; new: TraktClientEndpoint; premieres: TraktClientEndpoint; finales: TraktClientEndpoint; movies: TraktClientEndpoint; }; dvd: TraktClientEndpoint; }; }; checkin: { add: TraktClientEndpoint; delete: TraktClientEndpoint, unknown, false>; }; /** * Get a list of all certifications, including names, slugs, and descriptions. * * Most TV shows and movies have a certification to indicate the content rating. Some API methods allow filtering by certification, so it's good to cache this list in your app. * * Note: Only us certifications are currently returned. * * @see [get-certifications]{@link https://trakt.docs.apiary.io/#reference/certifications/list/get-certifications} */ certifications: TraktClientEndpoint<{ /** Certification type : shows or movies */ type: 'movies' | 'shows'; }, TraktCertification[], true>; comments: { comment: { add: TraktClientEndpoint; get: TraktClientEndpoint<{ id: number; }, TraktComment, true>; update: TraktClientEndpoint<{ id: number; }, TraktComment, false>; remove: TraktClientEndpoint<{ id: number; }, unknown, false>; replies: { get: TraktClientEndpoint<{ id: number; } & TraktApiParamsPagination, TraktComment[], true>; add: TraktClientEndpoint<{ id: number; comment: string; spoiler?: boolean; }, TraktComment, false>; }; item: TraktClientEndpoint<{ id: number; } & TraktApiParamsExtended<"full">, TraktCommentMedia, true>; likes: TraktClientEndpoint<{ id: number; } & TraktApiParamsPagination, TraktLike[], true>; like: { add: TraktClientEndpoint<{ id: number; }, unknown, false>; remove: TraktClientEndpoint<{ id: number; }, unknown, false>; }; trending: TraktClientEndpoint<{ comment_type?: "all" | "reviews" | "shouts"; type?: "episodes" | "all" | "movies" | "shows" | "seasons" | "lists"; include_replies?: boolean; } & TraktApiParamsPagination & TraktApiParamsExtended<"full">, TraktCommentItem[], true>; recent: TraktClientEndpoint<{ comment_type?: "all" | "reviews" | "shouts"; type?: "episodes" | "all" | "movies" | "shows" | "seasons" | "lists"; include_replies?: boolean; } & TraktApiParamsPagination & TraktApiParamsExtended<"full">, TraktCommentItem[], true>; updates: TraktClientEndpoint<{ comment_type?: "all" | "reviews" | "shouts"; type?: "episodes" | "all" | "movies" | "shows" | "seasons" | "lists"; include_replies?: boolean; } & TraktApiParamsPagination & TraktApiParamsExtended<"full">, TraktCommentItem[], true>; }; }; /** * Get a list of all countries, including names and codes. * * Some API methods allow filtering by country code, so it's good to cache this list in your app. * * @see [countries]{@link https://trakt.docs.apiary.io/#reference/countries} */ countries: TraktClientEndpoint<{ /** Certification type : shows or movies */ type: 'movies' | 'shows'; }, { name: string; code: string; }[], true>; /** * Get a list of all genres, including names and slugs. * * One or more genres are attached to all movies and shows. Some API methods allow filtering by genre, so it's good to cache this list in your app. * * @see [genres]{@link https://trakt.docs.apiary.io/#reference/genres} */ genres: TraktClientEndpoint<{ /** Certification type : shows or movies */ type: 'movies' | 'shows'; }, { name: string; slug: string; }[], true>; /** * Get a list of all langauges, including names and codes. * * Some API methods allow filtering by language code, so it's good to cache this list in your app. * * @see [list]{@link https://trakt.docs.apiary.io/#reference/genres/list} */ languages: TraktClientEndpoint<{ /** Certification type : shows or movies */ type: 'movies' | 'shows'; }, { name: string; code: string; }[], true>; lists: { trending: TraktClientEndpoint; popular: TraktClientEndpoint; list: TraktClientEndpoint<{ id: number; }, TraktList, true>; likes: TraktClientEndpoint<{ id: number; } & TraktApiParamsPagination, TraktLike[], true>; /** * Get a list of all genres, including names and slugs. * * One or more genres are attached to all movies and shows. Some API methods allow filtering by genre, so it's good to cache this list in your app. * * @see [genres]{@link https://trakt.docs.apiary.io/#reference/genres} */ like: { add: TraktClientEndpoint<{ id: number; }, unknown, true>; remove: TraktClientEndpoint<{ id: number; }, unknown, false>; }; items: TraktClientEndpoint<{ id: number; type?: "movie" | "show" | "episode" | "season" | "person" | ("movie" | "show" | "episode" | "season" | "person")[]; } & TraktApiParamsPagination & TraktApiParamsExtended<"full">, TraktListItem[], true>; comments: TraktClientEndpoint<{ id: number; sort: "newest" | "oldest" | "likes" | "replies"; } & TraktApiParamsPagination, TraktComment[], true>; }; movies: { trending: TraktClientEndpoint & TraktApiParamsFilter, TraktMovieTrending[], true>; popular: TraktClientEndpoint & TraktApiParamsFilter, (TraktMovieShort & Partial)[], true>; favorited: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktMovieFavorited[], true>; /** * Get a list of all langauges, including names and codes. * * Some API methods allow filtering by language code, so it's good to cache this list in your app. * * @see [list]{@link https://trakt.docs.apiary.io/#reference/genres/list} */ played: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktMoviePlayed[], true>; watched: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktMoviePlayed[], true>; collected: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktMoviePlayed[], true>; anticipated: TraktClientEndpoint & TraktApiParamsFilter, TraktMovieAnticipated[], true>; boxOffice: TraktClientEndpoint, TraktMovieBoxOffice[], true>; updates: TraktClientEndpoint & TraktApiParamsPagination, TraktMovieUpdate[], true>; updatedIds: TraktClientEndpoint; summary: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "images">, TraktMovieShort & Partial, true>; aliases: TraktClientEndpoint<{ id: string | number; }, TraktAlias[], true>; releases: TraktClientEndpoint<{ id: string | number; country?: string; }, TraktMovieRelease[], true>; translations: TraktClientEndpoint<{ id: string | number; language?: string; }, TraktTranslation[], true>; comments: TraktClientEndpoint<{ id: string | number; sort?: "newest" | "oldest" | "likes" | "replies" | "highest" | "lowest" | "plays"; } & TraktApiParamsPagination, TraktComment[], true>; lists: TraktClientEndpoint<{ id: string | number; type?: "all" | "favorites" | "personal" | "official" | "watchlists"; sort?: "comments" | "likes" | "popular" | "items" | "added" | "updated"; } & TraktApiParamsPagination, TraktList[], true>; people: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, { cast: { characters: string[]; person: BaseTraktPerson & Partial; }[]; crew: Partial; }[]>>; }, true>; ratings: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"all">, TraktGenericRating | TraktExtendedRatings, true>; related: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, (TraktMovieShort & Partial)[], true>; stats: TraktClientEndpoint<{ id: string | number; }, TraktMovieStats, true>; studios: TraktClientEndpoint<{ id: string | number; }, TraktStudio[], true>; watching: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & Partial)[], true>; }; /** * Get a list of all TV networks, including the name, country, and ids. * * Most TV shows have a TV network where it originally aired. Some API methods allow filtering by network, so it's good to cache this list in your app. * * @pagination optional - {@link TraktApiPagination} * * @see [networks]{@link https://trakt.docs.apiary.io/#reference/networks} */ networks: TraktClientEndpoint; notes: { add: TraktClientEndpoint; get: TraktClientEndpoint<{ id: number; }, TraktNote, true>; update: TraktClientEndpoint<{ id: number; }, TraktNote, false>; delete: TraktClientEndpoint<{ id: number; /** * Get a list of all TV networks, including the name, country, and ids. * * Most TV shows have a TV network where it originally aired. Some API methods allow filtering by network, so it's good to cache this list in your app. * * @pagination optional - {@link TraktApiPagination} * * @see [networks]{@link https://trakt.docs.apiary.io/#reference/networks} */ }, unknown, false>; items: TraktClientEndpoint<{ id: number; } & TraktApiParamsExtended<"full">, TraktNoteItem, true>; }; people: { updates: TraktClientEndpoint & TraktApiParamsPagination, TraktPersonUpdate[], true>; updatedIds: TraktClientEndpoint; summary: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "images">, BaseTraktPerson & Partial, true>; movies: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "images">, { cast: { characters: string[]; person: BaseTraktPerson & Partial; }[]; crew: Partial; }[]>>; }, true>; shows: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "images">, { cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & Partial<{ cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & { guest_stars: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; }>, true>; lists: TraktClientEndpoint<{ id: string | number; type?: "all" | "personal" | "official"; sort?: "comments" | "likes" | "popular" | "items" | "added" | "updated"; }, TraktList[], true>; }; recommendations: { movies: { get: TraktClientEndpoint<{ ignore_collected?: boolean; ignore_watchlisted?: boolean; } & TraktApiParamsExtended<"full">, ({ favorited_by: (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & { notes: string; })[]; } & Pick<{ movie: TraktMovieShort & Partial; show: TraktShowShort & Partial; }, "movie">)[], true>; hide: TraktClientEndpoint<{ id: string | number; }, unknown, false>; }; shows: { get: TraktClientEndpoint<{ ignore_collected?: boolean; ignore_watchlisted?: boolean; } & TraktApiParamsExtended<"full">, ({ favorited_by: (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & { notes: string; })[]; } & Pick<{ movie: TraktMovieShort & Partial; show: TraktShowShort & Partial; }, "show">)[], true>; hide: TraktClientEndpoint<{ id: string | number; }, unknown, false>; }; }; scrobble: { start: TraktClientEndpoint, false>; pause: TraktClientEndpoint, false>; stop: TraktClientEndpoint, false>; }; search: { text: TraktClientEndpoint; id: TraktClientEndpoint; }; shows: { trending: TraktClientEndpoint & TraktApiParamsFilter, TraktShowTrending[], true>; popular: TraktClientEndpoint & TraktApiParamsFilter, (TraktShowShort & Partial)[], true>; favorited: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktShowFavorited[], true>; played: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktShowPlayed[], true>; watched: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktShowPlayed[], true>; collected: TraktClientEndpoint<{ period?: "all" | "daily" | "weekly" | "monthly" | "yearly"; } & (TraktApiParamsPagination & TraktApiParamsExtended<"full"> & TraktApiParamsFilter), TraktShowPlayed[], true>; anticipated: TraktClientEndpoint & TraktApiParamsFilter, TraktShowAnticipated[], true>; updates: TraktClientEndpoint & TraktApiParamsPagination, TraktShowUpdate[], true>; updatedIds: TraktClientEndpoint; summary: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, TraktShowShort & Partial, true>; aliases: TraktClientEndpoint<{ id: string | number; }, TraktAlias[], true>; certifications: TraktClientEndpoint<{ id: string | number; }, TraktShowCertification[], true>; translations: TraktClientEndpoint<{ id: string | number; language?: string; }, TraktTranslation[], true>; comments: TraktClientEndpoint<{ id: string | number; sort?: "newest" | "oldest" | "likes" | "replies" | "highest" | "lowest" | "plays" | "watched"; } & TraktApiParamsPagination, TraktComment[], true>; lists: TraktClientEndpoint<{ id: string | number; type?: "all" | "favorites" | "personal" | "official" | "watchlists"; sort?: "comments" | "likes" | "popular" | "items" | "added" | "updated"; } & TraktApiParamsPagination, TraktList[], true>; progress: { collection: TraktClientEndpoint<{ id: string | number; hidden?: boolean; specials?: boolean; count_specials?: boolean; }, TraktCollectionProgress, true>; watched: TraktClientEndpoint<{ id: string | number; hidden?: boolean; specials?: boolean; count_specials?: boolean; }, TraktWatchedProgress, true>; reset: TraktClientEndpoint<{ id: string | number; }, TraktProgressReset, false>; undoReset: TraktClientEndpoint<{ id: string | number; }, unknown, false>; }; people: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "guest_stars">, { cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & Partial<{ cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & { guest_stars: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; }>, true>; ratings: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"all">, TraktGenericRating | TraktExtendedRatings, true>; related: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, (TraktShowShort & Partial)[], true>; stats: TraktClientEndpoint<{ id: string | number; }, TraktShowStats, true>; studios: TraktClientEndpoint<{ id: string | number; }, TraktStudio[], true>; watching: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & Partial)[], true>; nextEpisode: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, TraktEpisodeShort & Partial, true>; lastEpisode: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full">, TraktEpisodeShort & Partial, true>; }; seasons: { summary: TraktClientEndpoint<{ id: string | number; } & TraktApiParamsExtended<"full" | "episodes" | "images">, (Partial & Partial> & TraktSeasonShort)[], true>; season: TraktClientEndpoint<{ id: string | number; season: number; translations?: string; } & TraktApiParamsExtended<"full" | "images">, (TraktEpisodeShort & Partial)[], true>; translations: TraktClientEndpoint<{ id: string | number; season: number; language?: string; }, TraktTranslation[], true>; comments: TraktClientEndpoint<{ id: string | number; season: number; sort?: "newest" | "oldest" | "likes" | "replies" | "highest" | "lowest" | "plays" | "watched"; } & TraktApiParamsPagination, TraktComment[], true>; lists: TraktClientEndpoint<{ id: string | number; season: number; type?: "all" | "personal" | "official" | "watchlists"; sort?: "comments" | "likes" | "popular" | "items" | "added" | "updated"; } & TraktApiParamsPagination, TraktList[], true>; people: TraktClientEndpoint<{ id: string | number; season: number; } & TraktApiParamsExtended<"guest_stars">, { cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & Partial<{ cast: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; crew: Partial; } & { episode_count: number; })[]>>; } & { guest_stars: ({ characters: string[]; person: BaseTraktPerson & Partial; } & { episode_count: number; series_regular?: boolean; })[]; }>, true>; ratings: TraktClientEndpoint<{ id: string | number; season: number; } & TraktApiParamsExtended<"all">, TraktGenericRating | TraktExtendedRatings, true>; stats: TraktClientEndpoint<{ id: string | number; season: number; }, TraktSeasonStats, true>; watching: TraktClientEndpoint<{ id: string | number; season: number; } & TraktApiParamsExtended<"full">, (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & Partial)[], true>; }; episodes: { summary: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & TraktApiParamsExtended<"full" | "images">, TraktEpisodeShort & Partial, true>; translations: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & { language?: string; }, TraktTranslation[], true>; comments: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & { sort?: "newest" | "oldest" | "likes" | "replies" | "highest" | "lowest" | "plays"; } & TraktApiParamsPagination, TraktComment[], true>; lists: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & { type?: "all" | "personal" | "official" | "watchlists"; sort?: "comments" | "likes" | "popular" | "items" | "added" | "updated"; } & TraktApiParamsPagination, TraktList[], true>; people: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & TraktApiParamsExtended<"guest_stars">, { cast: { characters: string[]; person: BaseTraktPerson & Partial; }[]; crew: Partial; }[]>>; } & Partial<{ cast: { characters: string[]; person: BaseTraktPerson & Partial; }[]; crew: Partial; }[]>>; } & { guest_stars: { characters: string[]; person: BaseTraktPerson & Partial; }[]; }>, true>; ratings: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & TraktApiParamsExtended<"all">, TraktGenericRating | TraktExtendedRatings, true>; stats: TraktClientEndpoint<{ id: string | number; season: number; episode: number; }, TraktEpisodeStats, true>; watching: TraktClientEndpoint<{ id: string | number; season: number; episode: number; } & TraktApiParamsExtended<"full">, (TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & Partial)[], true>; }; sync: { lastActivities: TraktClientEndpoint, TraktSyncActivities, true>; playback: { get: TraktClientEndpoint<{ type?: "episodes" | "movies"; start_at?: string; end_at?: string; } & TraktApiParamsPagination, TraktSyncProgress[], true>; remove: TraktClientEndpoint<{ id: number; }, unknown, false>; }; collection: { get: TraktClientEndpoint; } & { metadata?: TraktCollectionMetadata; }) | { last_collected_at: string; last_updated_at: string; show: TraktShowShort & Partial; seasons: TraktCollectionSeason<"any">[]; })[], true>; add: TraktClientEndpoint, TraktCollectionAdded, false>; remove: TraktClientEndpoint; }; watched: TraktClientEndpoint<{ type: "movies" | "shows"; } & TraktApiParamsExtended<"full" | "noseasons">, TraktWatched[], true>; history: { get: TraktClientEndpoint; add: TraktClientEndpoint; remove: TraktClientEndpoint; }; ratings: { get: TraktClientEndpoint; add: TraktClientEndpoint; remove: TraktClientEndpoint; }; watchlist: { get: TraktClientEndpoint; update: TraktClientEndpoint; add: TraktClientEndpoint; remove: TraktClientEndpoint; reorder: TraktClientEndpoint<{ rank: number[]; }, TraktListReordered, false>; updateItem: TraktClientEndpoint<{ list_item_id: number; notes: string; }, unknown, false>; }; favorites: { get: TraktClientEndpoint<{ type?: "movies" | "shows"; sort?: "added" | "title" | "rank" | "released"; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, (TraktListItem<"movie"> | TraktListItem<"show">)[], true>; update: TraktClientEndpoint; add: TraktClientEndpoint; remove: TraktClientEndpoint; reorder: TraktClientEndpoint<{ rank: number[]; }, TraktListReordered, false>; updateItem: TraktClientEndpoint<{ list_item_id: number; notes: string; }, unknown, false>; }; }; users: { settings: TraktClientEndpoint, TraktUserSettings, true>; requests: { following: TraktClientEndpoint, TraktUserFollowRequest, true>; follower: TraktClientEndpoint, TraktUserFollowRequest, true>; approve: TraktClientEndpoint<{ id: number; }, TraktUserFollower, false>; deny: TraktClientEndpoint<{ id: number; }, unknown, false>; savedFilters: TraktClientEndpoint<{ section?: "movies" | "shows" | "calendar" | "search"; } & TraktApiParamsPagination, TraktUserFilter[], true>; hidden: { get: TraktClientEndpoint<{ section: "comments" | "calendar" | "progress_watched" | "progress_watched_reset" | "progress_collected" | "recommendations"; type?: "movie" | "show" | "season" | "user"; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, TraktUserHiddenItem[], true>; add: TraktClientEndpoint; remove: TraktClientEndpoint; }; profile: TraktClientEndpoint<{ id: string; } & TraktApiParamsExtended<"vip" | "full">, TraktPrivateUser & { name: string; vip: boolean; vip_ep: boolean; } & Partial, true>; likes: TraktClientEndpoint<{ id: string; type?: "comments" | "lists"; } & TraktApiParamsExtended<"comments">, { liked_at: string; type: "comment"; comment: TraktComment; } | ({ liked_at: string; type: "comment"; comment: TraktComment; } & { comment_type: "movie" | "show" | "episode" | "season" | "list"; } & Omit, "type">), true>; collection: TraktClientEndpoint<{ id: string; type: "movies" | "shows"; } & TraktApiParamsExtended<"full" | "metadata">, (({ collected_at: string; updated_at: string; movie: TraktMovieShort & Partial; } & { metadata?: TraktCollectionMetadata; }) | { last_collected_at: string; last_updated_at: string; show: TraktShowShort & Partial; seasons: TraktCollectionSeason<"any">[]; })[], true>; comments: TraktClientEndpoint<{ id: string; comment_type?: "all" | "reviews" | "shouts"; type?: "episodes" | "all" | "movies" | "shows" | "seasons" | "lists"; include_replies?: boolean | "only"; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, TraktCommentItem[], true>; }; notes: TraktClientEndpoint<{ id: string; type?: "all" | TraktNoteTypes; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, TraktNoteItem[], true>; lists: { get: TraktClientEndpoint<{ id: string; }, TraktList[], true>; create: TraktClientEndpoint<{ id: string; name: string; description?: string; privacy?: "private" | "public" | "link" | "friends"; display_numbers?: boolean; allow_comments?: boolean; sort_by?: "votes" | "added" | "title" | "watched" | "rank" | "released" | "runtime" | "popularity" | "percentage" | "my_rating" | "random" | "collected"; sort_how?: "asc" | "desc"; }, TraktList, false>; reorder: TraktClientEndpoint<{ id: string; rank: number[]; }, Omit, false>; collaborations: TraktClientEndpoint<{ id: string; }, TraktList[], true>; }; list: { get: TraktClientEndpoint<{ id: string; list_id: string; }, TraktList[], true>; update: TraktClientEndpoint<{ id: string; list_id: string; name?: string; privacy?: "private" | "public" | "link" | "friends"; display_numbers?: boolean; sort_by?: "votes" | "added" | "title" | "watched" | "rank" | "released" | "runtime" | "popularity" | "percentage" | "my_rating" | "random" | "collected"; sort_how?: "asc" | "desc"; }, TraktList, false>; delete: TraktClientEndpoint<{ id: string; list_id: string; }, unknown, false>; likes: TraktClientEndpoint<{ id: string; list_id: string; }, TraktLike[], true>; like: { add: TraktClientEndpoint<{ id: string; list_id: string; }, unknown, false>; remove: TraktClientEndpoint<{ id: string; list_id: string; }, unknown, false>; }; items: { get: TraktClientEndpoint; add: TraktClientEndpoint; remove: TraktClientEndpoint; reorder: TraktClientEndpoint<{ id: string; list_id: string; rank: number[]; }, TraktListReordered, false>; update: TraktClientEndpoint<{ id: string; list_id: string; list_item_id: string; notes: string; }, unknown, false>; }; comments: TraktClientEndpoint<{ id: string; list_id: string; sort?: "newest" | "oldest" | "likes" | "replies"; } & TraktApiParamsPagination, TraktComment[], true>; }; follow: { add: TraktClientEndpoint<{ id: string; }, TraktUserFollow, false>; remove: TraktClientEndpoint<{ id: string; }, unknown, false>; }; followers: TraktClientEndpoint<{ id: string; } & TraktApiParamsExtended<"full">, TraktUserFollower[], true>; following: TraktClientEndpoint<{ id: string; } & TraktApiParamsExtended<"full">, TraktUserFollowing[], true>; friends: TraktClientEndpoint<{ id: string; } & TraktApiParamsExtended<"full">, TraktUserFriend[], true>; history: TraktClientEndpoint<{ id: string; type?: "episodes" | "movies" | "shows" | "seasons"; item_id?: string; start_at?: string; end_at?: string; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, TraktHistory[], true>; ratings: TraktClientEndpoint<{ id: string; type?: "episodes" | "all" | "movies" | "shows" | "seasons"; rating?: 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; } & TraktApiParamsPagination & TraktApiParamsExtended<"full">, TraktRating[], true>; watchlist: { get: TraktClientEndpoint<{ id: string; type?: "episodes" | "movies" | "shows" | "seasons"; sort?: "added" | "title" | "rank" | "released"; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, TraktWatchlist[], true>; comments: TraktClientEndpoint<{ id: string; sort?: "newest" | "oldest" | "likes" | "replies"; } & TraktApiParamsPagination, TraktComment[], true>; }; favorites: TraktClientEndpoint<{ id: string; type?: "movies" | "shows"; sort?: "added" | "title" | "rank" | "released"; } & TraktApiParamsExtended<"full"> & TraktApiParamsPagination, (TraktListItem<"movie"> | TraktListItem<"show">)[], true>; watching: TraktClientEndpoint<{ id: string; } & TraktApiParamsExtended<"full">, TraktWatching, true>; watched: TraktClientEndpoint<{ id: string; type?: "movies" | "shows"; } & TraktApiParamsExtended<"full" | "noseasons">, TraktWatched[], true>; stats: TraktClientEndpoint<{ id: string; }, TraktStats, true>; }; }; type TraktApi = typeof traktApi; export { type TraktApi, traktApi };