#ifndef THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_
#define THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_

#include <nlohmann/json.hpp>
#include "tlbmc/hft/core/hft_service.h"
#include "tlbmc/hft/core/manager.h"

namespace milotic_hft {

// Debug-JSON rendering for the subscription manager, its subscriptions, and
// the HFT gRPC service. Lives outside the hft core so the core carries no
// nlohmann dependency: these helpers downcast to the known implementations
// (SubscriptionManagerImpl, SubscriptionManagerFake, ActiveSubscription) and
// render their debug snapshots; unknown implementations render as an empty
// object.
nlohmann::json SubscriptionManagerDebugJson(const SubscriptionManager& manager);
nlohmann::json SubscriptionDebugJson(
    const SubscriptionManager::Subscription& subscription);
nlohmann::json HftServiceDebugJson(const HftServiceImpl& service);

}  // namespace milotic_hft

#endif  // THIRD_PARTY_MILOTIC_EXTERNAL_CC_TLBMC_HFT_MANAGER_DEBUG_JSON_H_
