#pragma once

// Backend-dependent scripting members resolve through these aliases so
// Artboard/File layout depends only on WITH_RIVE_SCRIPTING and every
// define set from the umbrella up stays ABI compatible. Each alias must
// keep the exact layout of its live counterpart; the asserts hold the
// backends to that.

#include <memory>
#include <vector>

#ifdef WITH_RIVE_SCRIPTING_LUAU
#include "rive/lua/scripting_vm.hpp"
namespace rive
{
using ScriptingVMSlot = rcp<ScriptingVM>;
static_assert(
    sizeof(ScriptingVMSlot) == sizeof(void*) &&
        alignof(ScriptingVMSlot) == alignof(void*),
    "luau vm slot must stay pointer sized");
} // namespace rive
#else
namespace rive
{
using ScriptingVMSlot = void*;
} // namespace rive
#endif

#ifdef WITH_RIVE_SCRIPTING_WASM
namespace rive
{
class WasmScriptingVM;
using WasmVMsSlot = std::vector<std::unique_ptr<WasmScriptingVM>>;
static_assert(
    sizeof(WasmVMsSlot) == sizeof(std::vector<void*>) &&
        alignof(WasmVMsSlot) == alignof(std::vector<void*>),
    "wasm vm list slot must match a pointer vector");
} // namespace rive
#else
namespace rive
{
using WasmVMsSlot = std::vector<void*>;
} // namespace rive
#endif
