// Copyright © 2019 650 Industries. All rights reserved. #import #import NS_ASSUME_NONNULL_BEGIN typedef void (^EXUpdatesFileDownloaderSuccessBlock)(NSData *data, NSURLResponse *response); typedef void (^EXUpdatesFileDownloaderManifestSuccessBlock)(EXUpdatesUpdate *update); typedef void (^EXUpdatesFileDownloaderErrorBlock)(NSError *error, NSURLResponse *response); @interface EXUpdatesFileDownloader : NSObject - (instancetype)initWithUpdatesConfig:(EXUpdatesConfig *)updatesConfig; - (instancetype)initWithUpdatesConfig:(EXUpdatesConfig *)updatesConfig URLSessionConfiguration:(NSURLSessionConfiguration *)sessionConfiguration; - (void)downloadDataFromURL:(NSURL *)url successBlock:(EXUpdatesFileDownloaderSuccessBlock)successBlock errorBlock:(EXUpdatesFileDownloaderErrorBlock)errorBlock; - (void)downloadFileFromURL:(NSURL *)url toPath:(NSString *)destinationPath successBlock:(EXUpdatesFileDownloaderSuccessBlock)successBlock errorBlock:(EXUpdatesFileDownloaderErrorBlock)errorBlock; - (void)downloadManifestFromURL:(NSURL *)url withDatabase:(EXUpdatesDatabase *)database cacheDirectory:(NSURL *)cacheDirectory successBlock:(EXUpdatesFileDownloaderManifestSuccessBlock)successBlock errorBlock:(EXUpdatesFileDownloaderErrorBlock)errorBlock; + (dispatch_queue_t)assetFilesQueue; @end NS_ASSUME_NONNULL_END