define("scarabTutorialApi", ["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 scarabTutorialApi == 'undefined') {
            var scarabTutorialApi = {};
        };
        scarabTutorialApi.TutorialDeclaration = function() {};
        scarabTutorialApi.TutorialDeclaration = ck_implements(scarabTutorialApi.TutorialDeclaration, componentmodelComponentApi.IComponentDeclaration);
        scarabTutorialApi.TutorialDeclaration.__interfaces__ = [componentmodelComponentApi.IComponentDeclaration];
        scarabTutorialApi.TutorialDeclaration.__name__ = ["scarabTutorialApi", "TutorialDeclaration"];
        scarabTutorialApi.TutorialDeclaration.prototype.getChildComponents = function() {
            return null;
        };
        scarabTutorialApi.TutorialDeclaration.prototype.getReferredComponents = function() {
            return null;
        };
        scarabTutorialApi.TutorialDeclaration.prototype.getImplementedPorts = function() {
            return [scarabTutorialApi.ITutorialImplementationPort];
        };
        scarabTutorialApi.TutorialDeclaration.prototype.getUsedPorts = function() {
            return [scarabTutorialApi.ITutorialPort, gameLayoutApi.IGameLayoutPort];
        };
        scarabTutorialApi.TutorialDeclaration.prototype.__class__ = scarabTutorialApi.TutorialDeclaration;

        scarabTutorialApi.ITutorialImplementationPort = function() {}
        scarabTutorialApi.ITutorialImplementationPort.prototype = {

            getShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getConfirmed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getClosed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCurrentPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNextPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setPreviousPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        scarabTutorialApi.ITutorialPort = function() {}
        scarabTutorialApi.ITutorialPort.prototype = {

            getShow: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getHide: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getConfirmed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getClosed: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCurrentPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setNextPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            setPreviousPage: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        scarabTutorialApi.TutorialPort = function(bus) {
            this.previousPage = new clientkernelEventbusApi.Topic("tutorial:previousPage");
            this.nextPage = new clientkernelEventbusApi.Topic("tutorial:nextPage");
            this.currentPage = new clientkernelEventbusApi.Topic("tutorial:currentPage");
            this.closed = new clientkernelEventbusApi.Topic("tutorial:closed");
            this.confirmed = new clientkernelEventbusApi.Topic("tutorial:confirmed");
            this.hide = new clientkernelEventbusApi.Topic("tutorial:hide");
            this.show = new clientkernelEventbusApi.Topic("tutorial:show");
            this.show.connect(bus);
            this.hide.connect(bus);
            this.confirmed.connect(bus);
            this.closed.connect(bus);
            this.currentPage.connect(bus);
            this.nextPage.connect(bus);
            this.previousPage.connect(bus);
        };
        scarabTutorialApi.TutorialPort = ck_implements(scarabTutorialApi.TutorialPort, scarabTutorialApi.ITutorialPort);
        scarabTutorialApi.TutorialPort = ck_implements(scarabTutorialApi.TutorialPort, scarabTutorialApi.ITutorialImplementationPort);
        scarabTutorialApi.TutorialPort.__interfaces__ = [scarabTutorialApi.ITutorialPort, scarabTutorialApi.ITutorialImplementationPort];
        scarabTutorialApi.TutorialPort.__name__ = ["scarabTutorialApi", "TutorialPort"];
        scarabTutorialApi.TutorialPort.prototype.show = null;
        scarabTutorialApi.TutorialPort.prototype.hide = null;
        scarabTutorialApi.TutorialPort.prototype.confirmed = null;
        scarabTutorialApi.TutorialPort.prototype.closed = null;
        scarabTutorialApi.TutorialPort.prototype.currentPage = null;
        scarabTutorialApi.TutorialPort.prototype.nextPage = null;
        scarabTutorialApi.TutorialPort.prototype.previousPage = null;
        scarabTutorialApi.TutorialPort.prototype.getShow = function() {
            return this.show;
        };
        scarabTutorialApi.TutorialPort.prototype.getHide = function() {
            return this.hide;
        };
        scarabTutorialApi.TutorialPort.prototype.getConfirmed = function() {
            return this.confirmed;
        };
        scarabTutorialApi.TutorialPort.prototype.getClosed = function() {
            return this.closed;
        };
        scarabTutorialApi.TutorialPort.prototype.getCurrentPage = function() {
            return this.currentPage;
        };
        scarabTutorialApi.TutorialPort.prototype.setNextPage = function() {
            return this.nextPage;
        };
        scarabTutorialApi.TutorialPort.prototype.setPreviousPage = function() {
            return this.previousPage;
        };
        scarabTutorialApi.TutorialPort.prototype.__class__ = scarabTutorialApi.TutorialPort;
        scarabTutorialApi.TutorialPortFactory = function() {};
        scarabTutorialApi.TutorialPortFactory = ck_implements(scarabTutorialApi.TutorialPortFactory, componentmodelComponentApi.IPortFactory);
        scarabTutorialApi.TutorialPortFactory.__interfaces__ = [componentmodelComponentApi.IPortFactory];
        scarabTutorialApi.TutorialPortFactory.__name__ = ["scarabTutorialApi", "TutorialPortFactory"];
        scarabTutorialApi.TutorialPortFactory.prototype.provide = function(channel) {
            return new scarabTutorialApi.TutorialPort(channel);
        };
        scarabTutorialApi.TutorialPortFactory.prototype["use"] = function(channel) {
            return new scarabTutorialApi.TutorialPort(channel);
        };
        scarabTutorialApi.TutorialPortFactory.prototype.__class__ = scarabTutorialApi.TutorialPortFactory;
        scarabTutorialApi.TutorialLayerEnum = {
            __ename__: ["scarabTutorialApi", "TutorialLayerEnum"],
            __constructs__: ["TUTORIAL_VIEW"]
        };
        scarabTutorialApi.TutorialLayerEnum.TUTORIAL_VIEW = ["TUTORIAL_VIEW", 0];
        scarabTutorialApi.TutorialLayerEnum.TUTORIAL_VIEW.toString = $estr;
        scarabTutorialApi.TutorialLayerEnum.TUTORIAL_VIEW.__enum__ = scarabTutorialApi.TutorialLayerEnum;
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

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