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/EXUpdatesService.h>
7 
8 @class EXUpdatesConfig;
9 @class EXUpdatesUpdate;
10 @class EXUpdatesSelectionPolicy;
11 @class EXUpdatesDatabase;
12 
13 NS_ASSUME_NONNULL_BEGIN
14 
15 @protocol EXUpdatesBindingDelegate
16 
17 - (nullable EXUpdatesConfig *)configForScopeKey:(NSString *)scopeKey;
18 - (nullable EXUpdatesSelectionPolicy *)selectionPolicyForScopeKey:(NSString *)scopeKey;
19 - (nullable EXUpdatesUpdate *)launchedUpdateForScopeKey:(NSString *)scopeKey;
20 - (nullable NSDictionary *)assetFilesMapForScopeKey:(NSString *)scopeKey;
21 - (BOOL)isUsingEmbeddedAssetsForScopeKey:(NSString *)scopeKey;
22 - (BOOL)isStartedForScopeKey:(NSString *)scopeKey;
23 - (BOOL)isEmergencyLaunchForScopeKey:(NSString *)scopeKey;
24 - (void)requestRelaunchForScopeKey:(NSString *)scopeKey withCompletion:(EXUpdatesAppRelaunchCompletionBlock)completion;
25 
26 @end
27 
28 @protocol EXUpdatesDatabaseBindingDelegate
29 
30 @property (nonatomic, strong, readonly) NSURL *updatesDirectory;
31 @property (nonatomic, strong, readonly) EXUpdatesDatabase *database;
32 
33 @end
34 
35 @interface EXUpdatesBinding : EXUpdatesService <EXInternalModule>
36 
37 - (instancetype)initWithScopeKey:(NSString *)scopeKey updatesKernelService:(id<EXUpdatesBindingDelegate>)updatesKernelService databaseKernelService:(id<EXUpdatesDatabaseBindingDelegate>)databaseKernelService;
38 
39 @end
40 
41 NS_ASSUME_NONNULL_END
42 
43 #endif
44