"use strict";
/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.RevertibleResult = exports.RevertibleStatus = exports.RevertibleKind = void 0;
/**
 * The type of revertible commit.
 *
 * @internal
 */
var RevertibleKind;
(function (RevertibleKind) {
    /** A typical local commit */
    RevertibleKind[RevertibleKind["Default"] = 0] = "Default";
    /** A revertible that is the result of an undo. */
    RevertibleKind[RevertibleKind["Undo"] = 1] = "Undo";
    /** A revertible that is the result of a redo. */
    RevertibleKind[RevertibleKind["Redo"] = 2] = "Redo";
    /**
     * A revertible that is the result of a rebase and should replace a previously generated revertible.
     * todo: improve error reporting in this case
     */
    RevertibleKind[RevertibleKind["Rebase"] = 3] = "Rebase";
})(RevertibleKind || (exports.RevertibleKind = RevertibleKind = {}));
/**
 * The status of a {@link Revertible}.
 *
 * @internal
 */
var RevertibleStatus;
(function (RevertibleStatus) {
    /** The revertible can be reverted. */
    RevertibleStatus[RevertibleStatus["Valid"] = 0] = "Valid";
    /** The revertible has been disposed. Reverting it will have no effect. */
    RevertibleStatus[RevertibleStatus["Disposed"] = 1] = "Disposed";
})(RevertibleStatus || (exports.RevertibleStatus = RevertibleStatus = {}));
/**
 * The result of a revert operation.
 *
 * @internal
 */
var RevertibleResult;
(function (RevertibleResult) {
    /** The operation was successful. */
    RevertibleResult[RevertibleResult["Success"] = 0] = "Success";
    /** The operation failed. This occurs when attempting an operation on a disposed revertible */
    RevertibleResult[RevertibleResult["Failure"] = 1] = "Failure";
})(RevertibleResult || (exports.RevertibleResult = RevertibleResult = {}));
//# sourceMappingURL=revertible.js.map