import { GenerateTypeUtils } from "../converter/BaseConverter.js"; import { IRNode } from "../types.js"; import type { SwiftConverterContext } from "./SwiftConverter.js"; /** * Emits a Swift `enum` with associated-value cases plus per-variant nested * `struct` declarations for a discriminated union, registering them in * `c.sealedEnumDecls`. Idempotent for nested visits: re-emitting the same * enum short-circuits via `sealedEnumDeclsContainsName`. */ export declare function emitSwiftDiscriminatedEnum(c: SwiftConverterContext, ir: IRNode, utils: GenerateTypeUtils): string; /** Derives the Swift discriminated-enum name for a union IR node. */ export declare function deriveSwiftSealedName(c: SwiftConverterContext, ir: IRNode): string; /** * Substring-scans `c.sealedEnumDecls` for an existing declaration matching the * given name. Used to detect prior emission so the orchestrator can skip the * regular ref-types path for sealed variants. */ export declare function sealedEnumDeclsContainsName(c: SwiftConverterContext, name: string): boolean;