/** * The module interface: what one compiled module publishes to the modules that * import it — its exports and their types, its records, aliases, enums and * classes under the identities they keep across the boundary, its re-exports, * its tests, and whatever a target extension contributes. * * D115 §三: this was `interfaceOf` (404 lines) and its four helpers at the tail * of `index.ts`, which is the package's public API facade and should hold * `compile`, `inspectModule`, the result types and the re-exports. The assembly * is analysis, not API: it reads the AST and the analyzer's own tables and * decides what crosses a module boundary, so it belongs beside the file that * decides what crosses it in the other direction (`../imports.ts`) and the one * that checks what a module says it exports (`../exports.ts`). * * `interfaceOf` is an orchestration now. Its sections run in the order the one * function ran them — identities, then the resolvers, then the draft tables and * the extensions' module data, then the type aliases, then the declarations, * then the exports, then the re-exports — because each one writes tables the * next reads. */ import type { CompilerExtension, ModuleInterface } from "../../../extension.ts"; import type { Program } from "../../../ast.ts"; import { type ClassInfo } from "../../../contracts.ts"; import { type GenericTypeInfo, type ValueType } from "../../../types.ts"; export declare function interfaceOf(program: Program, path: string, extensions: readonly CompilerExtension[], analyzedBindings?: ReadonlyMap, analyzedClasses?: ReadonlyMap, analyzedNamedTypes?: ReadonlyMap>, analyzedNamedTypeReadonlyFields?: ReadonlyMap>, analyzedNamedTypeBases?: ReadonlyMap, analyzedGenericTypes?: ReadonlyMap): ModuleInterface; //# sourceMappingURL=assembly.d.ts.map