1 // Copyright © 2018 650 Industries. All rights reserved. 2 3 #import <Foundation/Foundation.h> 4 5 #import <ABI48_0_0ExpoModulesCore/ABI48_0_0EXInternalModule.h> 6 #import <ABI48_0_0ExpoModulesCore/ABI48_0_0EXExportedModule.h> 7 #import <ABI48_0_0ExpoModulesCore/ABI48_0_0EXViewManager.h> 8 #import <ABI48_0_0ExpoModulesCore/ABI48_0_0EXModuleRegistryDelegate.h> 9 10 NS_ASSUME_NONNULL_BEGIN 11 12 @interface ABI48_0_0EXModuleRegistry : NSObject 13 14 - (instancetype)initWithInternalModules:(NSSet<id<ABI48_0_0EXInternalModule>> *)internalModules 15 exportedModules:(NSSet<ABI48_0_0EXExportedModule *> *)exportedModules 16 viewManagers:(NSSet<ABI48_0_0EXViewManager *> *)viewManagers 17 singletonModules:(NSSet *)singletonModules; 18 19 - (void)registerInternalModule:(id<ABI48_0_0EXInternalModule>)internalModule; 20 - (void)registerExportedModule:(ABI48_0_0EXExportedModule *)exportedModule; 21 - (void)registerViewManager:(ABI48_0_0EXViewManager *)viewManager; 22 23 - (void)setDelegate:(id<ABI48_0_0EXModuleRegistryDelegate>)delegate; 24 25 // Call this method once all the modules are set up and registered in the registry. 26 - (void)initialize; 27 28 - (ABI48_0_0EXExportedModule *)getExportedModuleForName:(NSString *)name; 29 - (ABI48_0_0EXExportedModule *)getExportedModuleOfClass:(Class)moduleClass; 30 - (id)getModuleImplementingProtocol:(Protocol *)protocol; 31 - (id)getSingletonModuleForName:(NSString *)singletonModuleName; 32 33 - (NSArray<id<ABI48_0_0EXInternalModule>> *)getAllInternalModules; 34 - (NSArray<ABI48_0_0EXExportedModule *> *)getAllExportedModules; 35 - (NSArray<ABI48_0_0EXViewManager *> *)getAllViewManagers; 36 - (NSArray *)getAllSingletonModules; 37 38 @end 39 40 NS_ASSUME_NONNULL_END 41