import type { Config, RepoSpec } from '../types/config';
type GitConfig = Pick<Config, 'accessToken' | 'userName' | 'email'> & {
    repoSpec: RepoSpec;
    withClone?: boolean;
};
type NotStartsWithGit<T extends string> = T extends `git${string}` ? never : T;
export declare class Git {
    #private;
    private readonly config;
    constructor(config: GitConfig);
    get dirName(): string;
    exec<T extends string>(command: NotStartsWithGit<T>): string;
    clone(): void;
    get repoUrl(): string;
}
export declare class GitCommandError extends Error {
    readonly command: string;
    readonly exitCode: number;
    readonly stderr: string;
    readonly stdout: string;
    constructor(command: string, exitCode: number, stderr: string, stdout: string);
}
export {};
