import type { OpenCodeStreamEvent } from '../OpenCodeStreamHandler.js'; import { type ToolGuardRecoverableFailure } from '../tool-guard.js'; import type { ResolvedOpenCodeGuardPolicy } from './policy.js'; import type { OpenCodeGuard, OpenCodeGuardLifecycleScope, OpenCodeGuardVerdict, ToolOutcomeTuple } from './types.js'; export declare class ExactLoopGuard implements OpenCodeGuard { private readonly policy; readonly id = "exact-loop"; readonly layer: "integrity"; private readonly unavailableDetector; private readonly invalidArgumentDetector; private readonly editConflictCounts; private readonly observedErrors; private recoveryFailure; constructor(policy: ResolvedOpenCodeGuardPolicy); start(scope: OpenCodeGuardLifecycleScope): void; onEvent(event: OpenCodeStreamEvent): OpenCodeGuardVerdict | undefined; onToolOutcome(outcome: ToolOutcomeTuple): OpenCodeGuardVerdict | undefined; takeRecoveryFailure(): ToolGuardRecoverableFailure | undefined; private observeRejection; private observeEditConflict; private fail; } export declare class ExactRepeatStreakGuard implements OpenCodeGuard { private readonly limit; readonly id = "exact-repeat-streak"; readonly layer: "heuristic"; private lastKey; private streak; private recoveryFailure; constructor(limit: number); start(scope: OpenCodeGuardLifecycleScope): void; onToolOutcome(outcome: ToolOutcomeTuple): OpenCodeGuardVerdict | undefined; takeRecoveryFailure(): ToolGuardRecoverableFailure | undefined; } //# sourceMappingURL=integrity-guards.d.ts.map