export interface Disposition { default: boolean; dub: boolean; original: boolean; comment: boolean; lyrics: boolean; karaoke: boolean; forced: boolean; hearing_impaired: boolean; visual_impaired: boolean; clean_effects: boolean; attached_pic: boolean; timed_thumbnails: boolean; non_diegetic: boolean; captions: boolean; descriptions: boolean; metadata: boolean; dependent: boolean; still_image: boolean; multilayer: boolean; } export interface VideoTrack { index: number; codec_name: string; codec_long_name: string; profile: string; codec_type: string; codec_tag_string: string; codec_tag: string; width: number; height: number; coded_width: number; coded_height: number; closed_captions: number; film_grain: number; has_b_frames: number; sample_aspect_ratio: string; display_aspect_ratio: string; pix_fmt: string; level: number; color_range: string; chroma_location: string; field_order: string; refs: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; start_pts: number; start_time: string; extradata_size: number; disposition: Disposition; tags: { language: string; }; } export interface AudioTrack { index: number; codec_name: string; codec_long_name: string; profile: string; codec_type: string; codec_tag_string: string; codec_tag: string; channels: number; channel_layout: string; sample_rate: number; bits_per_sample: number; bits_per_raw_sample: number; block_align: number; frame_size: number; initial_padding: number; final_padding: number; bit_rate: number; max_bit_rate: number; bits_per_frame: number; id: number; disposition: Disposition; tags: { language: string; }; } export interface SubtitlesTrack { index: number; codec_name: string; codec_long_name: string; profile: string; codec_type: string; codec_tag_string: string; codec_tag: string; width: number; height: number; coded_width: number; coded_height: number; closed_captions: number; film_grain: number; has_b_frames: number; sample_aspect_ratio: string; display_aspect_ratio: string; pix_fmt: string; level: number; color_range: string; chroma_location: string; field_order: string; refs: number; r_frame_rate: string; avg_frame_rate: string; time_base: string; start_pts: number; start_time: string; extradata_size: number; disposition: Disposition; tags: { language: string; }; } export interface VideoInfo { format: { filename: string; nb_streams: number; nb_programs: number; nb_stream_groups: number; format_name: string; format_long_name: string; start_time: string; duration: string; size: string; bit_rate: string; probe_score: number; tags: { encoder: string; creation_time: string; }; }; streams: (VideoTrack | AudioTrack | SubtitlesTrack)[]; } export interface OMDBMovieInfo { Title: string; Year: string; Rated: string; Released: string; Runtime: string; Genre: string; Director: string; Writer: string; Actors: string; Plot: string; Language: string; Country: string; Awards: string; Poster: string; Ratings: { Source: string; Value: string }[]; Metascore: string; imdbRating: string; imdbVotes: string; imdbID: string; Type: string; DVD: string; BoxOffice: string; Production: string; Website: string; Response: string; } export interface OMDBSeriesInfo { Title: string; Year: string; Rated: string; Released: string; Runtime: string; Genre: string; Director: string; Writer: string; Actors: string; Plot: string; Language: string; Country: string; Awards: string; Poster: string; Ratings: { Source: string; Value: string }[]; Metascore: string; imdbRating: string; imdbVotes: string; imdbID: string; Type: string; totalSeasons: string; Response: string; } export interface parsedAudioStream { index: number; language: string; isSideloaded: boolean; channels: number; channel_layout: string; } export interface parsedSubtitleStream { index: number; language: string; codec: string; } export interface parsedMetadata { title: string; date_released: string; imdb_id: string; original_media_type?: string; season_number?: number; episode_number?: number; } export interface parsedVideoInfo { filename: string; metadata?: parsedMetadata; MPix: number; fps: number; isAnamorphic: boolean; isInterlaced: boolean; audioStreams?: parsedAudioStream[]; subtitleStreams?: parsedSubtitleStream[]; } export interface profile { crf: number; preset: number; filmGrain: number; }