/**
 * Git metadata structure
 */
export interface GitMetadata {
    branch?: string;
    commit?: {
        hash: string;
        message?: string;
        author?: string;
        email?: string;
        timestamp?: string;
    };
    repository?: {
        url?: string;
        name?: string;
    };
    pr?: {
        id?: string;
        status?: string;
        title?: string;
        url?: string;
    };
}
/**
 * Collector for Git metadata
 */
export declare class GitCollector {
    private readonly git;
    private readonly repoPath;
    constructor(repoPath?: string);
    /**
     * Gather Git metadata: branch, latest commit, and remote repository info
     * Uses git commands as primary source, falls back to environment variables in CI/CD
     */
    getMetadata(): Promise<GitMetadata>;
    /**
     * Attempt to gather metadata using git commands (existing functionality)
     */
    private getGitCommandMetadata;
    /**
     * Extract git metadata from environment variables (CI/CD contexts)
     */
    private getEnvironmentMetadata;
    /**
     * Extract branch name from git ref (e.g., "refs/heads/main" -> "main")
     */
    private extractBranchFromRef;
    /**
     * Extract repository name from URL (e.g., "https://github.com/user/repo.git" -> "user/repo")
     */
    private extractRepoNameFromUrl;
    /**
     * Fetch the HEAD commit information from a specific branch to get the actual commit message
     * This avoids merge commit messages in PR scenarios
     */
    private fetchGitHubBranchCommit;
    /**
     * Fetch pull request details from GitHub API to get PR title and status
     */
    private fetchGitHubPullRequestDetails;
}
//# sourceMappingURL=git.d.ts.map