import { IrType } from "@tsonic/frontend"; import { EmitterContext } from "../../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../format/backend-ast/types.js"; export type EmitTypeAstFn = (type: IrType, context: EmitterContext) => [CSharpTypeAst, EmitterContext]; export type RuntimeReificationPlan = { readonly condition: CSharpExpressionAst; readonly value: CSharpExpressionAst; readonly context: EmitterContext; }; export type RuntimeMaterializationSourceFrame = { readonly members: readonly IrType[]; readonly candidateMemberNs?: readonly number[]; readonly runtimeUnionArity?: number; }; export declare const tryBuildRuntimeMaterializationAst: (valueAst: CSharpExpressionAst, sourceType: IrType, targetType: IrType, context: EmitterContext, emitTypeAst: EmitTypeAstFn, selectedSourceMemberNs?: ReadonlySet, sourceFrame?: RuntimeMaterializationSourceFrame) => [CSharpExpressionAst, EmitterContext] | undefined; export declare const tryBuildRuntimeReificationPlan: (valueAst: CSharpExpressionAst, expectedType: IrType, context: EmitterContext, emitTypeAst: EmitTypeAstFn) => RuntimeReificationPlan | undefined; //# sourceMappingURL=runtime-reification.d.ts.map