import type { EdictModule } from "../ast/nodes.js"; import { type CompileResult, type CompileSuccess, type CompileFailure, type CompileOptions, type DebugMetadata, type FieldLayout, type EnumVariantLayout, type EnumLayout, type RecordLayout } from "./types.js"; export type { CompileResult, CompileSuccess, CompileFailure, CompileOptions, DebugMetadata }; export type { FieldLayout, EnumVariantLayout, EnumLayout, RecordLayout }; /** * Compile a validated Edict module AST into WASM bytecode. * * Handles: Int/Float/Bool/String literals, binary/unary ops, function calls, * if/else, let bindings, blocks, match expressions, records, enums, lambdas, * closures, and all builtin functions. * * @param module - A fully checked Edict module AST * @param options - Optional compilation settings (typeInfo, debugMode, maxMemoryPages, emitWat) * @returns `{ ok: true, wasm }` on success, or `{ ok: false, errors }` on failure */ export declare function compile(module: EdictModule, options?: CompileOptions): CompileResult; //# sourceMappingURL=codegen.d.ts.map