define("tripleRedHotSevensIXFPopupsApi", ["componentmodelComponentApi", "gameLayoutApi", "clientkernelEventbusApi"],
    function(componentmodelComponentApi, gameLayoutApi, clientkernelEventbusApi) {
        "use strict";

        function $iterator(o) {
            if (o instanceof Array) return function() {
                return {
                    cur: 0,
                    arr: o,
                    hasNext: function() {
                        return this.cur < this.arr.length;
                    },
                    next: function() {
                        return this.arr[this.cur++];
                    }
                };
            };
            return typeof(o.iterator) == 'function' ? $bind(o, o.iterator) : o.iterator;
        };;
        var $fid = 0;

        function $bind(o, m) {
            if (m == null) return null;
            if (m.__id__ == null) m.__id__ = $fid++;
            var f;
            if (o.hx__closures__ == null) o.hx__closures__ = {};
            else f = o.hx__closures__[m.__id__];
            if (f == null) {
                f = function() {
                    return f.method.apply(f.scope, arguments);
                };
                f.scope = o;
                f.method = m;
                o.hx__closures__[m.__id__] = f;
            }
            return f;
        };
        var $_;
        var $estr = function() {
            return _hcmn_.js_Boot.__string_rec(this, '');
        };
        if (typeof tripleRedHotSevensIXFPopupsApi == 'undefined') {
            var tripleRedHotSevensIXFPopupsApi = {};
        };
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration = function() {};
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration = ck_implements(tripleRedHotSevensIXFPopupsApi.PopupsDeclaration, componentmodelComponentApi.IComponentDeclaration);
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.__name__ = ["tripleRedHotSevensIXFPopupsApi", "PopupsDeclaration"];
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.prototype.getImplementedPorts = function() {
            return [tripleRedHotSevensIXFPopupsApi.IPopupsImplementationPort];
        };
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.prototype.getUsedPorts = function() {
            return [tripleRedHotSevensIXFPopupsApi.IPopupsPort, gameLayoutApi.IGameLayoutPort];
        };
        tripleRedHotSevensIXFPopupsApi.PopupsDeclaration.prototype.__class__ = tripleRedHotSevensIXFPopupsApi.PopupsDeclaration;

        tripleRedHotSevensIXFPopupsApi.IPopupsImplementationPort = function() {}
        tripleRedHotSevensIXFPopupsApi.IPopupsImplementationPort.prototype = {

            getShowAwardCap: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowFreeSpinIntro: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowFreeSpinOutro: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowRetrigger: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onShowAwardCap: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onShowRetrigger: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onShowFreeSpinIntro: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onShowFreeSpinOutro: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onHide: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            getButtonEnabled: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getButtonClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            publishButtonEnabled: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            publishButtonClicked: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            }
        };

        tripleRedHotSevensIXFPopupsApi.IPopupsPort = function() {}
        tripleRedHotSevensIXFPopupsApi.IPopupsPort.prototype = {

            showAwardCap: function(maxValue, isFreeSpinsEnded) {
                return {
                    arguments: ["string", "boolean"],
                    returns: "void"
                };
            },
            showFreeSpinIntro: function(freeSpinsAwarded) {
                return {
                    arguments: ["number"],
                    returns: "void"
                };
            },
            showFreeSpinOutro: function(winAmount) {
                return {
                    arguments: ["string"],
                    returns: "void"
                };
            },
            showRetrigger: function(freespinsTotal, freeSpinsAdded, isMaxAwarded) {
                return {
                    arguments: ["number", "number", "boolean"],
                    returns: "void"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "void"
                };
            },
            getButtonEnabled: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getButtonClicked: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onButtonEnabled: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            onButtonClicked: function(callback) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            }
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort = function(bus) {
            this.buttonClickedTopic = new clientkernelEventbusApi.Topic("popup:buttonClicked");
            this.buttonEnabledTopic = new clientkernelEventbusApi.Topic("popup:buttonEnabled");
            this.hideTopic = new clientkernelEventbusApi.Topic("popups:hide");
            this.showFreeSpinOutroTopic = new clientkernelEventbusApi.Topic("popups:showFreeSpinOutro");
            this.showFreeSpinIntroTopic = new clientkernelEventbusApi.Topic("popups:showFreeSpinIntro");
            this.showRetriggerTopic = new clientkernelEventbusApi.Topic("popups:showRetrigger");
            this.showAwardCapTopic = new clientkernelEventbusApi.Topic("popups:showAwardCap");
            this.showAwardCapTopic.connect(bus);
            this.showRetriggerTopic.connect(bus);
            this.showFreeSpinIntroTopic.connect(bus);
            this.showFreeSpinOutroTopic.connect(bus);
            this.hideTopic.connect(bus);
            this.buttonEnabledTopic.connect(bus);
            this.buttonClickedTopic.connect(bus);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort = ck_implements(tripleRedHotSevensIXFPopupsApi.PopupsPort, tripleRedHotSevensIXFPopupsApi.IPopupsPort);
        tripleRedHotSevensIXFPopupsApi.PopupsPort = ck_implements(tripleRedHotSevensIXFPopupsApi.PopupsPort, tripleRedHotSevensIXFPopupsApi.IPopupsImplementationPort);
        tripleRedHotSevensIXFPopupsApi.PopupsPort.__interfaces__ = [tripleRedHotSevensIXFPopupsApi.IPopupsPort, tripleRedHotSevensIXFPopupsApi.IPopupsImplementationPort];
        tripleRedHotSevensIXFPopupsApi.PopupsPort.__name__ = ["tripleRedHotSevensIXFPopupsApi", "PopupsPort"];
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showAwardCapTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showRetriggerTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showFreeSpinIntroTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showFreeSpinOutroTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.hideTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.buttonEnabledTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.buttonClickedTopic = null;
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getShowRetrigger = function() {
            return this.showRetriggerTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showRetrigger = function(freespinsTotal, freeSpinsAdded, isMaxAwarded) {
            this.showRetriggerTopic.publish(new tripleRedHotSevensIXFPopupsApi.RetriggerPayload(freespinsTotal, freeSpinsAdded, isMaxAwarded));
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getShowFreeSpinIntro = function() {
            return this.showFreeSpinIntroTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showFreeSpinIntro = function(freeSpinsAwarded) {
            this.showFreeSpinIntroTopic.publish(freeSpinsAwarded);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getShowFreeSpinOutro = function() {
            return this.showFreeSpinOutroTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showFreeSpinOutro = function(winAmount) {
            this.showFreeSpinOutroTopic.publish(winAmount);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getShowAwardCap = function() {
            return this.showAwardCapTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.showAwardCap = function(maxValue, isFreeSpinsEnded) {
            this.showAwardCapTopic.publish(new tripleRedHotSevensIXFPopupsApi.AwardCapPayload(maxValue, isFreeSpinsEnded));
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getHide = function() {
            return this.hideTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getButtonClicked = function() {
            return this.buttonClickedTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.getButtonEnabled = function() {
            return this.buttonEnabledTopic;
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.hide = function() {
            this.hideTopic.publish(null);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onShowAwardCap = function(callback) {
            return this.showAwardCapTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onShowRetrigger = function(callback) {
            return this.showRetriggerTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onShowFreeSpinIntro = function(callback) {
            return this.showFreeSpinIntroTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onShowFreeSpinOutro = function(callback) {
            return this.showFreeSpinOutroTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onHide = function(callback) {
            return this.hideTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onButtonEnabled = function(callback) {
            return this.buttonEnabledTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.onButtonClicked = function(callback) {
            return this.buttonClickedTopic.subscribe(callback);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.publishButtonEnabled = function() {
            this.buttonEnabledTopic.publish(null);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.publishButtonClicked = function() {
            this.buttonClickedTopic.publish(null);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPort.prototype.__class__ = tripleRedHotSevensIXFPopupsApi.PopupsPort;
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory = function() {};
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory = ck_implements(tripleRedHotSevensIXFPopupsApi.PopupsPortFactory, componentmodelComponentApi.IPortFactory);
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory.__name__ = ["tripleRedHotSevensIXFPopupsApi", "PopupsPortFactory"];
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory.prototype.provide = function(channel) {
            return new tripleRedHotSevensIXFPopupsApi.PopupsPort(channel);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory.prototype["use"] = function(channel) {
            return new tripleRedHotSevensIXFPopupsApi.PopupsPort(channel);
        };
        tripleRedHotSevensIXFPopupsApi.PopupsPortFactory.prototype.__class__ = tripleRedHotSevensIXFPopupsApi.PopupsPortFactory;
        tripleRedHotSevensIXFPopupsApi.AwardCapPayload = function(maxValue, isFreeSpinsEnded) {
            this.maxValue = maxValue;
            this.isFreeSpinsEnded = isFreeSpinsEnded;
        };
        tripleRedHotSevensIXFPopupsApi.AwardCapPayload.__name__ = ["tripleRedHotSevensIXFPopupsApi", "AwardCapPayload"];
        tripleRedHotSevensIXFPopupsApi.AwardCapPayload.prototype.maxValue = null;
        tripleRedHotSevensIXFPopupsApi.AwardCapPayload.prototype.isFreeSpinsEnded = null;
        tripleRedHotSevensIXFPopupsApi.AwardCapPayload.prototype.__class__ = tripleRedHotSevensIXFPopupsApi.AwardCapPayload;
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload = function(freespinsTotal, freeSpinsAdded, isMaxAwarded) {
            this.freespinsTotal = freespinsTotal;
            this.freeSpinsAdded = freeSpinsAdded;
            this.isMaxAwarded = isMaxAwarded;
        };
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload.__name__ = ["tripleRedHotSevensIXFPopupsApi", "RetriggerPayload"];
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload.prototype.freespinsTotal = null;
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload.prototype.freeSpinsAdded = null;
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload.prototype.isMaxAwarded = null;
        tripleRedHotSevensIXFPopupsApi.RetriggerPayload.prototype.__class__ = tripleRedHotSevensIXFPopupsApi.RetriggerPayload;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

        haxe.IMap = function() {}
        haxe.IMap.prototype = {

        };
        return {
            exports: tripleRedHotSevensIXFPopupsApi
        };
    });