/**
 * Git Utilities
 * Handles git operations for version management
 */
export interface GitStatus {
    isRepo: boolean;
    isClean: boolean;
    currentBranch: string;
    uncommittedChanges: string[];
}
export interface GitVersion {
    tag: string;
    commit: string;
    date: string;
    message: string;
}
export declare class GitError extends Error {
    constructor(message: string);
}
export declare class Git {
    private cwd;
    constructor(workingDirectory?: string);
    /**
     * Execute a git command
     */
    private exec;
    /**
     * Check if current directory is a git repository
     */
    isGitRepo(): boolean;
    /**
     * Get git status information
     */
    getStatus(): GitStatus;
    /**
     * Check if repository is clean (no uncommitted changes)
     */
    isClean(): boolean;
    /**
     * Get current commit hash
     */
    getCurrentCommit(): string;
    /**
     * Create a git tag
     */
    createTag(tagName: string, message: string): void;
    /**
     * List all tags (versions)
     */
    listTags(): GitVersion[];
    /**
     * Get a specific tag
     */
    getTag(tagName: string): GitVersion | null;
    /**
     * Checkout a specific tag
     */
    checkout(tagName: string): void;
    /**
     * Get file content from a specific tag
     */
    getFileAtTag(tagName: string, filePath: string): string | null;
    /**
     * Create a commit with all changes
     */
    commit(message: string): void;
    /**
     * Get diff between two tags
     */
    diff(fromTag: string, toTag: string): string;
    /**
     * Validate semver format
     */
    static isValidSemver(version: string): boolean;
    /**
     * Compare two semver versions
     * Returns: -1 if v1 < v2, 0 if equal, 1 if v1 > v2
     */
    static compareSemver(v1: string, v2: string): number;
    /**
     * Get the latest version tag
     */
    getLatestVersion(): string | null;
}
//# sourceMappingURL=git.d.ts.map