1 // Copyright 2020-present 650 Industries. All rights reserved.
2 
3 #import <ExpoModulesCore/EXInternalModule.h>
4 
5 @class EXUpdatesConfig;
6 @class EXUpdatesUpdate;
7 @class EXUpdatesSelectionPolicy;
8 @class EXUpdatesDatabase;
9 
10 NS_ASSUME_NONNULL_BEGIN
11 
12 typedef void (^EXUpdatesAppRelaunchCompletionBlock)(BOOL success);
13 
14 @protocol EXUpdatesModuleInterface
15 
16 @property (nonatomic, readonly, nullable) EXUpdatesConfig *config;
17 @property (nonatomic, readonly) EXUpdatesDatabase *database;
18 @property (nonatomic, readonly, nullable) EXUpdatesSelectionPolicy *selectionPolicy;
19 @property (nonatomic, readonly) NSURL *directory;
20 
21 @property (nullable, nonatomic, readonly, strong) EXUpdatesUpdate *embeddedUpdate;
22 @property (nullable, nonatomic, readonly, strong) EXUpdatesUpdate *launchedUpdate;
23 @property (nullable, nonatomic, readonly, strong) NSDictionary *assetFilesMap;
24 @property (nonatomic, readonly, assign) BOOL isEmbeddedLaunch;
25 @property (nonatomic, readonly, assign) BOOL isUsingEmbeddedAssets;
26 @property (nonatomic, readonly, assign) BOOL isStarted;
27 @property (nonatomic, readonly, assign) BOOL isEmergencyLaunch;
28 @property (nonatomic, readonly, assign) BOOL canRelaunch;
29 @property (nonatomic, readonly, assign) BOOL canCheckForUpdateAndFetchUpdate;
30 
31 - (void)requestRelaunchWithCompletion:(EXUpdatesAppRelaunchCompletionBlock)completion;
32 - (void)resetSelectionPolicy;
33 
34 @end
35 
36 @interface EXUpdatesService : NSObject <EXInternalModule, EXUpdatesModuleInterface>
37 
38 @end
39 
40 NS_ASSUME_NONNULL_END
41