#pragma once

#include <string>

namespace ta::application
{
    struct SystemFontPaths
    {
        std::string chinese;
        std::string japanese;
        std::string korean;
    };

    class IImGuiClient
    {
    public:
        virtual ~IImGuiClient() = default;
        virtual void setup(const SystemFontPaths& system_fonts) = 0;
        virtual void draw() = 0;
        [[nodiscard]] virtual bool is_active() const noexcept = 0;
        [[nodiscard]] virtual float scale_factor() const noexcept = 0;
        [[nodiscard]] virtual bool needs_font_rebuild(float scale_factor) const noexcept = 0;
        virtual void rebuild_fonts(float scale_factor) = 0;
        virtual void reset_render_resources() noexcept = 0;
    };
}
