import type { RushConfigurationProject } from '../api/RushConfigurationProject';
import type { Git } from './Git';
export declare class PublishGit {
    private readonly _targetBranch;
    private readonly _gitPath;
    private readonly _gitTagSeparator;
    constructor(git: Git, targetBranch: string | undefined);
    checkoutAsync(branchName: string | undefined, createBranch?: boolean): Promise<void>;
    mergeAsync(branchName: string, verify?: boolean): Promise<void>;
    deleteBranchAsync(branchName: string | undefined, hasRemote?: boolean, verify?: boolean): Promise<void>;
    pullAsync(verify?: boolean): Promise<void>;
    fetchAsync(): Promise<void>;
    addChangesAsync(pathspec?: string, workingDirectory?: string): Promise<void>;
    addTagAsync(shouldExecute: boolean, packageName: string, packageVersion: string, commitId: string | undefined, preReleaseName?: string): Promise<void>;
    hasTagAsync(packageConfig: RushConfigurationProject): Promise<boolean>;
    commitAsync(commitMessage: string, verify?: boolean): Promise<void>;
    pushAsync(branchName: string | undefined, verify?: boolean, followTags?: boolean): Promise<void>;
}
//# sourceMappingURL=PublishGit.d.ts.map