/** * Base module loader implementation */ import type { ModuleLoader, ModuleFormat, LoadOptions } from "../types"; /** * Abstract base class for module loaders providing common functionality */ export declare abstract class BaseModuleLoader implements ModuleLoader { protected loadedModules: Map; protected abstract format: ModuleFormat; /** * Load a module from the given URL */ abstract loadModule(url: string, options?: LoadOptions): Promise; /** * Check if a module is already loaded and cached */ isModuleLoaded(url: string): boolean; /** * Preload a module without executing it (default implementation) */ preloadModule(url: string): Promise; /** * Clear the module cache */ clearCache(): void; /** * Get supported module formats */ getSupportedFormats(): ModuleFormat[]; /** * Get a cached module if available */ protected getCachedModule(url: string): T | undefined; /** * Cache a loaded module */ protected setCachedModule(url: string, module: T): void; /** * Execute a promise with timeout */ protected withTimeout(promise: Promise, timeout?: number): Promise; /** * Retry a function with exponential backoff */ protected withRetry(fn: () => Promise, attempts?: number, delay?: number, backoff?: number): Promise; /** * Sleep for the specified number of milliseconds */ protected sleep(ms: number): Promise; /** * Normalize URL for consistent caching */ protected normalizeUrl(url: string): string; /** * Check if URL has a file extension */ protected hasExtension(url: string): boolean; /** * Add cache busting parameter to URL */ protected addCacheBusting(url: string): string; } //# sourceMappingURL=base-loader.d.ts.map