import { Module } from './module.js'; import type { ModuleSystem } from './module-system.js'; import type { Resource } from './resource-loader.js'; export interface ResourceLoadResult { success: boolean; retryWithDefaultResourceLoader?: boolean; err?: Error; } export interface FarmRuntimePlugin { name: string; bootstrap?: (moduleSystem: ModuleSystem) => void | Promise; moduleCreated?: (module: Module) => void | Promise; moduleInitialized?: (module: Module) => void | Promise; readModuleCache?: (module: Module) => boolean | Promise; moduleNotFound?: (moduleId: string) => void | Promise; loadResource?: (resource: Resource, targetEnv: 'browser' | 'node') => Promise; } export declare class FarmRuntimePluginContainer { plugins: FarmRuntimePlugin[]; constructor(plugins: FarmRuntimePlugin[]); hookSerial(hookName: Exclude, ...args: any[]): void; hookBail(hookName: Exclude, ...args: any[]): // ): Promise { T | undefined; }