import { ResolvedRef } from "../validation/dolt-schemas.js";
import { AgentsManageDatabaseClient } from "../db/manage/manage-client.js";

//#region src/dolt/ref-helpers.d.ts
type RefType = 'commit' | 'tag' | 'branch';
declare const isValidCommitHash: (ref: string) => boolean;
declare const getProjectScopedRef: (tenantId: string, projectId: string, ref: string) => string;
declare const getTenantScopedRef: (tenantId: string, ref: string) => string;
declare const resolveRef: (db: AgentsManageDatabaseClient) => (ref: string) => Promise<ResolvedRef | null>;
declare const isRefWritable: (resolvedRef: ResolvedRef) => boolean;
declare const checkoutRef: (db: AgentsManageDatabaseClient) => (resolvedRef: ResolvedRef) => Promise<void>;
declare const getCurrentBranchOrCommit: (db: AgentsManageDatabaseClient) => () => Promise<{
  ref: string;
  hash: string;
  type: RefType;
}>;
declare const getProjectMainResolvedRef: (db: AgentsManageDatabaseClient) => (tenantId: string, projectId: string) => Promise<ResolvedRef>;
declare const resolveProjectMainRefs: (db: AgentsManageDatabaseClient) => (tenantId: string, projectIds: string[]) => Promise<Array<{
  projectId: string;
  ref: ResolvedRef;
}>>;
//#endregion
export { RefType, checkoutRef, getCurrentBranchOrCommit, getProjectMainResolvedRef, getProjectScopedRef, getTenantScopedRef, isRefWritable, isValidCommitHash, resolveProjectMainRefs, resolveRef };