#pragma once #include "interfaces/command.hpp" #include "interfaces/observable.hpp" #include class IInputHandler : public IObservable { public: ~IInputHandler() noexcept override = default; void listen() const noexcept override = 0; void attach(const char &key, const std::shared_ptr &command) noexcept override = 0; void notify(const char &key) const noexcept override = 0; virtual void enter_raw_mode() noexcept = 0; virtual void leave_raw_mode() noexcept = 0; };