import { Module } from "./module.js"; import { type FarmRuntimePlugin, FarmRuntimePluginContainer } from "./plugin.js"; import { type Resource, ResourceLoader } from "./resource-loader.js"; type ModuleInitializationFunction = (module: Module, exports: any, __farm_require__: (moduleId: string) => any, __farm_dynamic_require__: (moduleId: string) => any) => void | Promise; export type ModuleInitialization = ModuleInitializationFunction & { __farm_resource_pot__?: string; }; export declare class ModuleSystem { private modules; private cache; private externalModules; private reRegisterModules; publicPaths: string[]; dynamicResources: Resource[]; dynamicModuleResourcesMap: Record; resourceLoader: ResourceLoader; pluginContainer: FarmRuntimePluginContainer; targetEnv: "browser" | "node"; constructor(); require(moduleId: string, isCJS?: boolean): any; farmDynamicRequire(moduleId: string): Promise; loadDynamicResourcesOnly(moduleId: string, force?: boolean): Promise; loadDynamicResources(moduleId: string, force?: boolean): Promise; register(moduleId: string, initializer: ModuleInitialization): void; update(moduleId: string, init: ModuleInitialization): void; delete(moduleId: string): boolean; getModuleUrl(moduleId: string): string; getCache(moduleId: string): Module | undefined; clearCache(moduleId: string): boolean; setInitialLoadedResources(resources: string[]): void; setDynamicModuleResourcesMap(dynamicResources: Resource[], dynamicModuleResourcesMap: Record): void; setPublicPaths(publicPaths: string[]): void; setPlugins(plugins: FarmRuntimePlugin[]): void; addPlugin(plugin: FarmRuntimePlugin): void; removePlugin(pluginName: string): void; setExternalModules(externalModules: Record): void; bootstrap(): void; } export {};