import type { ScopeInfo, TypeCheckerContext } from "./types.js"; import type { InterruptEffect } from "../symbolTable.js"; /** * The finalize-specific checker rules (the return-TYPE rule needs no code * here: finalize bodies are same-scope statements, so the ordinary return * checking already reaches them). * * - one finalize per container, top level only (AG6032 / AG6033) * - no interrupts, direct or transitive (AG3016) * - no saveDraft inside (AG6034) * - functions and blocks only, not nodes (AG6035) * - in a finalize-bearing container, a return expression containing a * call must BE a single direct call (AG6036) — anything else consumes * an aborted callee inside the expression before the finalize can run. */ export declare function checkFinalizeBlocks(scopes: ScopeInfo[], interruptEffectsByFunction: Record, ctx: TypeCheckerContext): void;