import type { TypeCheckerContext } from "./types.js"; /** * A `let`/`const` in a function or node body may not reuse a parameter name * (AG4012). * * The generated code keeps parameters and locals in different slots. The * redeclare writes the local slot, but the preprocessor resolves every later * read of that name to the parameter slot, so the new value is never seen * (issue #717). Rejecting the shape is the cheap way to make the checker and * the runtime agree. * * Declarations inside a block argument are skipped: a block has its own * scope, and reads inside it resolve to the block's binding first. */ export declare function checkParameterRedeclarations(ctx: TypeCheckerContext): void;