import { ModuleSpec } from '../types/index.js';
export interface ModuleLoader {
    resolveComputeUrl(ref: string): string;
    resolveModule(ref: string): ModuleSpec;
    getModule(ref: string): ModuleSpec | null;
    loadModule(ref: string): Promise<ModuleSpec>;
}
export declare abstract class GenericModuleLoader implements ModuleLoader {
    modules: Map<string, ModuleSpec>;
    constructor();
    abstract resolveComputeUrl(ref: string): string;
    abstract fetchModule(ref: string): Promise<ModuleSpec>;
    resolveModule(ref: string): ModuleSpec;
    getModule(ref: string): ModuleSpec | null;
    loadModule(ref: string): Promise<ModuleSpec>;
    addModule(moduleRef: string, moduleSpec: ModuleSpec): ModuleSpec;
    removeModule(ref: string): void;
    createUnresolved(ref: string): ModuleSpec;
}
export declare class StandardModuleLoader extends GenericModuleLoader {
    registryUrl: string;
    resolveModuleUrl(ref: string): string;
    resolveComputeUrl(ref: string): string;
    fetchModule(ref: string): Promise<ModuleSpec>;
}
export declare class UnresolvedNodeError extends Error {
    name: string;
    status: number;
}
export declare class ModuleLoadFailedError extends Error {
    readonly message: string;
    readonly status: number;
    name: string;
    constructor(message: string, status?: number);
}
