export interface Item { // Added later id: string, id_split: (number|string)[] // Added from the start mostRecentSvodJpnUs: MostRecentSvodJpnUs; synopsis: string; mediaCategory: ContentType; mostRecentSvodUsEndTimestamp: number; quality: QualityClass; genres: Genre[]; titleImages: TitleImages; engAllTerritoryAvail: EngAllTerritoryAvail; thumb: string; mostRecentSvodJpnAllTerrStartTimestamp: number; title: string; starRating: number; primaryAvail: PrimaryAvail; access: Access[]; version: Version[]; mostRecentSvodJpnAllTerrEndTimestamp: number; itemId: number; versionAudio: VersionAudio; contentType: ContentType; mostRecentSvodUsStartTimestamp: number; poster: string; mostRecentSvodEngAllTerrEndTimestamp: number; mostRecentSvodJpnUsStartTimestamp: number; mostRecentSvodJpnUsEndTimestamp: number; mostRecentSvodStartTimestamp: number; mostRecentSvod: MostRecent; altAvail: AltAvail; ids: IDs; mostRecentSvodUs: MostRecent; item: Item; mostRecentSvodEngAllTerrStartTimestamp: number; audio: string[]; mostRecentAvod: MostRecent; } export enum ContentType { Episode = 'episode', Ova = 'ova', } export interface IDs { externalShowId: ID; externalSeasonId: ExternalSeasonID; externalEpisodeId: string; externalAsianId?: string } export interface Item { seasonTitle: string; seasonId: number; episodeOrder: number; episodeSlug: string; created: Date; titleSlug: string; episodeNum: string; episodeId: number; titleId: number; seasonNum: string; ratings: Array; showImage: string; titleName: string; runtime: string; episodeName: string; seasonOrder: number; titleExternalId: string; } export interface MostRecent { image?: string; siblingStartTimestamp?: string; devices?: Device[]; availId?: number; distributor?: Distributor; quality?: MostRecentAvodQuality; endTimestamp?: string; mediaCategory?: ContentType; isPromo?: boolean; siblingType?: Purchase; version?: Version; territory?: Territory; startDate?: Date; endDate?: Date; versionId?: number; tier?: Device | null; purchase?: Purchase; startTimestamp?: string; language?: Audio; itemTitle?: string; ids?: MostRecentAvodIDS; experience?: number; siblingEndTimestamp?: string; item?: Item; subscriptionRequired?: boolean; purchased?: boolean; } export interface MostRecentAvodIDS { externalSeasonId: ExternalSeasonID; externalAsianId: null; externalShowId: ID; externalEpisodeId: string; externalEnglishId: string; externalAlphaId: string; } export enum Purchase { AVOD = 'A-VOD', Dfov = 'DFOV', Est = 'EST', Svod = 'SVOD', } export enum Version { Simulcast = 'Simulcast', Uncut = 'Uncut', } export type MostRecentSvodJpnUs = Record export interface QualityClass { quality: QualityQuality; height: number; } export enum QualityQuality { HD = 'HD', SD = 'SD', } export interface TitleImages { showThumbnail: string; showBackgroundSite: string; showDetailHeaderDesktop: string; continueWatchingDesktop: string; showDetailHeroSite: string; appleHorizontalBannerShow: string; backgroundImageXbox_360: string; applePosterCover: string; showDetailBoxArtTablet: string; featuredShowBackgroundTablet: string; backgroundImageAppletvfiretv: string; newShowDetailHero: string; showDetailHeroDesktop: string; showKeyart: string; continueWatchingMobile: string; featuredSpotlightShowPhone: string; appleHorizontalBannerMovie: string; featuredSpotlightShowTablet: string; showDetailBoxArtPhone: string; featuredShowBackgroundPhone: string; appleSquareCover: string; backgroundVideo: string; showMasterKeyArt: string; newShowDetailHeroPhone: string; showDetailBoxArtXbox_360: string; showDetailHeaderMobile: string; showLogo: string; } export interface VersionAudio { Uncut?: Audio[]; Simulcast: Audio[]; }