1 #import <React/RCTBridgeModule.h>
2 #import <React/RCTBridgeDelegate.h>
3 
4 #import <UIKit/UIKit.h>
5 
6 // When `use_frameworks!` is used, the generated Swift header is inside modules.
7 // Otherwise, it's available only locally with double-quoted imports.
8 #if __has_include(<EXUpdatesInterface/EXUpdatesInterface-Swift.h>)
9 #import <EXUpdatesInterface/EXUpdatesInterface-Swift.h>
10 #else
11 #import "EXUpdatesInterface-Swift.h"
12 #endif
13 #if __has_include(<EXManifests/EXManifests-Swift.h>)
14 #import <EXManifests/EXManifests-Swift.h>
15 #else
16 #import "EXManifests-Swift.h"
17 #endif
18 
19 NS_ASSUME_NONNULL_BEGIN
20 
21 @class EXDevLauncherInstallationIDHelper;
22 @class EXDevLauncherPendingDeepLinkRegistry;
23 @class EXDevLauncherRecentlyOpenedAppsRegistry;
24 @class EXDevLauncherController;
25 @class EXDevLauncherErrorManager;
26 
27 @protocol EXDevLauncherControllerDelegate <NSObject>
28 
29 - (void)devLauncherController:(EXDevLauncherController *)developmentClientController
30                 didStartWithSuccess:(BOOL)success;
31 
32 @end
33 
34 @interface EXDevLauncherController : NSObject <RCTBridgeDelegate>
35 
36 @property (nonatomic, weak) RCTBridge * _Nullable appBridge;
37 @property (nonatomic, strong) RCTBridge *launcherBridge;
38 @property (nonatomic, strong) EXDevLauncherPendingDeepLinkRegistry *pendingDeepLinkRegistry;
39 @property (nonatomic, strong) EXDevLauncherRecentlyOpenedAppsRegistry *recentlyOpenedAppsRegistry;
40 @property (nonatomic, strong) id updatesInterface;
41 @property (nonatomic, readonly, assign) BOOL isStarted;
42 
43 + (instancetype)sharedInstance;
44 
45 - (void)startWithWindow:(UIWindow *)window delegate:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions;
46 
47 - (void)autoSetupPrepare:(id<EXDevLauncherControllerDelegate>)delegate launchOptions:(NSDictionary * _Nullable)launchOptions;
48 
49 - (void)autoSetupStart:(UIWindow *)window;
50 
51 - (nullable NSURL *)sourceUrl;
52 
53 - (void)navigateToLauncher;
54 
55 - (BOOL)onDeepLink:(NSURL *)url options:(NSDictionary *)options;
56 
57 - (void)loadApp:(NSURL *)url onSuccess:(void (^ _Nullable)(void))onSuccess onError:(void (^ _Nullable)(NSError *error))onError;
58 
59 - (void)loadApp:(NSURL *)expoUrl withProjectUrl:(NSURL  * _Nullable)projectUrl onSuccess:(void (^ _Nullable)(void))onSuccess onError:(void (^ _Nullable)(NSError *error))onError;
60 
61 - (NSDictionary *)recentlyOpenedApps;
62 
63 - (void)clearRecentlyOpenedApps;
64 
65 - (NSDictionary *)getLaunchOptions;
66 
67 - (EXManifestsManifest * _Nullable)appManifest;
68 
69 - (NSURL * _Nullable)appManifestURL;
70 
71 - (nullable NSURL *)appManifestURLWithFallback;
72 
73 - (BOOL)isAppRunning;
74 
75 - (BOOL)isStarted;
76 
77 - (UIWindow * _Nullable)currentWindow;
78 
79 - (EXDevLauncherErrorManager *)errorManager;
80 
81 - (EXDevLauncherInstallationIDHelper *)installationIDHelper;
82 
83 + (NSString * _Nullable)version;
84 
85 - (NSDictionary *)getBuildInfo;
86 
87 - (void)copyToClipboard:(NSString *)content;
88 
89 - (NSDictionary *)getUpdatesConfig;
90 
91 @end
92 
93 NS_ASSUME_NONNULL_END
94