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

//#region src/dolt/commit.d.ts

/**
 * Stage all changes for commit
 * params: { tables?: string[] }
 * tables: array of table names to stage
 * if no tables are specified, all changes are staged
 */
declare const doltAdd: (db: AgentsManageDatabaseClient) => (params?: {
  tables?: string[];
}) => Promise<void>;
/**
 * Commit staged changes
 * params: { message: string; author?: { name: string; email: string } }
 * message: commit message
 * author: commit author
 * author is optional, if not provided, the commit will be committed with the default author
 */
declare const doltCommit: (db: AgentsManageDatabaseClient) => (params: {
  message: string;
  author?: {
    name: string;
    email: string;
  };
}) => Promise<string>;
declare const doltAddAndCommit: (db: AgentsManageDatabaseClient) => (params: {
  message: string;
  author?: {
    name: string;
    email: string;
  };
}) => Promise<string>;
/**
 * Get commit log
 */
declare const doltLog: (db: AgentsManageDatabaseClient) => (params?: {
  revision?: string;
  limit?: number;
}) => Promise<{
  commit_hash: string;
  committer: string;
  email: string;
  date: Date;
  message: string;
}[]>;
/**
 * Reset staged or working changes
 */
declare const doltReset: (db: AgentsManageDatabaseClient) => (params?: {
  hard?: boolean;
  tables?: string[];
}) => Promise<void>;
/**
 * Get status of working changes
 */
declare const doltStatus: (db: AgentsManageDatabaseClient) => () => Promise<{
  table_name: string;
  staged: boolean;
  status: string;
}[]>;
/**
 * Get hash of a commit/branch
 */
declare const doltHashOf: (db: AgentsManageDatabaseClient) => (params: {
  revision: string;
}) => Promise<string>;
/**
 * Create a tag
 */
declare const doltTag: (db: AgentsManageDatabaseClient) => (params: {
  name: string;
  message?: string;
  revision?: string;
}) => Promise<void>;
/**
 * Delete a tag
 */
declare const doltDeleteTag: (db: AgentsManageDatabaseClient) => (params: {
  name: string;
}) => Promise<void>;
/**
 * List all tags
 */
declare const doltListTags: (db: AgentsManageDatabaseClient) => () => Promise<{
  tag_name: string;
  tag_hash: string;
  tagger: string;
  date: Date;
  message: string;
}[]>;
//#endregion
export { doltAdd, doltAddAndCommit, doltCommit, doltDeleteTag, doltHashOf, doltListTags, doltLog, doltReset, doltStatus, doltTag };