import { TypeList } from "docs-ui"
# modules-sdk
## Enumerations
- [MODULE\_SCOPE](../../modules_sdk/enums/modules_sdk.MODULE_SCOPE/page.mdx)
- [MODULE\_RESOURCE\_TYPE](../../modules_sdk/enums/modules_sdk.MODULE_RESOURCE_TYPE/page.mdx)
## Classes
- [RemoteLink](../../modules_sdk/classes/modules_sdk.RemoteLink/page.mdx)
- [RemoteQuery](../../modules_sdk/classes/modules_sdk.RemoteQuery/page.mdx)
## Interfaces
- [ModuleImplementations](../../modules_sdk/interfaces/modules_sdk.ModuleImplementations/page.mdx)
- [ModuleServiceInitializeOptions](../../modules_sdk/interfaces/modules_sdk.ModuleServiceInitializeOptions/page.mdx)
- [IModuleService](../../modules_sdk/interfaces/modules_sdk.IModuleService/page.mdx)
- [IMedusaInternalService](../../modules_sdk/interfaces/modules_sdk.IMedusaInternalService/page.mdx)
## Type Aliases
- [RunMigrationFn](../../modules_sdk/types/modules_sdk.RunMigrationFn/page.mdx)
- [RevertMigrationFn](../../modules_sdk/types/modules_sdk.RevertMigrationFn/page.mdx)
- [GenerateMigrations](../../modules_sdk/types/modules_sdk.GenerateMigrations/page.mdx)
- [GetLinkExecutionPlanner](../../modules_sdk/types/modules_sdk.GetLinkExecutionPlanner/page.mdx)
- [MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)
- [SharedResources](../../modules_sdk/types/modules_sdk.SharedResources/page.mdx)
- [MedusaAppOutput](../../modules_sdk/types/modules_sdk.MedusaAppOutput/page.mdx)
- [MedusaAppOptions](../../modules_sdk/types/modules_sdk.MedusaAppOptions/page.mdx)
- [MigrationOptions](../../modules_sdk/types/modules_sdk.MigrationOptions/page.mdx)
- [ModuleBootstrapOptions](../../modules_sdk/types/modules_sdk.ModuleBootstrapOptions/page.mdx)
- [LinkModuleBootstrapOptions](../../modules_sdk/types/modules_sdk.LinkModuleBootstrapOptions/page.mdx)
- [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)
- [DeleteEntityInput](../../modules_sdk/types/modules_sdk.DeleteEntityInput/page.mdx)
- [RestoreEntityInput](../../modules_sdk/types/modules_sdk.RestoreEntityInput/page.mdx)
- [LinkDefinition](../../modules_sdk/types/modules_sdk.LinkDefinition/page.mdx)
- [MedusaContainer](../../modules_sdk/types/modules_sdk.MedusaContainer/page.mdx)
- [ContainerLike](../../modules_sdk/types/modules_sdk.ContainerLike/page.mdx)
- [Constructor](../../modules_sdk/types/modules_sdk.Constructor/page.mdx)
- [LogLevel](../../modules_sdk/types/modules_sdk.LogLevel/page.mdx)
- [LoggerOptions](../../modules_sdk/types/modules_sdk.LoggerOptions/page.mdx)
- [CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)
- [InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx)
- [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)
- [ModuleResolution](../../modules_sdk/types/modules_sdk.ModuleResolution/page.mdx)
- [ModuleDefinition](../../modules_sdk/types/modules_sdk.ModuleDefinition/page.mdx)
- [LinkModuleDefinition](../../modules_sdk/types/modules_sdk.LinkModuleDefinition/page.mdx)
- [ModuleConfig](../../modules_sdk/types/modules_sdk.ModuleConfig/page.mdx)
- [LoadedModule](../../modules_sdk/types/modules_sdk.LoadedModule/page.mdx)
- [LoaderOptions](../../modules_sdk/types/modules_sdk.LoaderOptions/page.mdx)
- [ModuleLoaderFunction](../../modules_sdk/types/modules_sdk.ModuleLoaderFunction/page.mdx)
- [ModulesResponse](../../modules_sdk/types/modules_sdk.ModulesResponse/page.mdx)
- [LinkModulesExtraFields](../../modules_sdk/types/modules_sdk.LinkModulesExtraFields/page.mdx)
- [ModuleJoinerConfig](../../modules_sdk/types/modules_sdk.ModuleJoinerConfig/page.mdx)
- [ModuleJoinerRelationship](../../modules_sdk/types/modules_sdk.ModuleJoinerRelationship/page.mdx)
- [ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)
- [ModuleServiceInitializeCustomDataLayerOptions](../../modules_sdk/types/modules_sdk.ModuleServiceInitializeCustomDataLayerOptions/page.mdx)
- [ModuleBootstrapDeclaration](../../modules_sdk/types/modules_sdk.ModuleBootstrapDeclaration/page.mdx)
- [RemoteQueryFunction](../../modules_sdk/types/modules_sdk.RemoteQueryFunction/page.mdx)
- [ModuleProviderExports](../../modules_sdk/types/modules_sdk.ModuleProviderExports/page.mdx)
- [ModuleProvider](../../modules_sdk/types/modules_sdk.ModuleProvider/page.mdx)
___
## Variables
### MODULE\_PACKAGE\_NAMES
`Const` **MODULE\_PACKAGE\_NAMES**: `Object`
#### Properties
### ModulesDefinition
`Const` **ModulesDefinition**: `object`
### MODULE\_DEFINITIONS
`Const` **MODULE\_DEFINITIONS**: [ModuleDefinition](../../modules_sdk/types/modules_sdk.ModuleDefinition/page.mdx)[]
### MedusaModule
`Const` **MedusaModule**: typeof `MedusaModule`
___
## Functions
### moduleLoader
#### Parameters
`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"resolutionPath","type":"`string` \\| `false`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[ModuleDefinition](../../modules_sdk/types/modules_sdk.ModuleDefinition/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"moduleDeclaration","type":"[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx) \\| [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"moduleExports","type":"[ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"logger","type":"[Logger](../../types/LoggerTypes/interfaces/types.LoggerTypes.Logger/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"panic","type":"(`data`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"shouldLog","type":"(`level`: `string`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"setLogLevel","type":"(`level`: `string`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"unsetLogLevel","type":"() => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"activity","type":"(`message`: `string`, `config?`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"progress","type":"(`activityId`: `any`, `message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"error","type":"(`messageOrError`: `any`, `error?`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"failure","type":"(`activityId`: `any`, `message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"success","type":"(`activityId`: `any`, `message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"debug","type":"(`message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"info","type":"(`message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"warn","type":"(`message`: `any`) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"log","type":"(...`args`: `any`[]) => `void`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]},{"name":"migrationOnly","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="moduleLoader"/>
#### Returns
### moduleProviderLoader
#### Parameters
`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"registerServiceFn","type":"(`klass`: `any`, `container`: [MedusaContainer](../../modules_sdk/types/modules_sdk.MedusaContainer/page.mdx), `moduleDetails`: `any`) => Promise<void>","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="moduleProviderLoader"/>
#### Returns
### loadModuleProvider
#### Parameters
`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"registerServiceFn","type":"(`klass`: `any`, `container`: `any`, `moduleDetails`: `any`) => Promise<void>","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]} sectionTitle="loadModuleProvider"/>
#### Returns
### registerMedusaModule
#### Parameters
`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"worker_mode","type":"`\"shared\"` \\| `\"worker\"` \\| `\"server\"`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"server","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"isRequired","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isQueryable","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="registerMedusaModule"/>
#### Returns
`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[{"name":"string","type":"`string`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]},{"name":"ModuleResolution","type":"[ModuleResolution](../../modules_sdk/types/modules_sdk.ModuleResolution/page.mdx)","optional":false,"defaultValue":"","description":"","expandable":false,"children":[{"name":"resolutionPath","type":"`string` \\| `false`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[ModuleDefinition](../../modules_sdk/types/modules_sdk.ModuleDefinition/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"key","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"registrationName","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"defaultPackage","type":"`string` \\| `false`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"label","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"defaultModuleDeclaration","type":"[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx) \\| [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"isRequired","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isQueryable","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"moduleDeclaration","type":"[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx) \\| [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"scope","type":"`\"internal\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"resources","type":"`\"shared\"` \\| `\"isolated\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"scope","type":"`\"external\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"resolve","type":"`string` \\| [ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"worker_mode","type":"`\"shared\"` \\| `\"worker\"` \\| `\"server\"`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"server","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"moduleExports","type":"[ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"service","type":"T","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"loaders","type":"[ModuleLoaderFunction](../../modules_sdk/types/modules_sdk.ModuleLoaderFunction/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]}]}]} sectionTitle="registerMedusaModule"/>
### registerMedusaLinkModule
#### Parameters
`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"worker_mode","type":"`\"shared\"` \\| `\"worker\"` \\| `\"server\"`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"server","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"isRequired","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isQueryable","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"moduleDeclaration","type":"Partial<[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx)>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"scope","type":"`\"internal\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"resources","type":"`\"shared\"` \\| `\"isolated\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"key","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"registrationName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"label","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isQueryable","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"resolve","type":"`string` \\| [ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"service","type":"T","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"loaders","type":"[ModuleLoaderFunction](../../modules_sdk/types/modules_sdk.ModuleLoaderFunction/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"worker_mode","type":"`\"shared\"` \\| `\"worker\"` \\| `\"server\"`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"moduleExports","type":"[ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"service","type":"T","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"loaders","type":"[ModuleLoaderFunction](../../modules_sdk/types/modules_sdk.ModuleLoaderFunction/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="registerMedusaLinkModule"/>
#### Returns
`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[{"name":"string","type":"`string`","optional":false,"defaultValue":"","description":"","expandable":false,"children":[]},{"name":"ModuleResolution","type":"[ModuleResolution](../../modules_sdk/types/modules_sdk.ModuleResolution/page.mdx)","optional":false,"defaultValue":"","description":"","expandable":false,"children":[{"name":"resolutionPath","type":"`string` \\| `false`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[ModuleDefinition](../../modules_sdk/types/modules_sdk.ModuleDefinition/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[{"name":"key","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"registrationName","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"defaultPackage","type":"`string` \\| `false`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"label","type":"`string`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"defaultModuleDeclaration","type":"[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx) \\| [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"isRequired","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isQueryable","type":"`boolean`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"moduleDeclaration","type":"[InternalModuleDeclaration](../../modules_sdk/types/modules_sdk.InternalModuleDeclaration/page.mdx) \\| [ExternalModuleDeclaration](../../modules_sdk/types/modules_sdk.ExternalModuleDeclaration/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"scope","type":"`\"internal\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"resources","type":"`\"shared\"` \\| `\"isolated\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"scope","type":"`\"external\"`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"dependencies","type":"`string`[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"resolve","type":"`string` \\| [ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"worker_mode","type":"`\"shared\"` \\| `\"worker\"` \\| `\"server\"`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"definition","type":"[CustomModuleDefinition](../../modules_sdk/types/modules_sdk.CustomModuleDefinition/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"server","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"options","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"alias","type":"`string`","description":"If multiple modules are registered with the same key, the alias can be used to differentiate them","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"main","type":"`boolean`","description":"If the module is the main module for the key when multiple ones are registered","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"moduleExports","type":"[ModuleExports](../../modules_sdk/types/modules_sdk.ModuleExports/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[{"name":"service","type":"T","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"loaders","type":"[ModuleLoaderFunction](../../modules_sdk/types/modules_sdk.ModuleLoaderFunction/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]}]}]} sectionTitle="registerMedusaLinkModule"/>
### loadModules
#### Parameters
#### Returns
### MedusaApp
#### Parameters
`","description":"Keys that can be used to link to other modules. e.g { product\\_id: \"Product\" } \"Product\" being the entity it refers to","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isReadOnlyLink","type":"`boolean`","description":"If true it expands a RemoteQuery property but doesn't create a pivot table","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"extraDataFields","type":"`string`[]","description":"Fields that will be part of the link record aside from the primary keys that can be updated\nIf not explicitly defined, this array will be populated by databaseConfig.extraFields","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"databaseConfig","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"modulesConfigPath","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfigFileName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfig","type":"[MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"linkModules","type":"[RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx) \\| [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"remoteFetchData","type":"`RemoteFetchDataCallback`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"injectedDependencies","type":"`any`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStartCb","type":"() => `void`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"Forces the modules bootstrapper to only run the modules loaders and return prematurely","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="MedusaApp"/>
#### Returns
`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"link","type":"[RemoteLink](../../modules_sdk/classes/modules_sdk.RemoteLink/page.mdx) \\| `undefined`","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"query","type":"[RemoteQueryFunction](../../modules_sdk/types/modules_sdk.RemoteQueryFunction/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"runMigrations","type":"[RunMigrationFn](../../modules_sdk/types/modules_sdk.RunMigrationFn/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"revertMigrations","type":"[RevertMigrationFn](../../modules_sdk/types/modules_sdk.RevertMigrationFn/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"generateMigrations","type":"[GenerateMigrations](../../modules_sdk/types/modules_sdk.GenerateMigrations/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"linkMigrationExecutionPlanner","type":"[GetLinkExecutionPlanner](../../modules_sdk/types/modules_sdk.GetLinkExecutionPlanner/page.mdx)","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationShutdown","type":"() => Promise<void>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationPrepareShutdown","type":"() => Promise<void>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStart","type":"() => Promise<void>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"entitiesMap","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"notFound","type":"`Record`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"sharedContainer","type":"[MedusaContainer](../../modules_sdk/types/modules_sdk.MedusaContainer/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]}]} sectionTitle="MedusaApp"/>
### MedusaAppMigrateUp
#### Parameters
`","description":"Keys that can be used to link to other modules. e.g { product\\_id: \"Product\" } \"Product\" being the entity it refers to","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isReadOnlyLink","type":"`boolean`","description":"If true it expands a RemoteQuery property but doesn't create a pivot table","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"extraDataFields","type":"`string`[]","description":"Fields that will be part of the link record aside from the primary keys that can be updated\nIf not explicitly defined, this array will be populated by databaseConfig.extraFields","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"databaseConfig","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"modulesConfigPath","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfigFileName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfig","type":"[MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"linkModules","type":"[RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx) \\| [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"remoteFetchData","type":"`RemoteFetchDataCallback`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"injectedDependencies","type":"`any`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStartCb","type":"() => `void`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"Forces the modules bootstrapper to only run the modules loaders and return prematurely","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="MedusaAppMigrateUp"/>
#### Returns
### MedusaAppMigrateDown
#### Parameters
`","description":"Keys that can be used to link to other modules. e.g { product\\_id: \"Product\" } \"Product\" being the entity it refers to","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isReadOnlyLink","type":"`boolean`","description":"If true it expands a RemoteQuery property but doesn't create a pivot table","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"extraDataFields","type":"`string`[]","description":"Fields that will be part of the link record aside from the primary keys that can be updated\nIf not explicitly defined, this array will be populated by databaseConfig.extraFields","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"databaseConfig","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"modulesConfigPath","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfigFileName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfig","type":"[MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"linkModules","type":"[RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx) \\| [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"remoteFetchData","type":"`RemoteFetchDataCallback`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"injectedDependencies","type":"`any`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStartCb","type":"() => `void`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"Forces the modules bootstrapper to only run the modules loaders and return prematurely","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="MedusaAppMigrateDown"/>
#### Returns
### MedusaAppMigrateGenerate
#### Parameters
`","description":"Keys that can be used to link to other modules. e.g { product\\_id: \"Product\" } \"Product\" being the entity it refers to","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isReadOnlyLink","type":"`boolean`","description":"If true it expands a RemoteQuery property but doesn't create a pivot table","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"extraDataFields","type":"`string`[]","description":"Fields that will be part of the link record aside from the primary keys that can be updated\nIf not explicitly defined, this array will be populated by databaseConfig.extraFields","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"databaseConfig","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"modulesConfigPath","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfigFileName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfig","type":"[MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"linkModules","type":"[RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx) \\| [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"remoteFetchData","type":"`RemoteFetchDataCallback`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"injectedDependencies","type":"`any`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStartCb","type":"() => `void`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"Forces the modules bootstrapper to only run the modules loaders and return prematurely","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="MedusaAppMigrateGenerate"/>
#### Returns
### MedusaAppGetLinksExecutionPlanner
#### Parameters
`","description":"Keys that can be used to link to other modules. e.g { product\\_id: \"Product\" } \"Product\" being the entity it refers to","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"isReadOnlyLink","type":"`boolean`","description":"If true it expands a RemoteQuery property but doesn't create a pivot table","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"extraDataFields","type":"`string`[]","description":"Fields that will be part of the link record aside from the primary keys that can be updated\nIf not explicitly defined, this array will be populated by databaseConfig.extraFields","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"databaseConfig","type":"`object`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]}]},{"name":"modulesConfigPath","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfigFileName","type":"`string`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"modulesConfig","type":"[MedusaModuleConfig](../../modules_sdk/types/modules_sdk.MedusaModuleConfig/page.mdx)","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"linkModules","type":"[RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx) \\| [RegisterModuleJoinerConfig](../../modules_sdk/types/modules_sdk.RegisterModuleJoinerConfig/page.mdx)[]","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"remoteFetchData","type":"`RemoteFetchDataCallback`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"injectedDependencies","type":"`any`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"onApplicationStartCb","type":"() => `void`","description":"","optional":true,"defaultValue":"","expandable":false,"children":[]},{"name":"loaderOnly","type":"`boolean`","description":"Forces the modules bootstrapper to only run the modules loaders and return prematurely","optional":true,"defaultValue":"","expandable":false,"children":[]}]}]} sectionTitle="MedusaAppGetLinksExecutionPlanner"/>
#### Returns
Promise<[LinkMigrationsPlannerAction](../../types/types/types.LinkMigrationsPlannerAction/page.mdx)[]>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]},{"name":"executePlan","type":"(`actions`: [LinkMigrationsPlannerAction](../../types/types/types.LinkMigrationsPlannerAction/page.mdx)[]) => Promise<void>","description":"","optional":false,"defaultValue":"","expandable":false,"children":[]}]}]}]} sectionTitle="MedusaAppGetLinksExecutionPlanner"/>