export declare function hasUncommittedChanges(cwd: string): Promise; /** * Get the current HEAD commit hash. * Returns empty string if not a git repo or no commits yet. */ export declare function getHeadCommitHash(cwd: string): Promise; /** * Detect whether an iteration produced any changes — either uncommitted * working tree changes OR new commits since `startHash`. * * This is critical because agents like Claude Code auto-commit during their * run. If we only check `git status`, committed work looks like "no changes" * and trips the stall detector / skips build validation. */ export declare function hasIterationChanges(cwd: string, startHash: string): Promise; export declare function gitCommit(cwd: string, message: string): Promise; export declare function gitPush(cwd: string, branch?: string): Promise; export declare function getCurrentBranch(cwd: string): Promise; export declare function getDefaultBranch(cwd: string): Promise; export declare function createBranch(cwd: string, branchName: string): Promise; export interface PROptions { title: string; body: string; base?: string; labels?: string[]; } export declare function createPullRequest(cwd: string, options: PROptions): Promise; export declare function isGitRepo(cwd: string): Promise; export declare function initGitRepo(cwd: string): Promise; export declare function getRecentCommits(cwd: string, count?: number): Promise; export type SemanticPrType = 'feat' | 'fix' | 'docs' | 'chore' | 'refactor' | 'test' | 'build' | 'perf' | 'ci'; export interface SemanticTitleOptions { type?: SemanticPrType; scope?: string; isBuildMode?: boolean; } /** * Generate a semantic PR title from a task description * Follows conventional commit format: type(scope): description */ export declare function generateSemanticPrTitle(task: string, options?: SemanticTitleOptions): string; export interface IssueRef { owner: string; repo: string; number: number; } export interface PrBodyOptions { task: string; commits: string[]; issueRef?: IssueRef; iterations?: number; } /** * Format PR body with proper markdown and issue linking */ export declare function formatPrBody(options: PrBodyOptions): string; //# sourceMappingURL=git.d.ts.map