import { AgentsManageDatabaseClient } from "../../db/manage/manage-client.js";

//#region src/data-access/manage/improvementRowRevert.d.ts
type RevertDiffType = 'added' | 'modified' | 'removed';
interface RevertRowInput {
  table: string;
  primaryKey: Record<string, string>;
  diffType: RevertDiffType;
}
interface RevertImprovementRowsResult {
  processedRows: number;
  committed: boolean;
}
/**
 * Revert the specified rows on an improvement branch to their baseline values
 * from the target branch. Added rows are deleted, modified rows are reset to
 * their target-branch values, and removed rows are re-inserted. The reverts
 * are then committed on the improvement branch.
 *
 * Leaves the improvement (source) branch checked out on return.
 */
declare const revertImprovementRows: (db: AgentsManageDatabaseClient) => (params: {
  sourceBranchFullName: string;
  targetBranchFullName: string;
  rows: RevertRowInput[];
  commitMessage: string;
}) => Promise<RevertImprovementRowsResult>;
//#endregion
export { RevertDiffType, RevertImprovementRowsResult, RevertRowInput, revertImprovementRows };