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