@class NSTimer, NSString, NSURL, NSThread, NSMutableDictionary, NSDictionary, NSObject, NSMutableArray; @protocol MMCSEngineDelegate, OS_dispatch_queue; @interface MMCSEngine : NSObject { NSURL *_workPathURL; NSString *_appIDHeader; NSString *_dataClass; NSDictionary *_options; struct _mmcs_engine { } *_engine; struct { long long version; void *context; void /* function */ *getFileDescriptorAndContentTypeFromItemCallback; void /* function */ *getItemProgressCallback; void /* function */ *getItemDoneCallback; void /* function */ *putItemProgressCallback; void /* function */ *putItemDoneCallback; void /* function */ *requestCompletedCallback; } _engineClientContext; NSMutableDictionary *_itemIDToAssetMap; NSObject<OS_dispatch_queue> *_itemIDToAssetMapQueue; NSMutableArray *_requestorContexts; NSObject<OS_dispatch_queue> *_reqestorContextQueue; NSMutableDictionary *_autoItemIDDictionary; NSURL *_autoItemIDPersistenceURL; NSObject<OS_dispatch_queue> *_autoItemIDDictionaryQueue; } @property (retain, nonatomic) NSTimer *threadKeepAliveTimer; @property (nonatomic) BOOL isDone; @property (weak, nonatomic) id<MMCSEngineDelegate> delegate; @property (readonly, nonatomic) BOOL hasOutstandingActivity; @property (nonatomic) BOOL autoGenerateItemID; @property (nonatomic) BOOL isMetricsGatheringEnabled; @property (retain, nonatomic) NSThread *workThread; + (id)logStringForGetItemState:(int)a0; + (id)logStringForPutItemState:(int)a0; - (void)cancelAllOperations; - (void)shutDownCompletionBlock:(id /* block */)a0; - (void)_removeAssetForItemID:(unsigned long long)a0; - (void)_requestCompletedRequestorContext:(id)a0; - (id)initWithWorkPath:(id)a0 appIDHeader:(id)a1 dataClass:(id)a2 options:(id)a3; - (void)registerAssetForUpload:(id)a0 completionBlock:(id /* block */)a1; - (void)reregisterAssetForUpload:(id)a0; - (void)_getItemDoneItemID:(unsigned long long)a0 path:(id)a1 requestorContext:(id)a2 error:(id)a3; - (void)_registerRequestorContext:(id)a0; - (void)performBlockOnWorkThread:(id /* block */)a0; - (id)initWithWorkPath:(id)a0 appIDHeader:(id)a1 dataClass:(id)a2 options:(id)a3 modes:(id)a4; - (id)_assetWithItemID:(unsigned long long)a0; - (void)unregisterAsset:(id)a0; - (void)cancelOperationsWithContext:(id)a0; - (void)_doNothingTimerHandler:(id)a0; - (void)reregisterAssetForDownload:(id)a0; - (void)threadMain:(id)a0; - (void)performBlockOnWorkThread:(id /* block */)a0 waitUntilDone:(BOOL)a1; - (void)_registerAsset:(id)a0; - (void)registerAssets:(id)a0 forDownloadCompletionBlock:(id /* block */)a1; - (unsigned long long)_nextItemID; - (void).cxx_destruct; - (void)_putItemDoneItemID:(unsigned long long)a0 requestorContext:(id)a1 putReceipt:(id)a2 error:(id)a3; - (void)_getItemProgressItemID:(unsigned long long)a0 state:(int)a1 progress:(double)a2 requestorContext:(id)a3 error:(id)a4; - (void)_removeRequestorContext:(id)a0; - (void)putAssets:(id)a0 requestURL:(id)a1 DSID:(id)a2 options:(id)a3; - (BOOL)_getFileDescriptorAndContentTypeFromItemID:(unsigned long long)a0 outFD:(int *)a1 outItemType:(id *)a2 outError:(id *)a3; - (BOOL)isActive; - (void)_putItemProgressItemID:(unsigned long long)a0 state:(int)a1 progress:(double)a2 requestorContext:(id)a3 error:(id)a4; - (void)unregisterAssets:(id)a0; - (void)performBlock:(id /* block */)a0; - (void)_initItemIDPersistence; - (void)getAssets:(id)a0 requestURL:(id)a1 DSID:(id)a2 options:(id)a3; @end