1 package expo.interfaces.devmenu
2 
3 import expo.interfaces.devmenu.items.DevMenuDataSourceInterface
4 import expo.interfaces.devmenu.items.DevMenuItemsContainerInterface
5 import expo.interfaces.devmenu.items.DevMenuScreen
6 
7 interface DevMenuExtensionSettingsInterface {
wasRunOnDevelopmentBridgenull8   fun wasRunOnDevelopmentBridge(): Boolean
9   val manager: DevMenuManagerInterface
10 }
11 
12 interface DevMenuExtensionInterface {
13   /**
14    * Returns a name of the module and the extension. Also required by [com.facebook.react.bridge.ReactContextBaseJavaModule].
15    */
16   fun getName(): String
17 
18   /**
19    * Returns a `DevMenuItemsContainer` that contains the dev menu items to show on the main screen.
20    * It's called only once for the extension instance — results are being cached on first dev menu launch.
21    */
22   fun devMenuItems(settings: DevMenuExtensionSettingsInterface): DevMenuItemsContainerInterface?
23 
24   fun devMenuScreens(settings: DevMenuExtensionSettingsInterface): List<DevMenuScreen>? = null
25 
26   fun devMenuDataSources(settings: DevMenuExtensionSettingsInterface): List<DevMenuDataSourceInterface>? = null
27 }
28