#pragma once

enum class EffectId
{
  STATIC,
  CIRCULAR,
  ALEXA_SWIPE,
  RANDOM_TWO_COLOR_INTERPOLATION,
  SWIPE_AND_CHANGE, // combination of ALEXA_SWIPE and RANDOM_TWO_COLOR_INTERPOLATION
  REVERSE_SWIPE,
};

template <EffectId id>
struct EffectIdToConfig
{
};

template <typename EffectConfig>
struct EffectConfigToId
{
};

template <EffectId id, typename TLedStrip>
struct EffectIdToClass
{
};