#pragma once

#include "lumacs/ui_interface.hpp"
#include <string>

namespace lumacs {

/// @brief Interface for components that need to notify the editor of events or messages.
class IEditorNotifier {
public:
    virtual ~IEditorNotifier() = default;

    /// @brief Emit a system-wide editor event.
    /// @param event The event to broadcast.
    virtual void emit_event(EditorEvent event) = 0;

    /// @brief Display a message to the user.
    /// @param message The message string.
    virtual void set_message(std::string message) = 0;
};

} // namespace lumacs
