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