#ifndef MDD_IOUTPUT_H
#define MDD_IOUTPUT_H
#include "json.hpp"
#include <memory>
#include "IUnique.h"
#include "IState.h"
//#include "IInput.h"
#include "IOptimizable.h"
#include "IConnector.h"

namespace mdd
{
    class IInput;
    class IModule;

    class IOutput 
        : public IUnique
        , public IState
        , public IConnector<IInput>
        , public IOptimizable
    {
    public:
        virtual std::vector<std::shared_ptr<IInput>> getConnections() = 0;
        virtual ~IOutput() = default;
    };
}

#endif //MDD_IOUTPUT_H
