export declare class VcsClient { private runGit; private runGitWithInput; private gitDirExists; isRepo(cwd: string): Promise; ensureRepo(cwd: string): Promise; hasRemote(cwd: string): Promise; currentBranch(cwd: string): Promise; branchExists(cwd: string, branch: string): Promise; private hasCommits; private ensureMainBranch; ensureBaseBranch(cwd: string, base: string): Promise; checkoutBranch(cwd: string, branch: string): Promise; createOrCheckoutBranch(cwd: string, branch: string, base: string): Promise; addWorktree(cwd: string, worktreePath: string, branch: string, options?: { detach?: boolean; }): Promise; removeWorktree(cwd: string, worktreePath: string): Promise; cherryPick(cwd: string, commit: string): Promise; abortCherryPick(cwd: string): Promise; applyPatch(cwd: string, patch: string): Promise; applyPatchWithReject(cwd: string, patch: string): Promise<{ stdout?: string; stderr?: string; error?: string; }>; stage(cwd: string, paths: string[]): Promise; commit(cwd: string, message: string, options?: { noVerify?: boolean; noGpgSign?: boolean; env?: NodeJS.ProcessEnv; }): Promise; merge(cwd: string, source: string, target: string, ensureClean?: boolean): Promise; abortMerge(cwd: string): Promise; resolveMergeConflicts(cwd: string, strategy: "theirs" | "ours", paths?: string[]): Promise; push(cwd: string, remote: string, branch: string): Promise; pull(cwd: string, remote: string, branch: string, ffOnly?: boolean): Promise; status(cwd: string): Promise; dirtyPaths(cwd: string): Promise; conflictPaths(cwd: string): Promise; ensureClean(cwd: string, ignoreDotMcoda?: boolean, ignorePaths?: string[]): Promise; resetHard(cwd: string, options?: { exclude?: string[]; }): Promise; restorePaths(cwd: string, paths: string[]): Promise; lastCommitSha(cwd: string): Promise; diff(cwd: string, base: string, head: string, paths?: string[]): Promise; } //# sourceMappingURL=VcsClient.d.ts.map