text: #pragma once
  
  #include <memory>
  #include <string>
  
  struct ImFont;
  
  class GUI {
  public:
      GUI() noexcept;
      void render() noexcept;
      void handleToggle() noexcept;
      bool isOpen() noexcept { return open; }
  private:
      bool open = true;
  
      void updateColors() const noexcept;
      void renderMenuBar() noexcept;
      void renderAimbotWindow(bool contentOnly = false) noexcept;
      void renderTriggerbotWindow(bool contentOnly = false) noexcept;
      void renderChamsWindow(bool contentOnly = false) noexcept;
      void renderStreamProofESPWindow(bool contentOnly = false) noexcept;
      void renderVisualsWindow(bool contentOnly = false) noexcept;
      void renderSkinChangerWindow(bool contentOnly = false) noexcept;
      void renderSoundWindow(bool contentOnly = false) noexcept;
      void renderStyleWindow(bool contentOnly = false) noexcept;
      void renderMiscWindow(bool contentOnly = false) noexcept;
      void renderConfigWindow(bool contentOnly = false) noexcept;
      void renderGuiStyle2() noexcept;
  
      struct {
          bool aimbot = false;
          bool triggerbot = false;
          bool chams = false;
          bool streamProofESP = false;
          bool visuals = false;
          bool skinChanger = false;
          bool sound = false;
          bool style = false;
          bool misc = false;
          bool config = false;
      } window;
  
      struct {
          ImFont* normal15px = nullptr;
      } fonts;
  
      float timeToNextConfigRefresh = 0.1f;
  };
  
  inline std::unique_ptr<GUI> gui;
  