#pragma once

#include <fsfw/returnvalues/HasReturnvaluesIF.h>

#include <string>

class GpioIF;
class SpiComIF;
class PowerSwitchIF;

namespace ObjectFactory {

void createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiComIF, PowerSwitchIF* pwrSwitcher,
                               std::string spiDev);
void createRtdComponents(std::string spiDev, GpioIF* gpioComIF, PowerSwitchIF* pwrSwitcher,
                         SpiComIF* comIF);

void gpioChecker(ReturnValue_t result, std::string output);

}  // namespace ObjectFactory