/** * Discriminant equality and property truthiness guard detectors. * Handles tryResolveDiscriminantEqualityGuard and tryResolvePropertyTruthinessGuard. */ import { IrExpression } from "@tsonic/frontend"; import { EmitterContext } from "../../../types.js"; import type { DiscriminantEqualityGuardInfo, PropertyExistenceGuardInfo, PropertyTruthinessGuardInfo } from "./guard-types.js"; /** * Try to extract guard info from `x.prop === ` or `x.prop !== `. * * This supports airplane-grade discriminated union narrowing without relying on * TypeScript flow analysis, by mapping the literal to exactly one union member. */ export declare const tryResolveDiscriminantEqualityGuard: (condition: IrExpression, context: EmitterContext) => DiscriminantEqualityGuardInfo | undefined; /** * Try to extract guard info from `x.prop` / `!x.prop` where the property acts as a * boolean-style discriminant over a runtime union. */ export declare const tryResolvePropertyTruthinessGuard: (condition: IrExpression, context: EmitterContext) => PropertyTruthinessGuardInfo | undefined; export declare const tryResolvePropertyExistenceGuard: (condition: IrExpression, context: EmitterContext) => PropertyExistenceGuardInfo | undefined; //# sourceMappingURL=guard-detectors-discriminant.d.ts.map