import type { Format } from '../parser/misc.js'; export type URLTransformer = (url: URL) => URL; export type FormatFilter = (format: Format) => boolean; export interface FormatOptions { /** * Video quality; 360p, 720p, 1080p, etc... also accepts 'best' and 'bestefficiency'. */ quality?: string; /** * Download type, can be: video, audio or video+audio */ type?: 'video' | 'audio' | 'video+audio'; /** * Language code, defaults to 'original'. */ language?: string; /** * File format, use 'any' to download any format */ format?: string; /** * InnerTube client, can be ANDROID, WEB, YTMUSIC, YTMUSIC_ANDROID, YTSTUDIO_ANDROID or TV_EMBEDDED */ client?: 'WEB' | 'ANDROID' | 'YTMUSIC_ANDROID' | 'YTMUSIC' | 'YTSTUDIO_ANDROID' | 'TV_EMBEDDED'; } export interface DownloadOptions extends FormatOptions { /** * Download range, indicates which bytes should be downloaded. */ range?: { start: number; end: number; }; }