luxlabs header browser preview


@class NSString, NSConditionLock, NSError, NSMutableArray;
@protocol EFFutureDelegate, EFObserver;

@interface EFFuture : NSObject <EFPromisePrivate, EFFuture> {
    NSConditionLock *_stateLock;
    id _result;
    NSError *_error;
    NSMutableArray *_completionBlocks;
}

@property (readonly, nonatomic) id result;
@property (readonly, nonatomic) id resultIfAvailable;
@property (readonly) id /* block */ completionHandlerAdapter;
@property (readonly) id /* block */ boolErrorCompletionHandlerAdapter;
@property (readonly) id /* block */ errorOnlyCompletionHandlerAdapter;
@property (readonly) id<EFObserver> firstResultObserverAdapter;
@property (readonly) id<EFObserver> resultsObserverAdapter;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (weak) id<EFFutureDelegate> delegate;
@property (readonly, getter=isFinished) BOOL finished;
@property (readonly, getter=isCancelled) BOOL cancelled;

+ (id)futureWithError:(id)a0;
+ (id)combine:(id)a0;
+ (id)futureWithResult:(id)a0;
+ (id)lazyFutureWithBlock:(id /* block */)a0;
+ (id)chain:(id)a0;
+ (id)futureWithBlock:(id /* block */)a0;
+ (id)join:(id)a0;
+ (id)sequence:(id)a0;
+ (id)nullFuture;
+ (id)onScheduler:(id)a0 futureWithBlock:(id /* block */)a1;
+ (id)onScheduler:(id)a0 lazyFutureWithBlock:(id /* block */)a1;
+ (void)_always:(id)a0 withBlock:(id /* block */)a1 scheduler:(id)a2;
+ (id)_join:(id)a0 ignoreFailures:(BOOL)a1;
+ (id)_recover:(id)a0 withBlock:(id /* block */)a1 scheduler:(id)a2;
+ (id)_then:(id)a0 withBlock:(id /* block */)a1 scheduler:(id)a2;

- (void)always:(id /* block */)a0;
- (id)map:(id /* block */)a0;
- (BOOL)_nts_isFinished;
- (id)resultIfAvailable:(id *)a0;
- (id)onScheduler:(id)a0 map:(id /* block */)a1;
- (void)finishWithFuture:(id)a0;
- (void)onScheduler:(id)a0 addFailureBlock:(id /* block */)a1;
- (void)onScheduler:(id)a0 always:(id /* block */)a1;
- (id)resultWithTimeout:(double)a0 error:(id *)a1;
- (BOOL)finishWithResult:(id)a0;
- (void)_finishWithFuture:(id)a0;
- (id)result:(id *)a0;
- (id)init;
- (void)addFailureBlock:(id /* block */)a0;
- (id)recover:(id /* block */)a0;
- (id)onScheduler:(id)a0 recover:(id /* block */)a1;
- (void)_addCompletionBlock:(id /* block */)a0;
- (BOOL)tryCancel;
- (id)onScheduler:(id)a0 then:(id /* block */)a1;
- (id)resultBeforeDate:(id)a0 error:(id *)a1;
- (void)_flushCompletionBlocks;
- (BOOL)finishWithResult:(id)a0 error:(id)a1;
- (id)then:(id /* block */)a0;
- (void)onScheduler:(id)a0 addSuccessBlock:(id /* block */)a1;
- (void)addSuccessBlock:(id /* block */)a0;
- (void)didCancel;
- (void).cxx_destruct;
- (void)cancel;
- (BOOL)finishWithError:(id)a0;

@end