1 // Copyright 2020-present 650 Industries. All rights reserved.
2 
3 #if __has_include(<EXUpdates/EXUpdatesService.h>)
4 #import <Foundation/Foundation.h>
5 #import <ExpoModulesCore/EXInternalModule.h>
6 #import <EXUpdates/EXUpdatesConfig.h>
7 #import <EXUpdates/EXUpdatesDatabase.h>
8 #import <EXUpdates/EXUpdatesSelectionPolicy.h>
9 #import <EXUpdates/EXUpdatesService.h>
10 #import <EXUpdates/EXUpdatesUpdate.h>
11 
12 NS_ASSUME_NONNULL_BEGIN
13 
14 @protocol EXUpdatesBindingDelegate
15 
16 - (EXUpdatesConfig *)configForScopeKey:(NSString *)scopeKey;
17 - (EXUpdatesSelectionPolicy *)selectionPolicyForScopeKey:(NSString *)scopeKey;
18 - (nullable EXUpdatesUpdate *)launchedUpdateForScopeKey:(NSString *)scopeKey;
19 - (nullable NSDictionary *)assetFilesMapForScopeKey:(NSString *)scopeKey;
20 - (BOOL)isUsingEmbeddedAssetsForScopeKey:(NSString *)scopeKey;
21 - (BOOL)isStartedForScopeKey:(NSString *)scopeKey;
22 - (BOOL)isEmergencyLaunchForScopeKey:(NSString *)scopeKey;
23 - (void)requestRelaunchForScopeKey:(NSString *)scopeKey withCompletion:(EXUpdatesAppRelaunchCompletionBlock)completion;
24 
25 @end
26 
27 @protocol EXUpdatesDatabaseBindingDelegate
28 
29 @property (nonatomic, strong, readonly) NSURL *updatesDirectory;
30 @property (nonatomic, strong, readonly) EXUpdatesDatabase *database;
31 
32 @end
33 
34 @interface EXUpdatesBinding : EXUpdatesService <EXInternalModule>
35 
36 - (instancetype)initWithScopeKey:(NSString *)scopeKey updatesKernelService:(id<EXUpdatesBindingDelegate>)updatesKernelService databaseKernelService:(id<EXUpdatesDatabaseBindingDelegate>)databaseKernelService;
37 
38 @end
39 
40 NS_ASSUME_NONNULL_END
41 
42 #endif
43