text: /*
  * This header is generated by classdump-dyld 1.0
  * on Wednesday, March 22, 2017 at 9:03:53 AM Mountain Standard Time
  * Operating System: Version 10.1 (Build 14U593)
  * Image Source: /System/Library/PrivateFrameworks/MIME.framework/MIME
  * classdump-dyld is licensed under GPLv3, Copyright © 2013-2016 by Elias Limneos.
  */
  
  #import <libobjc.A.dylib/MFPromisePrivate.h>
  #import <libobjc.A.dylib/MFFuture.h>
  
  @protocol MFFuture <NSObject>
  @property (getter=isFinished,readonly) BOOL finished; 
  @property (getter=isCancelled,readonly) BOOL cancelled; 
  @required
  -(id)resultBeforeDate:(id)arg1 error:(id*)arg2;
  -(BOOL)cancel;
  -(BOOL)isCancelled;
  -(BOOL)isFinished;
  -(id)onScheduler:(id)arg1 then:(/*^block*/id)arg2;
  -(id)onScheduler:(id)arg1 recover:(/*^block*/id)arg2;
  -(id)result:(id*)arg1;
  -(void)addFailureBlock:(/*^block*/id)arg1;
  -(id)then:(/*^block*/id)arg1;
  -(id)recover:(/*^block*/id)arg1;
  -(id)map:(/*^block*/id)arg1;
  -(id)resultWithTimeout:(double)arg1 error:(id*)arg2;
  -(void)addSuccessBlock:(/*^block*/id)arg1;
  -(void)onScheduler:(id)arg1 addSuccessBlock:(/*^block*/id)arg2;
  -(void)onScheduler:(id)arg1 addFailureBlock:(/*^block*/id)arg2;
  
  @end
  
  
  @class NSConditionLock, NSError, NSMutableArray, NSString;
  
  @interface MFFuture : NSObject <MFPromisePrivate, MFFuture> {
  
  	NSConditionLock* _stateLock;
  	id _result;
  	NSError* _error;
  	NSMutableArray* _completionBlocks;
  
  }
  
  @property (readonly) unsigned long long hash; 
  @property (readonly) Class superclass; 
  @property (copy,readonly) NSString * description; 
  @property (copy,readonly) NSString * debugDescription; 
  @property (readonly) id completionHandlerAdapter; 
  @property (readonly) id boolErrorCompletionHandlerAdapter; 
  @property (readonly) id errorOnlyCompletionHandlerAdapter; 
  @property (getter=isFinished,readonly) BOOL finished; 
  @property (getter=isCancelled,readonly) BOOL cancelled; 
  +(id)onScheduler:(id)arg1 futureWithBlock:(/*^block*/id)arg2 ;
  +(id)chain:(id)arg1 ;
  +(id)_then:(id)arg1 withBlock:(/*^block*/id)arg2 scheduler:(id)arg3 ;
  +(id)_recover:(id)arg1 withBlock:(/*^block*/id)arg2 scheduler:(id)arg3 ;
  +(id)futureWithBlock:(/*^block*/id)arg1 ;
  +(id)futureWithResult:(id)arg1 ;
  +(id)futureWithError:(id)arg1 ;
  +(id)join:(id)arg1 ;
  +(id)nullFuture;
  +(id)lazyFutureWithBlock:(/*^block*/id)arg1 ;
  -(id)resultBeforeDate:(id)arg1 error:(id*)arg2 ;
  -(BOOL)_nts_isFinished;
  -(void)_flushCompletionBlocks;
  -(void)_addCompletionBlock:(/*^block*/id)arg1 ;
  -(BOOL)cancel;
  -(void)dealloc;
  -(id)init;
  -(BOOL)isCancelled;
  -(BOOL)isFinished;
  -(void)_finishWithFuture:(id)arg1 ;
  -(id)onScheduler:(id)arg1 then:(/*^block*/id)arg2 ;
  -(id)onScheduler:(id)arg1 recover:(/*^block*/id)arg2 ;
  -(id)boolErrorCompletionHandlerAdapter;
  -(id)result:(id*)arg1 ;
  -(BOOL)finishWithResult:(id)arg1 ;
  -(id)errorOnlyCompletionHandlerAdapter;
  -(void)addFailureBlock:(/*^block*/id)arg1 ;
  -(id)then:(/*^block*/id)arg1 ;
  -(id)recover:(/*^block*/id)arg1 ;
  -(id)map:(/*^block*/id)arg1 ;
  -(id)completionHandlerAdapter;
  -(id)resultWithTimeout:(double)arg1 error:(id*)arg2 ;
  -(void)addSuccessBlock:(/*^block*/id)arg1 ;
  -(BOOL)finishWithResult:(id)arg1 error:(id)arg2 ;
  -(BOOL)finishWithError:(id)arg1 ;
  -(void)onScheduler:(id)arg1 addSuccessBlock:(/*^block*/id)arg2 ;
  -(void)onScheduler:(id)arg1 addFailureBlock:(/*^block*/id)arg2 ;
  -(void)didCancel;
  @end
  
  