define("scarabWildsApi", ["componentmodelComponentApi", "displayEngineApi", "gameLayoutApi", "clientkernelEventbusApi"],
    function(componentmodelComponentApi, displayEngineApi, 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 scarabWildsApi == 'undefined') {
            var scarabWildsApi = {};
        };
        scarabWildsApi.WildsDeclaration = function() {};
        scarabWildsApi.WildsDeclaration = ck_implements(scarabWildsApi.WildsDeclaration, componentmodelComponentApi.IComponentDeclaration);
        scarabWildsApi.WildsDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        scarabWildsApi.WildsDeclaration.__name__ = ["scarabWildsApi", "WildsDeclaration"];
        scarabWildsApi.WildsDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        scarabWildsApi.WildsDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        scarabWildsApi.WildsDeclaration.prototype.getImplementedPorts = function() {
            return [scarabWildsApi.IWildsImplementationPort];
        };
        scarabWildsApi.WildsDeclaration.prototype.getUsedPorts = function() {
            return [scarabWildsApi.IWildsPort, gameLayoutApi.IGameLayoutPort];
        };
        scarabWildsApi.WildsDeclaration.prototype.__class__ = scarabWildsApi.WildsDeclaration;

        scarabWildsApi.IWildsImplementationPort = function() {}
        scarabWildsApi.IWildsImplementationPort.prototype = {

            getShowBaseGameWilds: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowFreeSpinWilds: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowWildTrigger: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowLanding: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getTransition: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getSymbolState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getChoice: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        scarabWildsApi.IWildsPort = function() {}
        scarabWildsApi.IWildsPort.prototype = {

            getShowWildTrigger: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowBaseGameWilds: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowFreeSpinWilds: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getShowLanding: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getTransition: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getSymbolState: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getChoice: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        scarabWildsApi.WildsPort = function(bus) {
            this.choice = new clientkernelEventbusApi.Topic("wilds:choice");
            this.hide = new clientkernelEventbusApi.Topic("wilds:hide");
            this.symbolState = new clientkernelEventbusApi.Topic("wilds:symbolstate");
            this.state = new clientkernelEventbusApi.Topic("wilds:state");
            this.transition = new clientkernelEventbusApi.Topic("wilds:transition");
            this.showLanding = new clientkernelEventbusApi.Topic("wilds:showlanding");
            this.showWildTrigger = new clientkernelEventbusApi.Topic("wilds:showwin");
            this.showFreeSpinWilds = new clientkernelEventbusApi.Topic("wilds:showfreespinwilds");
            this.showBaseGameWilds = new clientkernelEventbusApi.Topic("wilds:showbasegamewilds");
            this.showBaseGameWilds.connect(bus);
            this.showFreeSpinWilds.connect(bus);
            this.showLanding.connect(bus);
            this.showWildTrigger.connect(bus);
            this.transition.connect(bus);
            this.state.connect(bus);
            this.symbolState.connect(bus);
            this.hide.connect(bus);
            this.choice.connect(bus);
        };
        scarabWildsApi.WildsPort = ck_implements(scarabWildsApi.WildsPort, scarabWildsApi.IWildsPort);
        scarabWildsApi.WildsPort = ck_implements(scarabWildsApi.WildsPort, scarabWildsApi.IWildsImplementationPort);
        scarabWildsApi.WildsPort.__interfaces__ = [scarabWildsApi.IWildsPort, scarabWildsApi.IWildsImplementationPort];
        scarabWildsApi.WildsPort.__name__ = ["scarabWildsApi", "WildsPort"];
        scarabWildsApi.WildsPort.prototype.showBaseGameWilds = null;
        scarabWildsApi.WildsPort.prototype.showFreeSpinWilds = null;
        scarabWildsApi.WildsPort.prototype.showWildTrigger = null;
        scarabWildsApi.WildsPort.prototype.showLanding = null;
        scarabWildsApi.WildsPort.prototype.transition = null;
        scarabWildsApi.WildsPort.prototype.state = null;
        scarabWildsApi.WildsPort.prototype.symbolState = null;
        scarabWildsApi.WildsPort.prototype.hide = null;
        scarabWildsApi.WildsPort.prototype.choice = null;
        scarabWildsApi.WildsPort.prototype.getShowBaseGameWilds = function() {
            return this.showBaseGameWilds;
        };
        scarabWildsApi.WildsPort.prototype.getShowFreeSpinWilds = function() {
            return this.showFreeSpinWilds;
        };
        scarabWildsApi.WildsPort.prototype.getShowWildTrigger = function() {
            return this.showWildTrigger;
        };
        scarabWildsApi.WildsPort.prototype.getHide = function() {
            return this.hide;
        };
        scarabWildsApi.WildsPort.prototype.getChoice = function() {
            return this.choice;
        };
        scarabWildsApi.WildsPort.prototype.getShowLanding = function() {
            return this.showLanding;
        };
        scarabWildsApi.WildsPort.prototype.getTransition = function() {
            return this.transition;
        };
        scarabWildsApi.WildsPort.prototype.getState = function() {
            return this.state;
        };
        scarabWildsApi.WildsPort.prototype.getSymbolState = function() {
            return this.symbolState;
        };
        scarabWildsApi.WildsPort.prototype.__class__ = scarabWildsApi.WildsPort;
        scarabWildsApi.WildsPortFactory = function() {};
        scarabWildsApi.WildsPortFactory = ck_implements(scarabWildsApi.WildsPortFactory, componentmodelComponentApi.IPortFactory);
        scarabWildsApi.WildsPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        scarabWildsApi.WildsPortFactory.__name__ = ["scarabWildsApi", "WildsPortFactory"];
        scarabWildsApi.WildsPortFactory.prototype.provide = function(channel) {
            return new scarabWildsApi.WildsPort(channel);
        };
        scarabWildsApi.WildsPortFactory.prototype["use"] = function(channel) {
            return new scarabWildsApi.WildsPort(channel);
        };
        scarabWildsApi.WildsPortFactory.prototype.__class__ = scarabWildsApi.WildsPortFactory;
        scarabWildsApi.ShowLandingPayload = function(type, position, state) {
            this.type = type;
            this.position = position;
            this.state = state;
        };
        scarabWildsApi.ShowLandingPayload.__name__ = ["scarabWildsApi", "ShowLandingPayload"];
        scarabWildsApi.ShowLandingPayload.prototype.type = null;
        scarabWildsApi.ShowLandingPayload.prototype.position = null;
        scarabWildsApi.ShowLandingPayload.prototype.state = null;
        scarabWildsApi.ShowLandingPayload.prototype.__class__ = scarabWildsApi.ShowLandingPayload;
        scarabWildsApi.ShowWildTriggerPayload = function(position, state) {
            this.position = position;
            this.state = state;
        };
        scarabWildsApi.ShowWildTriggerPayload.__name__ = ["scarabWildsApi", "ShowWildTriggerPayload"];
        scarabWildsApi.ShowWildTriggerPayload.prototype.position = null;
        scarabWildsApi.ShowWildTriggerPayload.prototype.state = null;
        scarabWildsApi.ShowWildTriggerPayload.prototype.__class__ = scarabWildsApi.ShowWildTriggerPayload;
        scarabWildsApi.ShowWildsPayload = function(content, state) {
            this.state = state;
            this.content = content;
        };
        scarabWildsApi.ShowWildsPayload.__name__ = ["scarabWildsApi", "ShowWildsPayload"];
        scarabWildsApi.ShowWildsPayload.prototype.content = null;
        scarabWildsApi.ShowWildsPayload.prototype.state = null;
        scarabWildsApi.ShowWildsPayload.prototype.__class__ = scarabWildsApi.ShowWildsPayload;
        scarabWildsApi.WildTransitionPayload = function(content, state, offset, alpha) {
            this.alpha = alpha;
            this.offset = offset;
            this.state = state;
            this.content = content;
        };
        scarabWildsApi.WildTransitionPayload.__name__ = ["scarabWildsApi", "WildTransitionPayload"];
        scarabWildsApi.WildTransitionPayload.prototype.alpha = null;
        scarabWildsApi.WildTransitionPayload.prototype.content = null;
        scarabWildsApi.WildTransitionPayload.prototype.state = null;
        scarabWildsApi.WildTransitionPayload.prototype.offset = null;
        scarabWildsApi.WildTransitionPayload.prototype.__class__ = scarabWildsApi.WildTransitionPayload;
        scarabWildsApi.WildsStatePayload = function(wildType, state) {
            this.wildType = wildType;
            this.state = state;
        };
        scarabWildsApi.WildsStatePayload.__name__ = ["scarabWildsApi", "WildsStatePayload"];
        scarabWildsApi.WildsStatePayload.prototype.wildType = null;
        scarabWildsApi.WildsStatePayload.prototype.state = null;
        scarabWildsApi.WildsStatePayload.prototype.__class__ = scarabWildsApi.WildsStatePayload;
        scarabWildsApi.WildsTypeEnum = {
            __ename__: ["scarabWildsApi", "WildsTypeEnum"],
            __constructs__: ["wilds", "wild_trigger"]
        };
        scarabWildsApi.WildsTypeEnum.wilds = ["wilds", 0];
        scarabWildsApi.WildsTypeEnum.wilds.toString = $estr;
        scarabWildsApi.WildsTypeEnum.wilds.__enum__ = scarabWildsApi.WildsTypeEnum;
        scarabWildsApi.WildsTypeEnum.wild_trigger = ["wild_trigger", 1];
        scarabWildsApi.WildsTypeEnum.wild_trigger.toString = $estr;
        scarabWildsApi.WildsTypeEnum.wild_trigger.__enum__ = scarabWildsApi.WildsTypeEnum;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        return {
            exports: scarabWildsApi
        };
    });
//# sourceURL=scarabWildsApi.js