var econda;
(function (econda) {
    var tagmanager;
    (function (tagmanager) {
        var event;
        (function (event_1) {
            /**
             * This class will replace dataLayer.event array push method.
             */
            var EventProcessor = (function () {
                function EventProcessor(container, eventsArray) {
                    this._eventsArray = eventsArray;
                    this._container = container;
                }
                EventProcessor.prototype.overwritePushMethod = function () {
                    var ep = this;
                    this._eventsArray.push = function () {
                        var event = [];
                        for (var _i = 0; _i < arguments.length; _i++) {
                            event[_i - 0] = arguments[_i];
                        }
                        var ret = Array.prototype.push.apply(this, arguments);
                        ep._fireEvent.apply(ep, arguments);
                        return ret;
                    };
                };
                EventProcessor.prototype._fireEvent = function (event) {
                    this._container.executeEvent.call(this._container, event);
                };
                return EventProcessor;
            }());
            event_1.EventProcessor = EventProcessor;
        })(event = tagmanager.event || (tagmanager.event = {}));
    })(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));