/** * Snapshot Approval Workflow — Interactive review and approval of snapshot changes. * * @example * ```bash * agentprobe snapshot update # Update all snapshots * agentprobe snapshot review # Interactive review of changes * agentprobe snapshot approve test-name # Approve specific snapshot * agentprobe snapshot reject test-name # Reject and keep old * ``` */ import type { BehaviorSnapshot } from './snapshots'; export type SnapshotStatus = 'pending' | 'approved' | 'rejected'; export interface SnapshotRecord { testName: string; status: SnapshotStatus; current: BehaviorSnapshot | null; proposed: BehaviorSnapshot; diff: SnapshotFieldDiff[]; reviewedAt?: string; reviewedBy?: string; } export interface SnapshotFieldDiff { field: string; oldValue: any; newValue: any; } export interface ApprovalState { snapshotDir: string; records: SnapshotRecord[]; } export interface ApprovalSummary { total: number; pending: number; approved: number; rejected: number; } /** Load approval state from disk. */ export declare function loadApprovalState(snapshotDir: string): ApprovalState; /** Save approval state to disk. */ export declare function saveApprovalState(state: ApprovalState): void; /** Compute diff between two snapshots. */ export declare function diffSnapshots(current: BehaviorSnapshot | null, proposed: BehaviorSnapshot): SnapshotFieldDiff[]; /** Submit a proposed snapshot for review. */ export declare function submitForReview(state: ApprovalState, testName: string, current: BehaviorSnapshot | null, proposed: BehaviorSnapshot): SnapshotRecord; /** Approve a specific snapshot by test name. */ export declare function approveSnapshot(state: ApprovalState, testName: string, reviewer?: string): boolean; /** Reject a specific snapshot by test name. */ export declare function rejectSnapshot(state: ApprovalState, testName: string, reviewer?: string): boolean; /** Get summary of approval state. */ export declare function getApprovalSummary(state: ApprovalState): ApprovalSummary; /** Get all pending reviews. */ export declare function getPendingReviews(state: ApprovalState): SnapshotRecord[]; /** Format approval state for console output. */ export declare function formatApprovalState(state: ApprovalState): string; //# sourceMappingURL=snapshot-approval.d.ts.map