import { EntityTypes, Short, Extended, Any } from './trakt-entity.model.cjs'; import { TraktEpisode } from './trakt-episode.model.cjs'; import { TraktApiIds } from './trakt-id.model.cjs'; import { TraktImage } from './trakt-image.model.cjs'; import { TraktCast } from './trakt-people.model.cjs'; import '@dvcol/common-utils/common/models'; import './trakt-client.model.cjs'; import '@dvcol/base-http-client'; import '@dvcol/common-utils/http/fetch'; import '../api/trakt-api.filters.cjs'; type TraktSeasonShort = { number: number; ids: Pick; }; type TraktSeasonExtended = TraktSeasonShort & { rating: number; votes: number; episode_count: number; aired_episodes: number; title: string; overview: string; /** Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) */ first_aired: string; /** Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) */ updated_at: string; network: string; images: TraktImage; }; type TraktSeasonEpisodes = TraktSeasonShort & { episodes: TraktEpisode[]; }; type TraktSeasonEpisodesExtended = TraktSeasonExtended & TraktSeasonEpisodes; type TraktSeason = T extends Extended ? TraktSeasonExtended : T extends 'episodes' ? TraktSeasonEpisodes : T extends Short ? TraktSeasonShort : (Partial & Partial) & TraktSeasonShort; type TraktSeasonCast = TraktCast; type TraktSeasonStats = { watchers: number; plays: number; collectors: number; collected_episodes: number; comments: number; lists: number; votes: number; }; export type { TraktSeason, TraktSeasonCast, TraktSeasonEpisodes, TraktSeasonEpisodesExtended, TraktSeasonExtended, TraktSeasonShort, TraktSeasonStats };