import type { Type } from "../../types/definitions";
export interface SuspensionPoint {
    index: number;
    expr: unknown;
    targetVariableId?: string;
    isInsideCond?: boolean;
    isInsideWhile?: boolean;
    whileNestingDepth?: number;
    condBranchSourceIndex?: number;
    needsOwnCondBranchField?: boolean;
    enclosingWhileExpr?: unknown;
}
export interface SuspensionCapturedVariable {
    id: string;
    name: string;
    type: Type;
    isOwningTheSameRcValueAs: SuspensionCapturedVariable | undefined;
}
export interface SuspensionAnalysisResult<P extends SuspensionPoint> {
    suspensionPoints: P[];
    capturedVariables: SuspensionCapturedVariable[];
    hasSuspensions: boolean;
    variableIdRemapping: Map<string, string>;
}
