import { type Result } from '@forgeax/engine-types'; export interface PackProgramSource { readonly entry: string; readonly export: string; readonly modules: Readonly>; /** Exact identities supplied by the executing host, never bundled substitutes. */ readonly imports?: Readonly>; } export interface PackProgram extends PackProgramSource { readonly digest: string; } export interface PackProgramImport { readonly identity: string; readonly url: string; } /** Host publication keeps native ESM URLs alive for the consuming realm. */ export interface PackProgramHost { publish(program: PackProgram, imports: Readonly>): Promise; } /** Native module identity depends on the graph and its bindings, not the selected export. */ export declare function packProgramModuleIdentity(value: PackProgram, hostImports?: Readonly>): Result; /** Link a complete closure before making any module visible; cycles retain native ESM semantics. */ export declare function linkPackProgram(program: PackProgram, baseUrl: string, hostImports?: Readonly>): import("@forgeax/engine-types").ResultErr | import("@forgeax/engine-types").ResultOk<{ entryUrl: string; files: { url: string; source: string; }[]; }>; export type PackProgramError = { readonly expected: string; readonly hint: string; readonly detail: { readonly module: string; readonly reason: string; }; } & { readonly code: 'pack-program-invalid' | 'pack-program-dependency-unavailable' | 'pack-program-integrity-mismatch' | 'pack-program-load-failed'; }; /** Parse and seal JavaScript without evaluating, transpiling or bundling it. */ export declare function preparePackProgram(input: PackProgramSource): Result; export declare function verifyPackProgram(value: PackProgram): Result; /** Explicit execution; the returned export is validated by its domain owner. */ export declare function loadPackProgram(value: PackProgram, hostImports?: Readonly>, host?: PackProgramHost): Promise>; //# sourceMappingURL=program.d.ts.map