/**
 * Truthy/falsy narrowing resolution and sequential narrowing collection.
 *
 * Contains tryResolveTruthyNarrowing, tryResolveFalsyNarrowing,
 * collectTypeNarrowingsInTruthyExpr, collectTypeNarrowingsInFalsyExpr,
 * and collectSequentialNarrowings.
 */
import * as ts from "typescript";
import type { ProgramContext } from "../program-context.js";
import { type TypeNarrowing } from "./narrowing-resolvers.js";
/**
 * Collect `instanceof` narrowings that are guaranteed to hold when `expr` is truthy.
 *
 * We only collect from conjunctions (&&) because truthiness of `A && B` implies both
 * `A` and `B` are truthy; for `A || B` it does not guarantee either side.
 */
export declare const collectTypeNarrowingsInTruthyExpr: (expr: ts.Expression, ctx: ProgramContext) => readonly TypeNarrowing[];
export declare const collectTypeNarrowingsInFalsyExpr: (expr: ts.Expression, ctx: ProgramContext) => readonly TypeNarrowing[];
//# sourceMappingURL=narrowing-truthy.d.ts.map