import { GenerateTypeUtils } from "../converter/BaseConverter.js"; import { IRNode } from "../types.js"; import type { KotlinConverterContext } from "./KotlinConverter.js"; /** * Emits a Kotlin `sealed interface` plus per-variant `data class` declarations * for a discriminated union, registering them in `c.sealedDecls`. Idempotent * for nested visits: re-emitting the same interface or variant short-circuits. */ export declare function emitSealedInterface(c: KotlinConverterContext, ir: IRNode, utils: GenerateTypeUtils): string; /** Derives the Kotlin sealed-interface name for a union IR node. */ export declare function deriveSealedName(c: KotlinConverterContext, ir: IRNode): string; /** * Substring-scans `c.sealedDecls` 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 sealedDeclsContainsName(c: KotlinConverterContext, name: string): boolean;