import type { ToolCall } from "../../../types.js"; export interface LoopGuardVerdict { readonly block: boolean; readonly kind?: string | undefined; readonly reason?: string | undefined; } export interface ToolGuardInput { readonly call: ToolCall; readonly narrowNmapOperation: boolean; readonly narrowNmapDispatched: number; readonly heldBatchReminder: string | undefined; } export interface ToolGuardLoopInput { readonly verdict: LoopGuardVerdict; readonly priorObservation: string | undefined; } export type ToolGuardDecision = { readonly kind: "proceed"; readonly consumesNarrowNmapScan: boolean; } | { readonly kind: "reject"; readonly reason: string; } | { readonly kind: "hold"; readonly reason: string; } | { readonly kind: "reuse"; readonly reason: string; } | { readonly kind: "warn-reject"; readonly reason: string; } | { readonly kind: "loop-reset"; }; export interface RetryReason { readonly code: string; readonly detail: string; } export declare const readRetryReason: (args: Record) => RetryReason | undefined; export declare const evaluateToolGuards: (input: ToolGuardInput) => ToolGuardDecision; export declare const evaluateLoopGuardBlock: (call: ToolCall, loop: ToolGuardLoopInput) => ToolGuardDecision; export declare const LOOP_RESET_OUTPUT = "Loop guard counters reset. You may re-run commands freely.";