/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import * as tslib_1 from "tslib";
import { IEnumerator$1_$type, IEnumerator_$type, Base, getBoxIfEnum, markType } from "igniteui-react-core/ES5/type";
import { KeyValuePair$2 } from "igniteui-react-core/ES5/KeyValuePair$2";
var OrderedDictionary_Enumerator$2 = /** @class */ (function (_super) {
    tslib_1.__extends(OrderedDictionary_Enumerator$2, _super);
    function OrderedDictionary_Enumerator$2($tKey, $tValue, a) {
        var _this = _super.call(this) || this;
        _this.$tKey = null;
        _this.$tValue = null;
        _this.b = 0;
        _this.a = null;
        _this.$tKey = $tKey;
        _this.$tValue = $tValue;
        _this.$type = _this.$type.specialize(_this.$tKey, _this.$tValue);
        _this.b = -1;
        _this.a = a;
        return _this;
    }
    Object.defineProperty(OrderedDictionary_Enumerator$2.prototype, "currentObject", {
        get: function () {
            return getBoxIfEnum(this.$tValue, this.a.item(this.a.item1(this.b)));
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(OrderedDictionary_Enumerator$2.prototype, "current", {
        get: function () {
            var a = this.a.item1(this.b);
            return new KeyValuePair$2(this.$tKey, this.$tValue, 1, a, this.a.item(a));
        },
        enumerable: true,
        configurable: true
    });
    OrderedDictionary_Enumerator$2.prototype.moveNext = function () {
        this.b++;
        return this.b < this.a.count;
    };
    OrderedDictionary_Enumerator$2.prototype.reset = function () {
        this.b = -1;
    };
    OrderedDictionary_Enumerator$2.prototype.dispose = function () {
    };
    OrderedDictionary_Enumerator$2.$t = markType(OrderedDictionary_Enumerator$2, 'OrderedDictionary_Enumerator$2', Base.$, [IEnumerator$1_$type.specialize(KeyValuePair$2.$.specialize(0, 1)), IEnumerator_$type]);
    return OrderedDictionary_Enumerator$2;
}(Base));
export { OrderedDictionary_Enumerator$2 };
