// Generated by https://quicktype.io export interface CrunchySearch { __class__: string; __href__: string; __resource_key__: string; __links__: CrunchySearchLinks; __actions__: unknown; total: number; items: CrunchySearchItem[]; } export interface CrunchySearchLinks { continuation?: Continuation; } export interface Continuation { href: string; } export interface CrunchySearchItem { __class__: string; __href__: string; __resource_key__: string; __links__: CrunchySearchLinks; __actions__: unknown; type: string; total: number; items: ItemItem[]; } export interface ItemItem { __actions__: unknown; __class__: Class; __href__: string; __links__: PurpleLinks; channel_id: ChannelID; description: string; external_id: string; id: string; images: Images; linked_resource_key: string; new: boolean; new_content: boolean; promo_description: string; promo_title: string; search_metadata: SearchMetadata; series_metadata?: SeriesMetadata; slug: string; slug_title: string; title: string; type: ItemType; episode_metadata?: EpisodeMetadata; playback?: string; isSelected?: boolean; season_number?: string; is_premium_only?: boolean; hide_metadata?: boolean; seq_id?: string; f_num?: string; s_num?: string; ep_num?: string; last_public?: string; subtitle_locales?: string[]; availability_notes?: string } export enum Class { Panel = 'panel', } export interface PurpleLinks { resource: Continuation; 'resource/channel': Continuation; 'episode/season'?: Continuation; 'episode/series'?: Continuation; streams?: Continuation; } export enum ChannelID { Crunchyroll = 'crunchyroll', } export interface EpisodeMetadata { ad_breaks: AdBreak[]; availability_notes: string; available_offline: boolean; duration_ms: number; episode: string; episode_air_date: string; episode_number: number; is_clip: boolean; is_dubbed: boolean; is_mature: boolean; is_premium_only: boolean; is_subbed: boolean; mature_blocked: boolean; maturity_ratings: string[]; season_id: string; season_number: number; season_slug_title: string; season_title: string; sequence_number: number; series_id: string; series_slug_title: string; series_title: string; subtitle_locales: string[]; tenant_categories?: TenantCategory[]; available_date?: string; free_available_date?: string; } export interface AdBreak { offset_ms: number; type: AdBreakType; } export enum AdBreakType { Midroll = 'midroll', Preroll = 'preroll', } export enum TenantCategory { Action = 'Action', Drama = 'Drama', SciFi = 'Sci-Fi', } export interface Images { poster_tall?: Array; poster_wide?: Array; thumbnail?: Array; } export interface PosterTall { height: number; source: string; type: PosterTallType; width: number; } export enum PosterTallType { PosterTall = 'poster_tall', PosterWide = 'poster_wide', Thumbnail = 'thumbnail', } export interface SearchMetadata { score: number; } export interface SeriesMetadata { availability_notes: string; episode_count: number; extended_description: string; is_dubbed: boolean; is_mature: boolean; is_simulcast: boolean; is_subbed: boolean; mature_blocked: boolean; maturity_ratings: string[]; season_count: number; tenant_categories: TenantCategory[]; }