import { type Expr } from "../../expr";
import type { SuspensionAnalysisResult, SuspensionPoint } from "./suspension-analysis-types";
export interface SuspensionPointDetector<P extends SuspensionPoint> {
    detect(expr: Expr, parentExpr: Expr | undefined, points: P[]): void;
    shouldSkipBody(expr: Expr): boolean;
}
export declare function extractTargetVariableId(parentExpr: Expr | undefined): string | undefined;
export declare function analyzeSuspensionPoints<P extends SuspensionPoint>(body: Expr, detector: SuspensionPointDetector<P>): SuspensionAnalysisResult<P>;
