/** * Exact-comparison lowering helpers. * Determines whether an already-emitted C# AST node matches an expected type, * avoiding redundant casts. */ import { IrType } from "@tsonic/frontend"; import { EmitterContext } from "../types.js"; import type { CSharpExpressionAst, CSharpTypeAst } from "../core/format/backend-ast/types.js"; export declare const hasNullishBranch: (type: IrType | undefined) => boolean; export declare const tryEmitExactComparisonTargetAst: (type: IrType, context: EmitterContext) => [CSharpTypeAst, EmitterContext] | undefined; export declare const canUseImplicitOptionalSurfaceConversion: (actualType: IrType, expectedType: IrType, context: EmitterContext) => boolean; export declare const isExactCastToType: (ast: CSharpExpressionAst, targetType: CSharpTypeAst) => boolean; export declare const isExactAsExpressionToType: (ast: CSharpExpressionAst, targetType: CSharpTypeAst) => boolean; export declare const isExactArrayCreationToType: (ast: CSharpExpressionAst, targetType: CSharpTypeAst) => boolean; export declare const isExactNullableValueAccessToType: (ast: CSharpExpressionAst, actualType: IrType, expectedType: IrType, context: EmitterContext) => boolean; export declare const isExactExpressionToType: (ast: CSharpExpressionAst, targetType: CSharpTypeAst) => boolean; //# sourceMappingURL=exact-comparison.d.ts.map