1 // Copyright 2020-present 650 Industries. All rights reserved.
2 
3 #if __has_include(<EXUpdates/EXUpdatesService.h>)
4 #import <Foundation/Foundation.h>
5 #import <UMCore/UMInternalModule.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 *)configForExperienceId:(NSString *)experienceId;
17 - (id<EXUpdatesSelectionPolicy>)selectionPolicyForExperienceId:(NSString *)experienceId;
18 - (nullable EXUpdatesUpdate *)launchedUpdateForExperienceId:(NSString *)experienceId;
19 - (nullable NSDictionary *)assetFilesMapForExperienceId:(NSString *)experienceId;
20 - (BOOL)isUsingEmbeddedAssetsForExperienceId:(NSString *)experienceId;
21 - (BOOL)isStartedForExperienceId:(NSString *)experienceId;
22 - (BOOL)isEmergencyLaunchForExperienceId:(NSString *)experienceId;
23 - (void)requestRelaunchForExperienceId:(NSString *)experienceId 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 <UMInternalModule>
35 
36 - (instancetype)initWithExperienceId:(NSString *)experienceId updatesKernelService:(id<EXUpdatesBindingDelegate>)updatesKernelService databaseKernelService:(id<EXUpdatesDatabaseBindingDelegate>)databaseKernelService;
37 
38 @end
39 
40 NS_ASSUME_NONNULL_END
41 
42 #endif
43