define("reelsApi", ["componentmodelComponentApi", "gameLayoutApi", "clientkernelEventbusApi", "clientkernelModulesApi"],
    function(componentmodelComponentApi, gameLayoutApi, clientkernelEventbusApi, clientkernelModulesApi) {
        "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 haxe == 'undefined') {
            var haxe = {};
        };

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

        };
        if (typeof reelsApi == 'undefined') {
            var reelsApi = {};
        };
        reelsApi.ReelsDeclaration = function() {};
        reelsApi.ReelsDeclaration = ck_implements(reelsApi.ReelsDeclaration, componentmodelComponentApi.IComponentDeclaration);
        reelsApi.ReelsDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        reelsApi.ReelsDeclaration.__name__ = ["reelsApi", "ReelsDeclaration"];
        reelsApi.ReelsDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        reelsApi.ReelsDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        reelsApi.ReelsDeclaration.prototype.getImplementedPorts = function() {
            return [reelsApi.IReelsImplementationPort];
        };
        reelsApi.ReelsDeclaration.prototype.getUsedPorts = function() {
            return [gameLayoutApi.IGameLayoutPort];
        };
        reelsApi.ReelsDeclaration.prototype.__class__ = reelsApi.ReelsDeclaration;

        reelsApi.IReelsImplementationPort = function() {}
        reelsApi.IReelsImplementationPort.prototype = {

            initializeGame: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            resumeGame: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelPicture: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            startSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            stopSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelCellsVisibility: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            show: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onSpinStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onReelStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStartSpinReelPictureExit: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStoppingStarted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelSkin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            changeReels: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        reelsApi.IReelsPort = function() {}
        reelsApi.IReelsPort.prototype = {

            initializeGame: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            resumeGame: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelPicture: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            startSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            stopSpin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelCellsVisibility: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            show: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            hide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            changeReels: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onSpinStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onReelStopped: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStartSpinReelPictureExit: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            onStoppingStarted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setReelSkin: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        reelsApi.ReelsPort = function(bus) {
            this._changeReels = new clientkernelEventbusApi.Topic("reels:changeReels");
            this._setReelSkin = new clientkernelEventbusApi.Topic("reels:setReelSkin");
            this._stoppingStarted = new clientkernelEventbusApi.Topic("reels:stoppingStarted");
            this._hide = new clientkernelEventbusApi.Topic("reels:hide");
            this._show = new clientkernelEventbusApi.Topic("reels:show");
            this._startSpinReelPictureExit = new clientkernelEventbusApi.Topic("reels:startSpinReelPictureExit");
            this._reelStopped = new clientkernelEventbusApi.Topic("reels:reelStopped");
            this._setReelCellsVisibility = new clientkernelEventbusApi.Topic("reels:setReelCellsVisibility");
            this._spinStopped = new clientkernelEventbusApi.Topic("reels:spinStopped");
            this._stopSpin = new clientkernelEventbusApi.Topic("reels:stopSpin");
            this._startSpin = new clientkernelEventbusApi.Topic("reels:startSpin");
            this._setReelPicture = new clientkernelEventbusApi.Topic("reels:setReelPicture");
            this._resumeGame = new clientkernelEventbusApi.Topic("reels:resumeGame");
            this._initializeGame = new clientkernelEventbusApi.Topic("reels:initializeGame");
            this._initializeGame.connect(bus);
            this._resumeGame.connect(bus);
            this._setReelPicture.connect(bus);
            this._startSpin.connect(bus);
            this._stopSpin.connect(bus);
            this._spinStopped.connect(bus);
            this._setReelCellsVisibility.connect(bus);
            this._reelStopped.connect(bus);
            this._startSpinReelPictureExit.connect(bus);
            this._show.connect(bus);
            this._hide.connect(bus);
            this._stoppingStarted.connect(bus);
            this._setReelSkin.connect(bus);
            this._changeReels.connect(bus);
        };
        reelsApi.ReelsPort = ck_implements(reelsApi.ReelsPort, reelsApi.IReelsPort);
        reelsApi.ReelsPort = ck_implements(reelsApi.ReelsPort, reelsApi.IReelsImplementationPort);
        reelsApi.ReelsPort.__interfaces__ = [reelsApi.IReelsPort, reelsApi.IReelsImplementationPort];
        reelsApi.ReelsPort.__name__ = ["reelsApi", "ReelsPort"];
        reelsApi.ReelsPort.prototype._initializeGame = null;
        reelsApi.ReelsPort.prototype._resumeGame = null;
        reelsApi.ReelsPort.prototype._setReelPicture = null;
        reelsApi.ReelsPort.prototype._startSpin = null;
        reelsApi.ReelsPort.prototype._stopSpin = null;
        reelsApi.ReelsPort.prototype._spinStopped = null;
        reelsApi.ReelsPort.prototype._setReelCellsVisibility = null;
        reelsApi.ReelsPort.prototype._reelStopped = null;
        reelsApi.ReelsPort.prototype._startSpinReelPictureExit = null;
        reelsApi.ReelsPort.prototype._show = null;
        reelsApi.ReelsPort.prototype._hide = null;
        reelsApi.ReelsPort.prototype._stoppingStarted = null;
        reelsApi.ReelsPort.prototype._setReelSkin = null;
        reelsApi.ReelsPort.prototype._changeReels = null;
        reelsApi.ReelsPort.prototype.initializeGame = function() {
            return this._initializeGame;
        };
        reelsApi.ReelsPort.prototype.resumeGame = function() {
            return this._resumeGame;
        };
        reelsApi.ReelsPort.prototype.setReelPicture = function() {
            return this._setReelPicture;
        };
        reelsApi.ReelsPort.prototype.startSpin = function() {
            return this._startSpin;
        };
        reelsApi.ReelsPort.prototype.stopSpin = function() {
            return this._stopSpin;
        };
        reelsApi.ReelsPort.prototype.setReelCellsVisibility = function() {
            return this._setReelCellsVisibility;
        };
        reelsApi.ReelsPort.prototype.show = function() {
            return this._show;
        };
        reelsApi.ReelsPort.prototype.hide = function() {
            return this._hide;
        };
        reelsApi.ReelsPort.prototype.onSpinStopped = function() {
            return this._spinStopped;
        };
        reelsApi.ReelsPort.prototype.onReelStopped = function() {
            return this._reelStopped;
        };
        reelsApi.ReelsPort.prototype.onStartSpinReelPictureExit = function() {
            return this._startSpinReelPictureExit;
        };
        reelsApi.ReelsPort.prototype.onStoppingStarted = function() {
            return this._stoppingStarted;
        };
        reelsApi.ReelsPort.prototype.setReelSkin = function() {
            return this._setReelSkin;
        };
        reelsApi.ReelsPort.prototype.changeReels = function() {
            return this._changeReels;
        };
        reelsApi.ReelsPort.prototype.__class__ = reelsApi.ReelsPort;
        reelsApi.ReelsPortFactory = function() {};
        reelsApi.ReelsPortFactory = ck_implements(reelsApi.ReelsPortFactory, componentmodelComponentApi.IPortFactory);
        reelsApi.ReelsPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        reelsApi.ReelsPortFactory.__name__ = ["reelsApi", "ReelsPortFactory"];
        reelsApi.ReelsPortFactory.prototype.provide = function(channel) {
            return new reelsApi.ReelsPort(channel);
        };
        reelsApi.ReelsPortFactory.prototype["use"] = function(channel) {
            return new reelsApi.ReelsPort(channel);
        };
        reelsApi.ReelsPortFactory.prototype.__class__ = reelsApi.ReelsPortFactory;
        reelsApi.Helper = function() {};
        reelsApi.Helper.__name__ = ["reelsApi", "Helper"];
        reelsApi.Helper.prototype.__class__ = reelsApi.Helper;
        reelsApi.ReelsInitializeGamePayload = function() {};
        reelsApi.ReelsInitializeGamePayload.__name__ = ["reelsApi", "ReelsInitializeGamePayload"];
        reelsApi.ReelsInitializeGamePayload.prototype.consoleSettings = null;
        reelsApi.ReelsInitializeGamePayload.prototype.slotDefinition = null;
        reelsApi.ReelsInitializeGamePayload.prototype.riskControlSettings = null;
        reelsApi.ReelsInitializeGamePayload.prototype.defaultStake = null;
        reelsApi.ReelsInitializeGamePayload.prototype.__class__ = reelsApi.ReelsInitializeGamePayload;
        reelsApi.ReelsPayload = function(reelLength, reelPictureVisibility, symbols, reels1) {
            this.reelLength = reelLength;
            this.reelPictureVisibility = reelPictureVisibility;
            this.symbols = symbols;
            this.reels = reels1;
        };
        reelsApi.ReelsPayload.__name__ = ["reelsApi", "ReelsPayload"];
        reelsApi.ReelsPayload.prototype.reelLength = null;
        reelsApi.ReelsPayload.prototype.reelPictureVisibility = null;
        reelsApi.ReelsPayload.prototype.symbols = null;
        reelsApi.ReelsPayload.prototype.reels = null;
        reelsApi.ReelsPayload.prototype.__class__ = reelsApi.ReelsPayload;
        reelsApi.ReelsPrepareResumePayload = function(initializationProperties, stake, spinOutcome) {
            this.initializationProperties = initializationProperties;
            this.stake = stake;
            this.spinOutcome = spinOutcome;
        };
        reelsApi.ReelsPrepareResumePayload.__name__ = ["reelsApi", "ReelsPrepareResumePayload"];
        reelsApi.ReelsPrepareResumePayload.prototype.initializationProperties = null;
        reelsApi.ReelsPrepareResumePayload.prototype.stake = null;
        reelsApi.ReelsPrepareResumePayload.prototype.spinOutcome = null;
        reelsApi.ReelsPrepareResumePayload.prototype.__class__ = reelsApi.ReelsPrepareResumePayload;
        reelsApi.ReelsStripe = function(stripeLayer, symbols) {
            this.stripeLayer = stripeLayer;
            this.symbols = symbols;
        };
        reelsApi.ReelsStripe.__name__ = ["reelsApi", "ReelsStripe"];
        reelsApi.ReelsStripe.prototype.stripeLayer = null;
        reelsApi.ReelsStripe.prototype.symbols = null;
        reelsApi.ReelsStripe.prototype.__class__ = reelsApi.ReelsStripe;
        reelsApi.ReelsSymbol = function(id, description, isWild, isBonus, isScatter, hasLandingAnimation, isBleed, block, asset) {
            this.id = id;
            this.description = description;
            this.isWild = isWild;
            this.isBonus = isBonus;
            this.isScatter = isScatter;
            this.hasLandingAnimation = hasLandingAnimation;
            this.isBleed = isBleed;
            this.block = block;
            this.asset = asset;
        };
        reelsApi.ReelsSymbol.__name__ = ["reelsApi", "ReelsSymbol"];
        reelsApi.ReelsSymbol.prototype.id = null;
        reelsApi.ReelsSymbol.prototype.description = null;
        reelsApi.ReelsSymbol.prototype.isWild = null;
        reelsApi.ReelsSymbol.prototype.isBonus = null;
        reelsApi.ReelsSymbol.prototype.isScatter = null;
        reelsApi.ReelsSymbol.prototype.hasLandingAnimation = null;
        reelsApi.ReelsSymbol.prototype.isBleed = null;
        reelsApi.ReelsSymbol.prototype.block = null;
        reelsApi.ReelsSymbol.prototype.asset = null;
        reelsApi.ReelsSymbol.prototype.__class__ = reelsApi.ReelsSymbol;
        reelsApi.StartSpinPayload = function(stripeLayerIds) {
            this.stripeLayerIds = stripeLayerIds;
        };
        reelsApi.StartSpinPayload.__name__ = ["reelsApi", "StartSpinPayload"];
        reelsApi.StartSpinPayload.prototype.stripeLayerIds = null;
        reelsApi.StartSpinPayload.prototype.__class__ = reelsApi.StartSpinPayload;
        reelsApi.StopSpinPayload = function(reelPicture, tensionReels, tensionParams) {
            this.reelPicture = reelPicture;
            this.tensionReels = tensionReels;
            this.tensionParams = tensionParams;
        };
        reelsApi.StopSpinPayload.__name__ = ["reelsApi", "StopSpinPayload"];
        reelsApi.StopSpinPayload.prototype.reelPicture = null;
        reelsApi.StopSpinPayload.prototype.tensionReels = null;
        reelsApi.StopSpinPayload.prototype.tensionParams = null;
        reelsApi.StopSpinPayload.prototype.__class__ = reelsApi.StopSpinPayload;
        reelsApi.CellPositionOnReel = function(xPosition, yPosition) {
            this.xPosition = xPosition;
            this.yPosition = yPosition;
        };
        reelsApi.CellPositionOnReel.__name__ = ["reelsApi", "CellPositionOnReel"];
        reelsApi.CellPositionOnReel.prototype.xPosition = null;
        reelsApi.CellPositionOnReel.prototype.yPosition = null;
        reelsApi.CellPositionOnReel.prototype.__class__ = reelsApi.CellPositionOnReel;

        reelsApi.IReelsRegistryService = function() {}
        reelsApi.IReelsRegistryService.prototype = {

            getPositionOnReel: function(row, column) {
                return {
                    arguments: ["number", "number"],
                    returns: "*"
                };
            },
            setPositionOnReel: function(key, layoutDescriber) {
                return {
                    arguments: ["string", "*"],
                    returns: "void"
                };
            },
            setCellsOnReel: function(cells, column) {
                return {
                    arguments: ["array", "number"],
                    returns: "void"
                };
            },
            getCellSymbolId: function(row, column) {
                return {
                    arguments: ["number", "number"],
                    returns: "string"
                };
            },
            getReelPicture: function() {
                return {
                    arguments: [],
                    returns: "array"
                };
            }
        };
        return {
            exports: reelsApi
        };
    });
//# sourceURL=slotReelsApi.js