/**
 * scope_dwell_tick (T-FLOW-UNSKIPPABLE FU.2 / D2) — scope-sprawl escalation.
 *
 * Closes the last flow-gate gap: the SCOPE phase is otherwise ungated, so a
 * sprawling, oscillating scope (many prompts of investigation, no pre-research
 * converging) is invisible — the failure mode of this very session. On each
 * `prompt_submit` while the coding-flow FSM is in `scoping`/`researching`, this
 * increments a per-session dwell counter; once it reaches the threshold (3 — the
 * same `depth.count >= 3` "one full research turn" bar the scope-advance uses)
 * with the scope still un-converged, it returns `nudge: true` so the rule surfaces
 * a "converge: write ONE pre-research now" directive. It RESETS the moment the FSM
 * leaves the scope region (a pre-research write advances `scoping → researched`),
 * so an honest converging scope sees the nudge at most once.
 *
 * SOFT by design: the rule emits a `directive` (surface), never a block — research
 * legitimately needs multiple turns; this nudges convergence, it does not forbid
 * investigation. Fail-open: any error → `{ nudge: false }` (a nudge must never
 * break a prompt).
 *
 * Imports from: node:fs/promises, zod, ../runtime/result.js, ../runtime/paths.js,
 *   ../runtime/fsm_state.js.
 * Imported by: src/runtime/bootstrap.ts (registry wiring).
 */
import { z } from 'zod';
import type { FunctionDef } from './registry.js';
declare const NoArgs: z.ZodObject<{}, "strict", z.ZodTypeAny, {}, {}>;
interface DwellResult {
    nudge: boolean;
    count: number;
}
export declare const ScopeDwellTick: FunctionDef<z.input<typeof NoArgs>, DwellResult>;
export {};
//# sourceMappingURL=scope_dwell.d.ts.map