/// <reference types="node" />
/// <reference types="node" />
/** The git errors which can be parsed from failed git commands. */
export declare enum GitError {
    BadConfigValue = 0,
    SSHKeyAuditUnverified = 1,
    SSHAuthenticationFailed = 2,
    SSHPermissionDenied = 3,
    HTTPSAuthenticationFailed = 4,
    RemoteDisconnection = 5,
    HostDown = 6,
    RebaseConflicts = 7,
    MergeConflicts = 8,
    HTTPSRepositoryNotFound = 9,
    SSHRepositoryNotFound = 10,
    PushNotFastForward = 11,
    BranchDeletionFailed = 12,
    DefaultBranchDeletionFailed = 13,
    RevertConflicts = 14,
    EmptyRebasePatch = 15,
    NoMatchingRemoteBranch = 16,
    NoExistingRemoteBranch = 17,
    NothingToCommit = 18,
    NoSubmoduleMapping = 19,
    SubmoduleRepositoryDoesNotExist = 20,
    InvalidSubmoduleSHA = 21,
    LocalPermissionDenied = 22,
    InvalidMerge = 23,
    InvalidRebase = 24,
    NonFastForwardMergeIntoEmptyHead = 25,
    PatchDoesNotApply = 26,
    BranchAlreadyExists = 27,
    BadRevision = 28,
    NotAGitRepository = 29,
    CannotMergeUnrelatedHistories = 30,
    LFSAttributeDoesNotMatch = 31,
    BranchRenameFailed = 32,
    PathDoesNotExist = 33,
    InvalidObjectName = 34,
    OutsideRepository = 35,
    LockFileAlreadyExists = 36,
    NoMergeToAbort = 37,
    LocalChangesOverwritten = 38,
    UnresolvedConflicts = 39,
    GPGFailedToSignData = 40,
    ConflictModifyDeletedInBranch = 41,
    PushWithFileSizeExceedingLimit = 42,
    HexBranchNameRejected = 43,
    ForcePushRejected = 44,
    InvalidRefLength = 45,
    ProtectedBranchRequiresReview = 46,
    ProtectedBranchForcePush = 47,
    ProtectedBranchDeleteRejected = 48,
    ProtectedBranchRequiredStatus = 49,
    PushWithPrivateEmail = 50,
    ConfigLockFileAlreadyExists = 51,
    RemoteAlreadyExists = 52,
    TagAlreadyExists = 53,
    MergeWithLocalChanges = 54,
    RebaseWithLocalChanges = 55,
    MergeCommitNoMainlineOption = 56,
    UnsafeDirectory = 57,
    PathExistsButNotInRef = 58
}
/** A mapping from regexes to the git error they identify. */
export declare const GitErrorRegexes: {
    [regexp: string]: GitError;
};
export declare class ExecError extends Error {
    readonly message: string;
    readonly stdout: Buffer | string;
    readonly stderr: Buffer | string;
    /**
     * The error.code property is a string label that identifies the kind of error
     *
     * See https://nodejs.org/api/errors.html#errorcode
     */
    readonly code?: string;
    /**
     * The signal that terminated the process
     */
    readonly signal?: string;
    /**
     * Whether the child process successfully received a signal from
     * subprocess.kill(). The killed property does not indicate that the child
     * process has been terminated.
     */
    readonly killed?: boolean;
    constructor(message: string, stdout: Buffer | string, stderr: Buffer | string, cause?: unknown);
}
