/**
 * Git Utilities for SpecWeave
 *
 * Provides utilities for:
 * - Getting recent commits
 * - Generating commit URLs for different providers
 * - Finding PRs containing commits
 * - Detecting repository information
 */
export interface GitCommit {
    sha: string;
    shortSha: string;
    message: string;
    author: string;
    date: Date;
    url?: string;
}
export interface GitRepository {
    provider: 'github' | 'gitlab' | 'bitbucket' | 'azure' | 'unknown';
    owner: string;
    repo: string;
    url: string;
}
export interface PullRequest {
    number: number;
    title: string;
    url: string;
    state: 'open' | 'closed' | 'merged';
}
/**
 * Get recent commits since a specific date/SHA
 */
export declare function getRecentCommits(since?: string, sinceCommit?: string, cwd?: string): Promise<GitCommit[]>;
/**
 * Get commits between two refs (e.g., last sync to HEAD)
 */
export declare function getCommitsBetween(fromRef: string, toRef?: string, cwd?: string): Promise<GitCommit[]>;
/**
 * Detect repository information from git remote
 */
export declare function detectRepository(remoteName?: string, cwd?: string): Promise<GitRepository | null>;
/**
 * Parse git remote URL to extract provider, owner, repo
 */
export declare function parseGitRemoteUrl(url: string): GitRepository | null;
/**
 * Generate commit URL for different providers
 */
export declare function getCommitUrl(commit: GitCommit, repo: GitRepository): string;
/**
 * Find PR containing a commit (GitHub only for now)
 */
export declare function findPRForCommit(commitSha: string, owner: string, repo: string): Promise<PullRequest | null>;
/**
 * Get last sync commit SHA from metadata
 */
export declare function getLastSyncCommit(metadataPath: string): Promise<string | null>;
/**
 * Update last sync commit in metadata
 */
export declare function updateLastSyncCommit(metadataPath: string, commitSha: string): Promise<void>;
/**
 * Get current HEAD commit SHA
 */
export declare function getCurrentCommitSha(cwd?: string): Promise<string>;
/**
 * Check if working directory is clean
 */
export declare function isWorkingDirectoryClean(cwd?: string): Promise<boolean>;
/**
 * Get current branch name
 */
export declare function getCurrentBranch(cwd?: string): Promise<string>;
//# sourceMappingURL=git-utils.d.ts.map