/**
 * Anonymous Type Template Inference & Carrier Reuse
 *
 * Template argument inference for matching object types against existing
 * structural carriers, and object type reference creation/reuse logic.
 */
import type { IrType, IrObjectType, IrReferenceType } from "../types.js";
import type { LoweringContext } from "./anon-type-ir-rewriting.js";
export declare const inferTemplateTypeArguments: (template: IrType, concrete: IrType, substitution: Map<string, IrType>) => boolean;
export declare const tryInstantiateReusableStructuralCarrier: (objectType: IrObjectType, ctx: LoweringContext) => IrReferenceType | undefined;
export declare const getOrCreateObjectTypeReference: (objectType: IrObjectType, ctx: LoweringContext) => IrReferenceType;
//# sourceMappingURL=anon-type-template-inference.d.ts.map