1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <React/RCTLog.h>
5 #import <React/RCTBridge.h>
6 
7 #import "EXVersionUtils.h"
8 
9 @class EXManifestsManifest;
10 
11 @interface EXVersionManagerObjC : NSObject
12 
13 - (nonnull instancetype)initWithParams:(nonnull NSDictionary *)params
14                               manifest:(nonnull EXManifestsManifest *)manifest
15                           fatalHandler:(void (^ _Nonnull)(NSError * _Nullable))fatalHandler
16                            logFunction:(nonnull RCTLogFunction)logFunction
17                           logThreshold:(RCTLogLevel)logThreshold;
18 
19 - (void)bridgeWillStartLoading:(id)bridge;
20 - (void)bridgeFinishedLoading:(id)bridge;
21 - (void)invalidate;
22 
23 /**
24  *  Dev tools (implementation varies by SDK)
25  */
26 - (void)showDevMenuForBridge:(id)bridge;
27 - (void)disableRemoteDebuggingForBridge:(id)bridge;
28 - (void)toggleRemoteDebuggingForBridge:(id)bridge;
29 - (void)togglePerformanceMonitorForBridge:(id)bridge;
30 - (void)toggleElementInspectorForBridge:(id)bridge;
31 - (uint32_t)addWebSocketNotificationHandler:(void (^)(NSDictionary<NSString *, id> *))handler
32                          queue:(dispatch_queue_t)queue
33                      forMethod:(NSString *)method;
34 
35 - (NSDictionary<NSString *, NSString *> *)devMenuItemsForBridge:(id)bridge;
36 - (void)selectDevMenuItemWithKey:(NSString *)key onBridge:(id)bridge;
37 
38 /**
39  *  Provides the extra native modules required to set up a bridge with this version.
40  */
41 - (NSArray *)extraModulesForBridge:(id)bridge;
42 
43 - (void *)versionedJsExecutorFactoryForBridge:(id)bridge;
44 
45 @end
46