/**
 * Git操作のための低レベルRepository
 * execaの直接呼び出しをカプセル化
 */
export declare class GitRepository {
    execute(args: string[], options?: {
        cwd?: string;
    }): Promise<string>;
    isRepository(): Promise<boolean>;
    getRepositoryRoot(): Promise<string>;
    getCurrentBranch(): Promise<string | null>;
    getBranches(options: {
        remote?: boolean;
    }): Promise<string[]>;
    createBranch(branchName: string, baseBranch?: string): Promise<void>;
    deleteBranch(branchName: string, force?: boolean): Promise<void>;
    deleteRemoteBranch(branchName: string): Promise<void>;
    getStatus(options?: {
        cwd?: string;
    }): Promise<string>;
    hasChanges(workdir?: string): Promise<boolean>;
    fetch(options?: {
        all?: boolean;
        prune?: boolean;
    }): Promise<void>;
    push(options?: {
        upstream?: boolean;
        branch?: string;
    }): Promise<void>;
    commit(message: string, options?: {
        all?: boolean;
    }): Promise<void>;
    add(files: string[] | '.'): Promise<void>;
    stash(message?: string): Promise<void>;
    checkout(target: string): Promise<void>;
    getChangedFilesCount(workdir?: string): Promise<number>;
}
//# sourceMappingURL=git.repository.d.ts.map