/** * `ajsc/converter` โ€” extension API for adding new language targets. * * This subpath exposes the abstract {@link BaseConverter} class, the * {@link LanguageProfile} pattern that consolidates per-language behavior, * the {@link RefTypeEntry} registry shape, the indent-aware Emitter helper * (importable from `./Emitter.js`), the {@link walkIR} tree-walking helper, * and the {@link generateInlineNestedDecl} helper used by language emitters * to implement `inlineTypes`-style nested-class output. * * Most consumers do NOT need this subpath โ€” use the function-style emitters * (`emitTypescript` / `emitKotlin` / `emitSwift` from `ajsc`) or the * class-based subpaths (`ajsc/typescript`, `ajsc/kotlin`, `ajsc/swift`). * * Reach for `ajsc/converter` only when building a new language target. See * `docs/architecture/README.md` ยง "How to add a new language" for the * step-by-step pattern. * * Note: several public helpers carry an `@internal` JSDoc tag โ€” they are * public for cross-module visibility (the `BaseConverterContext` interface * requires them), but they are NOT part of the npm package's public surface. * Treat `@internal`-tagged symbols as protected. */ export { BaseConverter, walkIR } from "./BaseConverter.js"; export type { BaseConverterOpts, RefTypeNamingConfig, RefTypeEntry, GenerateTypeUtils, LanguageProfile, } from "./BaseConverter.js"; export { generateInlineNestedDecl, indentLines } from "./inlineEmission.js"; export type { InlineNestedCollector } from "./inlineEmission.js";