import type { Budget } from "../interp/budget.js";
import type { HostCallJournal } from "../interp/host-call.js";
import { type CallerInjectedBinding } from "../interp/host-bridge.js";
import type { SandboxValue } from "../interp/values.js";
import type { Module } from "../parse/parser.js";
export type ModuleExports = ReadonlyMap<string, CallerInjectedBinding> | Record<string, CallerInjectedBinding>;
export type ModuleRegistry = ReadonlyMap<string, ModuleExports> | Record<string, ModuleExports>;
export declare function createUnknownModuleMessage(moduleName: string, moduleNames: readonly string[]): string;
export declare function createUnknownExportMessage(moduleName: string, exportName: string, availableExports: readonly string[]): string;
export declare function resolveModuleImports(module: Module, modules: ModuleRegistry | undefined, options: {
    budget: Budget;
    hostCalls?: HostCallJournal;
    signal?: AbortSignal;
}): Record<string, SandboxValue>;
