import { RemoteFetchDataCallback } from "@biryanihouse/orchestration"; import { ExternalModuleDeclaration, ILinkMigrationsPlanner, InternalModuleDeclaration, LoadedModule, MedusaContainer, ModuleJoinerConfig, ModuleServiceInitializeOptions, RemoteQueryFunction } from "@biryanihouse/types"; import { GraphQLUtils, Modules } from "@biryanihouse/utils"; import { RegisterModuleJoinerConfig } from "./medusa-module"; import { Link } from "./link"; export type RunMigrationFn = () => Promise; export type RevertMigrationFn = (moduleNames: string[]) => Promise; export type GenerateMigrations = (moduleNames: string[]) => Promise; export type GetLinkExecutionPlanner = () => ILinkMigrationsPlanner; export type MedusaModuleConfig = { [key: string | Modules]: string | boolean | Partial; }; export type SharedResources = { database?: ModuleServiceInitializeOptions["database"] & { /** * { * name?: string * afterCreate?: Function * min?: number * max?: number * refreshIdle?: boolean * idleTimeoutMillis?: number * reapIntervalMillis?: number * returnToHead?: boolean * priorityRange?: number * log?: (message: string, logLevel: string) => void * } */ pool?: Record; }; }; export declare function loadModules(args: { modulesConfig: MedusaModuleConfig; sharedContainer: MedusaContainer; sharedResourcesConfig?: SharedResources; migrationOnly?: boolean; loaderOnly?: boolean; workerMode?: "shared" | "worker" | "server"; }): Promise; export type MedusaAppOutput = { modules: Record; link: Link | undefined; query: RemoteQueryFunction; entitiesMap?: Record; gqlSchema?: GraphQLUtils.GraphQLSchema; notFound?: Record>; runMigrations: RunMigrationFn; revertMigrations: RevertMigrationFn; generateMigrations: GenerateMigrations; linkMigrationExecutionPlanner: GetLinkExecutionPlanner; onApplicationShutdown: () => Promise; onApplicationPrepareShutdown: () => Promise; onApplicationStart: () => Promise; sharedContainer?: MedusaContainer; }; export type MedusaAppOptions = { workerMode?: "shared" | "worker" | "server"; sharedContainer?: MedusaContainer; sharedResourcesConfig?: SharedResources; loadedModules?: LoadedModule[]; servicesConfig?: ModuleJoinerConfig[]; modulesConfigPath?: string; modulesConfigFileName?: string; modulesConfig?: MedusaModuleConfig; linkModules?: RegisterModuleJoinerConfig | RegisterModuleJoinerConfig[]; remoteFetchData?: RemoteFetchDataCallback; injectedDependencies?: any; onApplicationStartCb?: () => void; /** * Forces the modules bootstrapper to only run the modules loaders and return prematurely */ loaderOnly?: boolean; }; export declare function MedusaApp(options?: MedusaAppOptions): Promise; export declare function MedusaAppMigrateUp(options?: MedusaAppOptions): Promise; export declare function MedusaAppMigrateDown(moduleNames: string[], options?: MedusaAppOptions): Promise; export declare function MedusaAppMigrateGenerate(moduleNames: string[], options?: MedusaAppOptions): Promise; export declare function MedusaAppGetLinksExecutionPlanner(options?: MedusaAppOptions): Promise; //# sourceMappingURL=medusa-app.d.ts.map