export interface ToolHealthStats { totalErrors: number; totalSuccesses: number; maxConsecutiveErrors: number; recentErrorRate: number; recentWindowSize: number; maxSameSignatureRepeats: number; toolEventsSinceLastProgress: number; recoveriesUsed: number; } export type ToolGuardFailure = { kind: 'unavailable_tool_loop'; tool: string; fingerprint: string; message: string; } | { kind: 'invalid_argument_loop'; tool: string; fingerprint: string; message: string; } | { kind: 'edit_conflict_loop'; tool: 'edit'; signature: string; filePath: string; message: string; } | { kind: 'tool_error_burst'; fingerprint: string; stats: ToolHealthStats; message: string; } | { kind: 'exact_repeat_loop'; tool: string; fingerprint: string; message: string; }; export declare function computeEditConflictSignature(filePath: string, oldString: string): string; export interface ToolGuardRecoveryState { readonly correctionLimit: number; readonly correctionsUsed: number; readonly correctedFingerprints: readonly string[]; readonly pendingCorrection?: { readonly sessionId: string; readonly fingerprint: string; readonly prompt: string; }; readonly freshSessionUsed: boolean; readonly freshReason?: ToolGuardRecoverableKind; } export type ToolGuardRecoverableKind = ToolGuardFailure['kind']; export type ToolGuardRecoverableFailure = ToolGuardFailure; export declare function createToolGuardRecoveryState(correctionLimit: number): ToolGuardRecoveryState; export declare function shouldIssueToolGuardCorrection(state: ToolGuardRecoveryState, fingerprint: string): boolean; export type ToolGuardRecoveryAction = 'correction' | 'fresh_session' | 'fail'; export declare function resolveToolGuardRecoveryAction(state: ToolGuardRecoveryState, fingerprint: string): ToolGuardRecoveryAction; export declare function markToolGuardCorrectionPending(state: ToolGuardRecoveryState, sessionId: string, fingerprint: string, prompt: string): ToolGuardRecoveryState; export declare function clearToolGuardPendingCorrection(state: ToolGuardRecoveryState): ToolGuardRecoveryState; export declare function markToolGuardFreshSessionUsed(state: ToolGuardRecoveryState, reason: ToolGuardRecoverableKind): ToolGuardRecoveryState; export declare function buildEditConflictCorrectionPrompt(filePath: string): string; export declare function buildToolGuardCorrectionPrompt(failure: ToolGuardRecoverableFailure, serverAvailableTools: readonly string[] | undefined): string; export declare function buildToolGuardRetryPrompt(prompt: string, reason: ToolGuardRecoverableKind): string; //# sourceMappingURL=tool-guard.d.ts.map