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

        componentmodelComponentApi.IComponentContext = function() {}
        componentmodelComponentApi.IComponentContext.prototype = {

            getDeclaration: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getInstance: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getConfiguration: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            getUsedPort: function(port) {
                return {
                    arguments: [Class],
                    returns: "*"
                };
            },
            getImplementedPort: function(port) {
                return {
                    arguments: [Class],
                    returns: "*"
                };
            },
            getChildComponents: function(qualifier) {
                return {
                    arguments: ["*"],
                    returns: Map
                };
            },
            getReferredComponents: function(qualifier) {
                return {
                    arguments: ["*"],
                    returns: Map
                };
            },
            getStarted: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            createTopic: function(topic) {
                return {
                    arguments: ["string"],
                    returns: "*"
                };
            }
        };

        componentmodelComponentApi.IComponentDeclaration = function() {}
        componentmodelComponentApi.IComponentDeclaration.prototype = {

            getUsedPorts: function() {
                return {
                    arguments: [],
                    returns: "array"
                };
            },
            getImplementedPorts: function() {
                return {
                    arguments: [],
                    returns: "array"
                };
            },
            getChildComponents: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            },
            getReferredComponents: function() {
                return {
                    arguments: [],
                    returns: Map
                };
            }
        };

        componentmodelComponentApi.IComponentFactory = function() {}
        componentmodelComponentApi.IComponentFactory.prototype = {

            getComponentDeclaration: function() {
                return {
                    arguments: [],
                    returns: Class
                };
            },
            createComponent: function(context) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            }
        };

        componentmodelComponentApi.IComponentInstance = function() {}
        componentmodelComponentApi.IComponentInstance.prototype = {

            getId: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            },
            equals: function(instance) {
                return {
                    arguments: ["*"],
                    returns: "boolean"
                };
            }
        };

        componentmodelComponentApi.IComponentPublishable = function() {}
        componentmodelComponentApi.IComponentPublishable.prototype = {

            publishForThis: function(payload) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            publishForComponentInstance: function(instance, payload) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            }
        };

        componentmodelComponentApi.IComponentSubscribeable = function() {}
        componentmodelComponentApi.IComponentSubscribeable.prototype = {

            subscribeForComponentInstance: function(instance, callback) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            }
        };

        componentmodelComponentApi.IComponentTopic = function() {}
        componentmodelComponentApi.IComponentTopic.prototype = {

            connect: function(channel) {
                return {
                    arguments: ["*"],
                    returns: "void"
                };
            },
            getId: function() {
                return {
                    arguments: [],
                    returns: "string"
                };
            }
        };

        componentmodelComponentApi.IComponentPortFactoryBase = function() {}
        componentmodelComponentApi.IComponentPortFactoryBase.prototype = {

            provide: function(instance, channel) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            },
            use: function(instance, channel) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            }
        };

        componentmodelComponentApi.IComponentPortFactory = function() {}
        componentmodelComponentApi.IComponentPortFactory.prototype = {

            provide: function(instance, channel) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            },
            use: function(instance, channel) {
                return {
                    arguments: ["*", "*"],
                    returns: "*"
                };
            }
        };

        componentmodelComponentApi.IPort = function() {}
        componentmodelComponentApi.IPort.prototype = {

        };

        componentmodelComponentApi.IPortFactoryBase = function() {}
        componentmodelComponentApi.IPortFactoryBase.prototype = {

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

        componentmodelComponentApi.IPortFactory = function() {}
        componentmodelComponentApi.IPortFactory.prototype = {

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

        componentmodelComponentApi.IPortImplementation = function() {}
        componentmodelComponentApi.IPortImplementation.prototype = {

        };
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

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

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