import { IRNode } from "../types.js"; import type { BaseConverterContext } from "./BaseConverter.js"; /** * Resolves an IR node to its registered ref-type name, registering a new entry * if needed. Returns `undefined` when the node has no signature. * * Behavior: * 1. Self-reference: if `ir.name === c.rootName` and `detectSelfReferenceToRoot` * is enabled (default true), short-circuits to the root name without registering. * 2. Signature dedup: if `languageProfile.shouldReuseExistingSignature(sig)` * returns true and an entry already exists for the signature, reuses it. * 3. Otherwise resolves a name (via the language profile's `resolveRefTypeName` * hook or the default path-derived resolver), then either reuses an existing * matching entry or registers a fresh one. Code is generated by calling back * into `c.generateObjectType` and assigned via the held entry reference (so * recursion sees an entry-in-progress). */ export declare function getReferencedType(c: BaseConverterContext, ir: IRNode): string | undefined;