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

        componentmodelAssemblyApi.IGameAssembly = function() {}
        componentmodelAssemblyApi.IGameAssembly.prototype = {

            declare: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            implement: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            run: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IGameAssemblyDeclaration = function() {}
        componentmodelAssemblyApi.IGameAssemblyDeclaration.prototype = {

            buses: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            ports: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            componentFactiries: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IGameAssemblyFactory = function() {}
        componentmodelAssemblyApi.IGameAssemblyFactory.prototype = {

            create: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IGameAssemblyImplementation = function() {}
        componentmodelAssemblyApi.IGameAssemblyImplementation.prototype = {

            channel: function(id) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IADBusses = function() {}
        componentmodelAssemblyApi.IADBusses.prototype = {

            bus: function(id, string) {
                return {
                    arguments: ["*", "string"],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IADComponentFactories = function() {}
        componentmodelAssemblyApi.IADComponentFactories.prototype = {

            componentFactory: function(id, componentFactory) {
                return {
                    arguments: ["*", Class],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IADPort = function() {}
        componentmodelAssemblyApi.IADPort.prototype = {

            connect: function(id) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IADPorts = function() {}
        componentmodelAssemblyApi.IADPorts.prototype = {

            port: function(id, portFactory, componentPortFactory) {
                return {
                    arguments: ["*", {
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IAIChannel = function() {}
        componentmodelAssemblyApi.IAIChannel.prototype = {

            components: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IAIComponent = function() {}
        componentmodelAssemblyApi.IAIComponent.prototype = {

            implement: function(id) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            configure: function(string) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            use: function(id) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            has: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            children: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IAIComponents = function() {}
        componentmodelAssemblyApi.IAIComponents.prototype = {

            component: function(qualifier, index, id, dynamic1) {
                return {
                    arguments: [{
                        type: "*",
                        opt: true
                    }, {
                        type: "*",
                        opt: true
                    }, "*", "*"],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };

        componentmodelAssemblyApi.IAIHas = function() {}
        componentmodelAssemblyApi.IAIHas.prototype = {

            reference: function(slot, index, id) {
                return {
                    arguments: ["string", "string", "*"],
                    returns: "*"
                };
            },
            end: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

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