import type { TypeCheckerContext, ScopeInfo } from "./types.js"; import type { ObjectType } from "../types/typeHints.js"; /** * Check every interrupt raise site's payload against its declared type. The * effect→payload registry is built via `buildEffectRegistry` (reporting * conflicting / duplicate declarations as a side effect). Callers that already * built the registry — H3 shares ONE across passes — pass it in to avoid * rebuilding it (which would double-report those conflicts). */ export declare function checkEffectPayloads(scopes: ScopeInfo[], ctx: TypeCheckerContext, registry?: Record): void; /** * Registry assembly is a 3-step pipeline: * collect → group-by-effect → for each effect: validate + merge. * Validation pushes diagnostics; merge returns the agreed type or `null` on * conflict (so we drop the effect from the registry — see `mergePayload`). */ export declare function buildEffectRegistry(ctx: TypeCheckerContext): Record;