import type { AfterToolCallContext, AgentToolResult } from '@earendil-works/pi-agent-core'; export interface CodingVerificationEvidence { command: string; kind: 'check' | 'diff-review'; status: 'passed' | 'failed' | 'unverified'; revision?: string; toolCallId: string; durationMs?: number; logPath?: string; } export declare function toolResultFailed(result: AgentToolResult, isError?: boolean): boolean; /** One run owns its evidence; transcript tool results are the durable record. */ export declare class RunVerification { private readonly snapshot; private revision?; private changed; private readonly before; private readonly evidence; constructor(snapshot: () => Promise); static open(workspace: string): Promise; restore(value: unknown, includeEvidence: boolean): void; beforeTool(toolCallId: string, toolName?: string): Promise; afterTool(context: AfterToolCallContext): Promise<{ result: AgentToolResult; isError: boolean; }>; private observeRevision; pendingContext(): Promise; summary(): Promise<{ changed: boolean; revision?: string; evidence: CodingVerificationEvidence[]; }>; }