/** * Abstract module system interfaces and utilities */ import type { ModuleFormat, ModuleSystemConfig, ModuleLoader, BundlerAdapter, ModuleFormatDetector, LoadOptions } from "./types"; /** * Registry for module loaders */ export declare class ModuleLoaderRegistry { private loaders; private detectors; /** * Register a module loader for a specific format */ registerLoader(format: ModuleFormat, loader: ModuleLoader): void; /** * Register a format detector */ registerDetector(detector: ModuleFormatDetector): void; /** * Get loader for a specific format */ getLoader(format: ModuleFormat): ModuleLoader | undefined; /** * Get all available loaders */ getAvailableLoaders(): Map; /** * Detect format and get appropriate loader */ getLoaderForUrl(url: string): Promise<{ format: ModuleFormat; loader: ModuleLoader; } | null>; /** * Get optimal loader based on environment and available formats */ getOptimalLoader(availableFormats: ModuleFormat[]): { format: ModuleFormat; loader: ModuleLoader; } | null; } /** * Registry for bundler adapters */ export declare class BundlerAdapterRegistry { private adapters; /** * Register a bundler adapter */ registerAdapter(adapter: BundlerAdapter): void; /** * Get adapter by name */ getAdapter(name: string): BundlerAdapter | undefined; /** * Get all available adapters */ getAvailableAdapters(): Map; /** * Get adapters that are available in current environment */ getActiveAdapters(): BundlerAdapter[]; } /** * Universal module system that works with any bundler */ export declare class UniversalModuleSystem { private loaderRegistry; private bundlerRegistry; private config; constructor(config: ModuleSystemConfig); /** * Load a module using the best available strategy */ loadModule(url: string, options?: LoadOptions): Promise; /** * Select the best loader for a URL */ private selectLoader; /** * Configure a bundler for expozr build */ configureBundler(bundlerName: string, config: any, expozrConfig: any): any; /** * Get the loader registry */ getLoaderRegistry(): ModuleLoaderRegistry; /** * Get the bundler registry */ getBundlerRegistry(): BundlerAdapterRegistry; /** * Update configuration */ updateConfig(config: Partial): void; /** * Get current configuration */ getConfig(): ModuleSystemConfig; } /** * Create a default module system configuration */ export declare function createDefaultModuleSystemConfig(options?: Partial): ModuleSystemConfig; /** * Get or create the global module system */ export declare function getGlobalModuleSystem(config?: ModuleSystemConfig): UniversalModuleSystem; /** * Set the global module system */ export declare function setGlobalModuleSystem(moduleSystem: UniversalModuleSystem): void; //# sourceMappingURL=module-system.d.ts.map