import { app } from "./dsl/runtime.js"; import { frontend } from "./dsl/frontend-runtime.js"; import { registerBuiltins, runMapper, listMappers } from "./mappers/index.js"; import { createExtensionContext, ExtensionContext } from "./extensions/context.js"; type Extension = (ctx: ExtensionContext, options?: any) => void | Promise; type ExtensionConfig = Extension | [Extension, any]; export type CodegenOptions = { extensions?: ExtensionConfig[]; }; export type GenerateOptions = { entries: string[]; targets?: string[]; outDir?: string; policies?: Record; emitterMap?: Record; }; export declare class Codegen { private extensions; constructor(opts?: CodegenOptions); app: typeof app; frontend: typeof frontend; private applyExtensions; generate(options: GenerateOptions): Promise<{ decl: import("./ir/decl/bundle.js").DeclBundle; ir: Record; }>; } export { createExtensionContext, listMappers, runMapper, registerBuiltins }; export { app, frontend }; export type { ExtensionContext } from "./extensions/context.js"; export declare function loadExtensionModule(modPath: string, ctx?: ExtensionContext): Promise;