@class NSURLSession, ENDownloadManagerState, NSBackgroundActivityScheduler, NSURL, NSArray, NSObject, ENSecureArchiveFileWrapper; @protocol OS_dispatch_queue; @interface ENDownloadManager : NSObject { BOOL _invalidated; BOOL _didUnscheduleOnce; NSObject *_queue; NSArray *_pendingEndpoints; ENSecureArchiveFileWrapper *_stateFileWrapper; } @property (readonly, nonatomic) NSBackgroundActivityScheduler *fetchScheduler; @property (retain, nonatomic) NSURLSession *URLSession; @property (readonly, nonatomic) ENDownloadManagerState *state; @property (readonly, copy, nonatomic) NSURL *directoryURL; @property (readonly, nonatomic) unsigned long long enabledEndpointCount; @property (copy, nonatomic) id /* block */ errorMetricReporter; - (void)_update; - (id)initWithQueue:(id)a0; - (void)_activate; - (void)update; - (void)_invalidate; - (void)invalidate; - (void)activate; - (id)description; - (void).cxx_destruct; - (BOOL)_saveState; - (BOOL)_saveStateWithError:(id *)a0; - (id)_indexFilePathForEndpointState:(id)a0; - (void)_purgeExpiredDownloadsWithDate:(id)a0; - (BOOL)_readStateIfNecessaryWithError:(id *)a0; - (id)createScheduler; - (double)_aggregateDownloadIntervalFromEndpoints:(id)a0; - (void)_backgroundActivityFiredWithCompletion:(id /* block */)a0; - (id)_baseDirectoryPathForEndpointWithState:(id)a0; - (BOOL)_copyDownloadedFileAtPath:(id)a0 toPath:(id)a1 removeExisting:(BOOL)a2 error:(id *)a3; - (id)_countOfAvailableDownloadsWithError:(id *)a0; - (void)_downloadIndexWithTask:(id)a0; - (void)_downloadNextFileFromServerWithTask:(id)a0; - (id)_downloadsDirectoryPathForEndpointState:(id)a0; - (BOOL)_enumerateDownloadsWithError:(id *)a0 handler:(id /* block */)a1; - (void)_handleFileDownloadFinishedForTask:(id)a0 serverFilePath:(id)a1 downloadedFilePath:(id)a2; - (void)_handleIndexFileDownloadFinishedForTask:(id)a0 filePath:(id)a1; - (id)_nextFilePathToDownloadWithEndpointState:(id)a0; - (void)_performDownloadsWithScheduler:(id)a0 atDate:(id)a1 forced:(BOOL)a2 completion:(id /* block */)a3; - (void)_purgeAllDownloads; - (void)_purgeKeepingDownloadsForIdentifiers:(id)a0 expiryDate:(id)a1; - (void)_reportErrorMetric:(unsigned int)a0; - (void)_reportErrorMetricForHTTPStatus:(long long)a0 forIndexFile:(BOOL)a1; - (void)_setDownloadEndpoints:(id)a0; - (BOOL)_shouldFetchFromEndpointWithState:(id)a0 time:(double)a1; - (void)_updateFetchSchedule; - (id)countOfAvailableDownloadsWithError:(id *)a0; - (BOOL)enumerateDownloadsWithError:(id *)a0 handler:(id /* block */)a1; - (id)initWithDirectoryURL:(id)a0 queue:(id)a1; - (void)performDownloadsAtDate:(id)a0 forced:(BOOL)a1 completion:(id /* block */)a2; - (void)performDownloadsForced:(BOOL)a0 completion:(id /* block */)a1; - (void)purgeAllDownloads; - (void)purgeExpiredDownloadsWithDate:(id)a0; - (BOOL)resetStateFile; - (void)setDownloadEndpoints:(id)a0; @end