#pragma once

#include <sdbusplus/asio/connection.hpp>

#include <map>
#include <memory>
#include <string>
#include <variant>
#include <vector>

using BusInfo = std::map<std::string, std::string>;

enum class MctpMessageType : uint8_t
{
    CONTROL = 0,
    PLDM = 2,
    NVME_MI = 4,
    SPDM = 5
};

// Global maps (declared extern)

#include "Utils.hpp"

extern std::map<std::string, SensorData> mctpEndpointConfigMap;

void setupMctpEndpointListener(
    const std::shared_ptr<sdbusplus::asio::connection>& conn,
    MctpMessageType msgType);
void cleanupMctpEndpointListener();

BusInfo extractBusInfo(const SensorData& configData);
