import { type Result } from "execa"; export declare enum CloneType { HTTPS = 0, SSH = 1 } export interface UpdateResult { dirty: boolean; updated: boolean; updatedRange?: { from: string; to: string; }; } export declare class GitRepo { private readonly path; private readonly logCommand; constructor(path: string, logCommand: (result: Result) => Promise); cloneGitHubRepo(org: string, name: string, cloneType: CloneType): Promise; private git; getCurrentBranch(): Promise; hasChangesInProgress(): Promise; hasUnpushedCommits(): Promise; getAuthorsForRange(range: { from: string; to: string; }): Promise<{ name: string; count: number; }[]>; update(): Promise; }