@class TVPMediaItemLoader, NSDictionary, NSObject, TVPDownloadSession, NSString, NSPointerArray, TVPReportingSession, TVPStateMachine, NSArray, NSData, AVAssetDownloadTask, NSError, NSNumber; @protocol TVPMediaItem; @interface TVPDownload : NSObject <AVAssetDownloadDelegatePrivate> @property (retain, nonatomic) NSObject<TVPMediaItem> *mediaItem; @property (nonatomic) long long state; @property (retain, nonatomic) NSError *error; @property (retain, nonatomic) TVPStateMachine *stateMachine; @property (retain, nonatomic) TVPMediaItemLoader *mediaItemLoader; @property (weak, nonatomic) TVPDownloadSession *downloadSession; @property (retain, nonatomic) AVAssetDownloadTask *downloadTask; @property (retain, nonatomic) NSPointerArray *delegates; @property (nonatomic) double lastDownloadProgressFractionCompleted; @property (nonatomic) unsigned long long downloadInitiationBackgroundTask; @property (nonatomic) unsigned long long downloadTerminationBackgroundTask; @property (retain, nonatomic) TVPReportingSession *reportingSession; @property (nonatomic) BOOL addedMediaItemLoaderStateObserver; @property (nonatomic) BOOL addedProgressObserver; @property (retain, nonatomic) NSError *startError; @property (readonly, nonatomic) double progress; @property (nonatomic) BOOL performKeyFetchOnly; @property (nonatomic) BOOL allowCellularUsage; @property (nonatomic) BOOL preferMostCompatibleRendition; @property (retain, nonatomic) NSNumber *maximumPresentationWidth; @property (retain, nonatomic) NSNumber *maximumAverageBitrateForHDR; @property (retain, nonatomic) NSNumber *maximumAverageBitrateForSDRHEVC; @property (retain, nonatomic) NSNumber *maximumAverageBitrateForAVC; @property (nonatomic) BOOL preferEnhancedDownload; @property (retain, nonatomic) NSNumber *maximumPresentationWidthI; @property (retain, nonatomic) NSNumber *maximumAverageBitrateI; @property (retain, nonatomic) NSNumber *maximumPresentationWidthS; @property (retain, nonatomic) NSNumber *maximumAverageBitrateForHDRS; @property (retain, nonatomic) NSNumber *maximumAverageBitrateForSDRS; @property (retain, nonatomic) NSNumber *maximumIWidth; @property (retain, nonatomic) NSNumber *maximumSWidth; @property (retain, nonatomic) NSNumber *maximumMWidth; @property (retain, nonatomic) NSNumber *maximumIBitrate; @property (retain, nonatomic) NSNumber *maximumSBitrate; @property (retain, nonatomic) NSNumber *maximumMBitrate; @property (nonatomic) BOOL allowMultichannelAudio; @property (nonatomic) BOOL limitMultichannelAudioToSingleLanguage; @property (nonatomic) BOOL includeDefaultAudioOption; @property (nonatomic) BOOL includeOriginalAudio; @property (nonatomic) BOOL includeDeviceLanguageAudio; @property (retain, nonatomic) NSArray *preferredAudioLanguageCodes; @property (nonatomic) BOOL includesAllSubtitles; @property (retain, nonatomic) NSArray *preferredSubtitleLanguageCodes; @property (retain, nonatomic) NSData *storageSettingsImageData; @property (retain, nonatomic) NSDictionary *userInfo; @property (nonatomic) struct CGSize { double width; double height; } minimumRequiredPresentationSize; @property (retain, nonatomic) NSNumber *minimumRequiredMediaBitrateForMostCompatibleFormat; @property (retain, nonatomic) NSNumber *minimumRequiredMediaBitrateForHEVC; @property (nonatomic) BOOL allowHDR; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)initialize; - (void)pause; - (void)dealloc; - (void)start; - (void)removeDelegate:(id)a0; - (void)addDelegate:(id)a0; - (void)URLSession:(id)a0 task:(id)a1 didCompleteWithError:(id)a2; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (void)cancel; - (void)failWithError:(id)a0; - (id)descriptionForState:(long long)a0; - (void)URLSession:(id)a0 assetDownloadTask:(id)a1 willDownloadToURL:(id)a2; - (void)URLSession:(id)a0 assetDownloadTask:(id)a1 willDownloadVariants:(id)a2; - (void)_registerStateMachineHandlers; - (void)_addMediaSelectionOptionsIfNotAlreadyAdded:(id)a0 toMediaSelections:(id)a1 forMediaSelectionGroup:(id)a2 baseMediaSelection:(id)a3; - (BOOL)_anyDelegateRespondsToProcessFinishedDownload; - (void)_downloadProgressDidChange; - (void)_mediaItemLoaderStateDidChangeTo:(id)a0; - (void)_processFinishedDownloadWithCompletion:(id /* block */)a0; - (id)_variantQualifiersForCurrentSettingsAndAudioOption:(id)a0 useMultichannelAudio:(BOOL)a1; - (id)initWithMediaItem:(id)a0 downloadSession:(id)a1 existingDownloadTask:(id)a2; @end