import { type EvidenceReport } from "./report.js";
import { type EvidenceManifest } from "./types.js";
import type { EvidenceStore } from "./store.js";
import { type CostClass } from "@oscharko-dev/keiko-contracts";
import type { EnvSource } from "@oscharko-dev/keiko-security";
export type WorkflowRunKind = "unit-tests" | "bug-investigation";
export type WorkflowTerminalStatus = "completed" | "cancelled" | "failed";
export interface EvidencePersistContext {
    readonly store: EvidenceStore;
    readonly env: EnvSource;
    readonly additionalSecrets?: readonly string[] | undefined;
    readonly costClassResolver?: ((modelId: string) => CostClass | "unknown") | undefined;
}
export interface WorkflowRunIdentity {
    readonly runId: string;
    readonly fingerprint: string;
    readonly modelId: string;
    readonly kind: WorkflowRunKind;
    readonly status: WorkflowTerminalStatus;
    readonly startedAt: number;
    readonly finishedAt: number;
    readonly workspaceRoot?: string | undefined;
}
export interface WorkflowEventLike {
    readonly type: string;
}
export declare function foldWorkflowUsage(events: readonly WorkflowEventLike[]): EvidenceManifest["usageTotals"];
export declare function buildWorkflowManifest(identity: WorkflowRunIdentity, events: readonly WorkflowEventLike[], report: unknown, costClassResolver?: (modelId: string) => CostClass | "unknown", options?: {
    readonly governedHandoff?: EvidenceManifest["governedHandoff"];
}): EvidenceManifest;
export declare function persistWorkflowEvidence(identity: WorkflowRunIdentity, report: unknown, events: readonly WorkflowEventLike[], ctx: EvidencePersistContext, options?: {
    readonly governedHandoff?: EvidenceManifest["governedHandoff"];
}): EvidenceReport;
//# sourceMappingURL=workflow-evidence.d.ts.map