import { type EvidenceReport, type EvidenceManifest } from "@oscharko-dev/keiko-evidence";
import { type RunResult } from "@oscharko-dev/keiko-harness";
import { type EnvSource } from "@oscharko-dev/keiko-model-gateway";
import type { EvidenceStore } from "@oscharko-dev/keiko-evidence";
import type { StreamEvent } from "./sink.js";
import type { RunKind } from "./run-request.js";
import type { RunStatus } from "./runs.js";
type TerminalStatus = Exclude<RunStatus, "running">;
export interface EvidencePersistContext {
    readonly store: EvidenceStore;
    readonly env: EnvSource;
    readonly additionalSecrets?: readonly string[] | undefined;
}
export interface RunIdentity {
    readonly runId: string;
    readonly fingerprint: string;
    readonly modelId: string;
    readonly kind: RunKind;
    readonly status: TerminalStatus;
    readonly startedAt: number;
    readonly finishedAt: number;
    readonly workspaceRoot?: string | undefined;
}
export declare function persistWorkflowEvidence(identity: RunIdentity, report: unknown, events: readonly StreamEvent[], ctx: EvidencePersistContext, governedHandoff?: EvidenceManifest["governedHandoff"]): EvidenceReport;
export declare function persistExplainEvidence(identity: RunIdentity, result: RunResult, ctx: EvidencePersistContext): EvidenceReport;
export declare function persistVerifyEvidence(identity: RunIdentity, ctx: EvidencePersistContext): EvidenceReport;
export {};
//# sourceMappingURL=evidence.d.ts.map