import type { ExecutionResult, AttemptRecord } from "../types";
import type { LifecycleEvent } from "./lifecycle";
/**
 * Represents collected evidence from execution
 */
export interface EvidenceRecord {
    intentId: string;
    timestamp: string;
    intent: string;
    status: "success" | "failed" | "blocked";
    route: string;
    tasksAttempted: number;
    tasksSucceeded: number;
    attempts: AttemptRecord[];
    events: Array<LifecycleEvent | string>;
    duration_ms: number;
}
/**
 * Manages evidence collection and persistence
 */
export declare class EvidenceCollector {
    private records;
    /**
     * Record an execution result as evidence
     */
    record(result: ExecutionResult, events: Array<LifecycleEvent | string>, durationMs: number): EvidenceRecord;
    /**
     * Get all recorded evidence
     */
    getRecords(): EvidenceRecord[];
    /**
     * Clear all evidence
     */
    clear(): void;
    /**
     * Persist evidence to disk
     */
    persistToDisk(projectRoot: string, evidence: EvidenceRecord): string;
    /**
     * Generate a summary from evidence
     */
    summarize(evidence: EvidenceRecord): string;
}
/**
 * Helper to extract healing events from lifecycle events
 */
export declare function extractHealingHistory(events: LifecycleEvent[]): Array<{
    timestamp: string;
    error: string;
    decision: string;
    appliedFix?: string;
}>;
/**
 * Helper to extract task execution history
 */
export declare function extractTaskHistory(attempts: AttemptRecord[]): Array<{
    taskId: string;
    attempt: number;
    status: string;
    exitCode: number;
    command: string;
}>;
//# sourceMappingURL=evidence.d.ts.map