/** * `for` counted range runtime semantics. * * KERN body-statement `for name=i from=A to=B step=S` follows Python * `range(A, B, S)` exactly for the executable surface: `to` is exclusive, * `step` defaults to `1`, a zero step is an error, negative steps count down, * and the three range expressions are evaluated exactly once before the first * iteration. The loop binding is iteration-local for the reference runner, so * body-side writes cannot perturb the next index. */ import { type NodeContract } from './index.js'; export interface ForProps { name?: string; from?: string | number; to?: string | number; step?: string | number; } export declare const forContract: NodeContract; export declare function registerForContract(): void; export declare function _resetForContractForTest(): void;