define("betPanelApi", ["componentmodelComponentApi", "slotModelApi", "gameLayoutApi", "clientkernelEventbusApi", "moneyApi"],
    function(componentmodelComponentApi, slotModelApi, gameLayoutApi, clientkernelEventbusApi, moneyApi) {
        "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 betPanelApi == 'undefined') {
            var betPanelApi = {};
        };
        betPanelApi.BetPanelDeclaration = function() {};
        betPanelApi.BetPanelDeclaration = ck_implements(betPanelApi.BetPanelDeclaration, componentmodelComponentApi.IComponentDeclaration);
        betPanelApi.BetPanelDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        betPanelApi.BetPanelDeclaration.__name__ = ["betPanelApi", "BetPanelDeclaration"];
        betPanelApi.BetPanelDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        betPanelApi.BetPanelDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        betPanelApi.BetPanelDeclaration.prototype.getImplementedPorts = function() {
            return [betPanelApi.IBetPanelImplementationPort];
        };
        betPanelApi.BetPanelDeclaration.prototype.getUsedPorts = function() {
            return [slotModelApi.IInitializeGamePhasePort, slotModelApi.IOutcomePhasePort, gameLayoutApi.IGameLayoutPort];
        };
        betPanelApi.BetPanelDeclaration.prototype.__class__ = betPanelApi.BetPanelDeclaration;

        betPanelApi.IBetPanelPort = function() {}
        betPanelApi.IBetPanelPort.prototype = {

            setContent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setStake: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setBalance: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hideButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            enableButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            disableButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hidePaytableControl: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showPaytableControl: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setAutoPlayButtonState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setCustomButtonState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hideBetPanell: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showBetPanell: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNumberOffAutoSpinsLeft: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onButtonPressed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStakeChanged: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCoinValue: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        betPanelApi.IBetPanelImplementationPort = function() {}
        betPanelApi.IBetPanelImplementationPort.prototype = {

            setContent: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setStake: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setBalance: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hideButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            enableButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            disableButton: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hidePaytableControl: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showPaytableControl: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onButtonPressed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStakeChanged: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setAutoPlayButtonState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setCustomButtonState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hideBetPanell: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            showBetPanell: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNumberOffAutoSpinsLeft: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCoinValue: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        betPanelApi.BetPanelPort = function(bus) {
            this.coinValue = new clientkernelEventbusApi.Topic("betpanel:coinValue");
            this.setNumberOffAutoSpinsLeftTopic = new clientkernelEventbusApi.Topic("betpanel:setNumberOfAutoSpinsLeft");
            this.showBetPanellTopic = new clientkernelEventbusApi.Topic("betpanel:showBetPanell");
            this.hideBetPanellTopic = new clientkernelEventbusApi.Topic("betpanel:hideBetPanell");
            this.onStakeChangedTopic = new clientkernelEventbusApi.Topic("betpanel:onStakeChanged");
            this.onButtonPressedTopic = new clientkernelEventbusApi.Topic("betpanel:onButtonPressed");
            this.setCustomButtonStateTopic = new clientkernelEventbusApi.Topic("betpanel:setCustomButtonState");
            this.setAutoPlayButtonStateTopic = new clientkernelEventbusApi.Topic("betpanel:setAutoPlayButtonState");
            this.showPaytableControlTopic = new clientkernelEventbusApi.Topic("betpanel:showPaytableControl");
            this.hidePaytableControlTopic = new clientkernelEventbusApi.Topic("betpanel:hidePaytableControl");
            this.disableButtonTopic = new clientkernelEventbusApi.Topic("betpanel:disableButton");
            this.enableButtonTopic = new clientkernelEventbusApi.Topic("betpanel:enableButton");
            this.hideButtonTopic = new clientkernelEventbusApi.Topic("betpanel:hideButton");
            this.showButtonTopic = new clientkernelEventbusApi.Topic("betpanel:showButton");
            this.setBalanceTopic = new clientkernelEventbusApi.Topic("betpanel:setBalance");
            this.setStakeTopic = new clientkernelEventbusApi.Topic("betpanel:setStake");
            this.setContentTopic = new clientkernelEventbusApi.Topic("betpanel:setContent");
            this.setContentTopic.connect(bus);
            this.setStakeTopic.connect(bus);
            this.setBalanceTopic.connect(bus);
            this.showButtonTopic.connect(bus);
            this.hideButtonTopic.connect(bus);
            this.enableButtonTopic.connect(bus);
            this.disableButtonTopic.connect(bus);
            this.setAutoPlayButtonStateTopic.connect(bus);
            this.setCustomButtonStateTopic.connect(bus);
            this.hideBetPanellTopic.connect(bus);
            this.showBetPanellTopic.connect(bus);
            this.setNumberOffAutoSpinsLeftTopic.connect(bus);
            this.hidePaytableControlTopic.connect(bus);
            this.showPaytableControlTopic.connect(bus);
            this.onButtonPressedTopic.connect(bus);
            this.onStakeChangedTopic.connect(bus);
            this.coinValue.connect(bus);
        };
        betPanelApi.BetPanelPort = ck_implements(betPanelApi.BetPanelPort, betPanelApi.IBetPanelPort);
        betPanelApi.BetPanelPort = ck_implements(betPanelApi.BetPanelPort, betPanelApi.IBetPanelImplementationPort);
        betPanelApi.BetPanelPort.__interfaces__ = [betPanelApi.IBetPanelPort, betPanelApi.IBetPanelImplementationPort];
        betPanelApi.BetPanelPort.__name__ = ["betPanelApi", "BetPanelPort"];
        betPanelApi.BetPanelPort.prototype.setContentTopic = null;
        betPanelApi.BetPanelPort.prototype.setStakeTopic = null;
        betPanelApi.BetPanelPort.prototype.setBalanceTopic = null;
        betPanelApi.BetPanelPort.prototype.showButtonTopic = null;
        betPanelApi.BetPanelPort.prototype.hideButtonTopic = null;
        betPanelApi.BetPanelPort.prototype.enableButtonTopic = null;
        betPanelApi.BetPanelPort.prototype.disableButtonTopic = null;
        betPanelApi.BetPanelPort.prototype.hidePaytableControlTopic = null;
        betPanelApi.BetPanelPort.prototype.showPaytableControlTopic = null;
        betPanelApi.BetPanelPort.prototype.setAutoPlayButtonStateTopic = null;
        betPanelApi.BetPanelPort.prototype.setCustomButtonStateTopic = null;
        betPanelApi.BetPanelPort.prototype.onButtonPressedTopic = null;
        betPanelApi.BetPanelPort.prototype.onStakeChangedTopic = null;
        betPanelApi.BetPanelPort.prototype.hideBetPanellTopic = null;
        betPanelApi.BetPanelPort.prototype.showBetPanellTopic = null;
        betPanelApi.BetPanelPort.prototype.setNumberOffAutoSpinsLeftTopic = null;
        betPanelApi.BetPanelPort.prototype.coinValue = null;
        betPanelApi.BetPanelPort.prototype.setContent = function() {
            return this.setContentTopic;
        };
        betPanelApi.BetPanelPort.prototype.setStake = function() {
            return this.setStakeTopic;
        };
        betPanelApi.BetPanelPort.prototype.setBalance = function() {
            return this.setBalanceTopic;
        };
        betPanelApi.BetPanelPort.prototype.showButton = function() {
            return this.showButtonTopic;
        };
        betPanelApi.BetPanelPort.prototype.hideButton = function() {
            return this.hideButtonTopic;
        };
        betPanelApi.BetPanelPort.prototype.enableButton = function() {
            return this.enableButtonTopic;
        };
        betPanelApi.BetPanelPort.prototype.disableButton = function() {
            return this.disableButtonTopic;
        };
        betPanelApi.BetPanelPort.prototype.hidePaytableControl = function() {
            return this.hidePaytableControlTopic;
        };
        betPanelApi.BetPanelPort.prototype.showPaytableControl = function() {
            return this.showPaytableControlTopic;
        };
        betPanelApi.BetPanelPort.prototype.onButtonPressed = function() {
            return this.onButtonPressedTopic;
        };
        betPanelApi.BetPanelPort.prototype.onStakeChanged = function() {
            return this.onStakeChangedTopic;
        };
        betPanelApi.BetPanelPort.prototype.setAutoPlayButtonState = function() {
            return this.setAutoPlayButtonStateTopic;
        };
        betPanelApi.BetPanelPort.prototype.setCustomButtonState = function() {
            return this.setCustomButtonStateTopic;
        };
        betPanelApi.BetPanelPort.prototype.hideBetPanell = function() {
            return this.hideBetPanellTopic;
        };
        betPanelApi.BetPanelPort.prototype.showBetPanell = function() {
            return this.showBetPanellTopic;
        };
        betPanelApi.BetPanelPort.prototype.setNumberOffAutoSpinsLeft = function() {
            return this.setNumberOffAutoSpinsLeftTopic;
        };
        betPanelApi.BetPanelPort.prototype.getCoinValue = function() {
            return this.coinValue;
        };
        betPanelApi.BetPanelPort.prototype.__class__ = betPanelApi.BetPanelPort;
        betPanelApi.BetPanelPortFactory = function() {};
        betPanelApi.BetPanelPortFactory = ck_implements(betPanelApi.BetPanelPortFactory, componentmodelComponentApi.IPortFactory);
        betPanelApi.BetPanelPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        betPanelApi.BetPanelPortFactory.__name__ = ["betPanelApi", "BetPanelPortFactory"];
        betPanelApi.BetPanelPortFactory.prototype.provide = function(channel) {
            return new betPanelApi.BetPanelPort(channel);
        };
        betPanelApi.BetPanelPortFactory.prototype["use"] = function(channel) {
            return new betPanelApi.BetPanelPort(channel);
        };
        betPanelApi.BetPanelPortFactory.prototype.__class__ = betPanelApi.BetPanelPortFactory;
        betPanelApi.BetPanelContentPayload = function(win, stake, balance) {
            this.balance = balance;
            this.win = win;
            this.stake = stake;
        };
        betPanelApi.BetPanelContentPayload.__name__ = ["betPanelApi", "BetPanelContentPayload"];
        betPanelApi.BetPanelContentPayload.prototype.balance = null;
        betPanelApi.BetPanelContentPayload.prototype.win = null;
        betPanelApi.BetPanelContentPayload.prototype.stake = null;
        betPanelApi.BetPanelContentPayload.prototype.__class__ = betPanelApi.BetPanelContentPayload;
        betPanelApi.CustomButtonStatePayload = function(button, state) {
            this.button = button;
            this.state = state;
        };
        betPanelApi.CustomButtonStatePayload.__name__ = ["betPanelApi", "CustomButtonStatePayload"];
        betPanelApi.CustomButtonStatePayload.prototype.button = null;
        betPanelApi.CustomButtonStatePayload.prototype.state = null;
        betPanelApi.CustomButtonStatePayload.prototype.__class__ = betPanelApi.CustomButtonStatePayload;
        betPanelApi.EButton = {
            __ename__: ["betPanelApi", "EButton"],
            __constructs__: ["CUSTOM", "SPIN", "STOP", "SKIP", "HELP", "PAYTABLE", "PAYTABLE_NEXT", "PAYTABLE_PREVIOUS", "PAYTABLE_CLOSE", "SOUND_ON", "SOUND_OFF", "TOTAL_BET", "AUTO_PLAY_BUTTON", "AUTO_PLAY_BUTTON_PLAY", "AUTO_PLAY_BUTTON_STOP", "MAX_BET"]
        };
        betPanelApi.EButton.PAYTABLE = ["PAYTABLE", 5];
        betPanelApi.EButton.PAYTABLE.toString = $estr;
        betPanelApi.EButton.PAYTABLE.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.SOUND_OFF = ["SOUND_OFF", 10];
        betPanelApi.EButton.SOUND_OFF.toString = $estr;
        betPanelApi.EButton.SOUND_OFF.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.SOUND_ON = ["SOUND_ON", 9];
        betPanelApi.EButton.SOUND_ON.toString = $estr;
        betPanelApi.EButton.SOUND_ON.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.STOP = ["STOP", 2];
        betPanelApi.EButton.STOP.toString = $estr;
        betPanelApi.EButton.STOP.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.PAYTABLE_CLOSE = ["PAYTABLE_CLOSE", 8];
        betPanelApi.EButton.PAYTABLE_CLOSE.toString = $estr;
        betPanelApi.EButton.PAYTABLE_CLOSE.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.SPIN = ["SPIN", 1];
        betPanelApi.EButton.SPIN.toString = $estr;
        betPanelApi.EButton.SPIN.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.TOTAL_BET = ["TOTAL_BET", 11];
        betPanelApi.EButton.TOTAL_BET.toString = $estr;
        betPanelApi.EButton.TOTAL_BET.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.PAYTABLE_PREVIOUS = ["PAYTABLE_PREVIOUS", 7];
        betPanelApi.EButton.PAYTABLE_PREVIOUS.toString = $estr;
        betPanelApi.EButton.PAYTABLE_PREVIOUS.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.AUTO_PLAY_BUTTON_PLAY = ["AUTO_PLAY_BUTTON_PLAY", 13];
        betPanelApi.EButton.AUTO_PLAY_BUTTON_PLAY.toString = $estr;
        betPanelApi.EButton.AUTO_PLAY_BUTTON_PLAY.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.AUTO_PLAY_BUTTON = ["AUTO_PLAY_BUTTON", 12];
        betPanelApi.EButton.AUTO_PLAY_BUTTON.toString = $estr;
        betPanelApi.EButton.AUTO_PLAY_BUTTON.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.AUTO_PLAY_BUTTON_STOP = ["AUTO_PLAY_BUTTON_STOP", 14];
        betPanelApi.EButton.AUTO_PLAY_BUTTON_STOP.toString = $estr;
        betPanelApi.EButton.AUTO_PLAY_BUTTON_STOP.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.SKIP = ["SKIP", 3];
        betPanelApi.EButton.SKIP.toString = $estr;
        betPanelApi.EButton.SKIP.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.MAX_BET = ["MAX_BET", 15];
        betPanelApi.EButton.MAX_BET.toString = $estr;
        betPanelApi.EButton.MAX_BET.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.PAYTABLE_NEXT = ["PAYTABLE_NEXT", 6];
        betPanelApi.EButton.PAYTABLE_NEXT.toString = $estr;
        betPanelApi.EButton.PAYTABLE_NEXT.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.CUSTOM = ["CUSTOM", 0];
        betPanelApi.EButton.CUSTOM.toString = $estr;
        betPanelApi.EButton.CUSTOM.__enum__ = betPanelApi.EButton;
        betPanelApi.EButton.HELP = ["HELP", 4];
        betPanelApi.EButton.HELP.toString = $estr;
        betPanelApi.EButton.HELP.__enum__ = betPanelApi.EButton;
        betPanelApi.SetAutoPlayButtonState = {
            __ename__: ["betPanelApi", "SetAutoPlayButtonState"],
            __constructs__: ["PLAY_BUTTON_STATE", "STOP_BUTTON_STATE"]
        };
        betPanelApi.SetAutoPlayButtonState.STOP_BUTTON_STATE = ["STOP_BUTTON_STATE", 1];
        betPanelApi.SetAutoPlayButtonState.STOP_BUTTON_STATE.toString = $estr;
        betPanelApi.SetAutoPlayButtonState.STOP_BUTTON_STATE.__enum__ = betPanelApi.SetAutoPlayButtonState;
        betPanelApi.SetAutoPlayButtonState.PLAY_BUTTON_STATE = ["PLAY_BUTTON_STATE", 0];
        betPanelApi.SetAutoPlayButtonState.PLAY_BUTTON_STATE.toString = $estr;
        betPanelApi.SetAutoPlayButtonState.PLAY_BUTTON_STATE.__enum__ = betPanelApi.SetAutoPlayButtonState;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        betPanelApi.CustomButtonStatePayload.CONNECTING_STATE = "CONNECTING_STATE";;
        betPanelApi.CustomButtonStatePayload.CONNECTED_STATE = "CONNECTED_STATE";;
        return {
            exports: betPanelApi
        };
    });
//# sourceURL=slotBetPanelApi.js