/** Repo toplevel (git's forward-slash absolute path). Throws if not a git repo. */ export declare function gitToplevel(cwd: string): Promise; /** * Absolute path to the repo's git hooks directory. Uses `git rev-parse * --git-path hooks`, which resolves correctly for worktrees and submodules * (where `.git` is a file, not a dir). Throws if not a git repo. */ export declare function gitHooksDir(cwd: string): Promise; /** Repo-relative (posix) paths of files staged in the index. */ export declare function getStagedFiles(cwd: string): Promise; /** * Repo-relative (posix) paths of files changed since `base` (three-dot: changes * on HEAD's side of the merge-base with `base`). Throws if `base` cannot be * resolved — the CLI surfaces a clear error suggesting `--base`. */ export declare function getChangedFiles(cwd: string, base: string): Promise; /** * Repo-relative (posix) paths of files changed in the working tree but not yet * committed: tracked modifications vs HEAD (staged or not) plus untracked * files. This is the right scope for verifying a coding agent's edits, which * live in the working tree uncommitted. `gitOrNull` on the HEAD diff tolerates * a repo with no commits yet (then only untracked files are reported). */ export declare function getUncommittedFiles(cwd: string): Promise; export declare function ensureClean(cwd: string, allowDirty: boolean): Promise; export declare function createBranch(cwd: string, baseName: string): Promise; export declare function commitAll(cwd: string, message: string): Promise; export declare function hasTestScript(cwd: string): Promise;