1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <ExpoModulesCore/EXDefines.h>
5 
6 @interface EXSessionTaskDelegate : NSObject
7 
8 @property (nonatomic, strong, readonly) EXPromiseResolveBlock resolve;
9 @property (nonatomic, strong, readonly) EXPromiseRejectBlock reject;
10 
11 - (nonnull instancetype)initWithResolve:(EXPromiseResolveBlock)resolve
12                                  reject:(EXPromiseRejectBlock)reject;
13 
14 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location;
15 
16 - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error;
17 
18 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
19                                            didWriteData:(int64_t)bytesWritten
20                                       totalBytesWritten:(int64_t)totalBytesWritten
21                               totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite;
22 
23 - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data;
24 
25 - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
26                                 didSendBodyData:(int64_t)bytesSent
27                                  totalBytesSent:(int64_t)totalBytesSent
28                        totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend;
29 
30 - (NSDictionary *)parseServerResponse:(NSURLResponse *)response;
31 
32 @end
33