// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"
#include "Core.hpp"
#include "Json.hpp"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class ActorDefinitionGroup {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_ACTORDEFINITIONGROUP
public:
    class ActorDefinitionGroup& operator=(class ActorDefinitionGroup const &) = delete;
    ActorDefinitionGroup(class ActorDefinitionGroup const &) = delete;
    ActorDefinitionGroup() = delete;
#endif

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_ACTORDEFINITIONGROUP
#endif
    MCAPI class ActorDefinitionPtr tryGetDefinition(std::string const &);
    MCAPI class ActorDefinitionPtr tryGetDefinitionGroup(std::string const &, std::string const &);
    MCAPI static bool loadActorDefinitionIdentifier(class Json::Value const &, class SemVersion const &, std::string &);
    MCAPI static bool loadActorDefinitionRuntimeIdentifier(class Json::Value const &, class SemVersion const &, std::string &);
    MCAPI static bool tryReadEntityResourceFile(class PackInstance &, class Core::Path const &, class Json::Value &);

//protected:
    MCAPI void _addRef(class ActorDefinitionPtr &);
    MCAPI void _removeRef(class ActorDefinitionPtr &);

//private:
    MCAPI void _getResources(class Level &);
    MCAPI struct ActorDefinitionGroup::LoadActorResult _loadActorDefinition(class Level &, class Json::Value &, class std::unordered_set<std::string, struct std::hash<std::string>, struct std::equal_to<std::string>, class std::allocator<std::string>> &);
    MCAPI bool _loadDefinitionFromJSON(class SemVersion &, class Json::Value &, std::string const &, class Level &);
    MCAPI void _loadTemplates(class Level &, std::string const &, class Json::Value, class SemVersion const &);
    MCAPI void _setupAnimationResourceDefinitionMap(class ActorDefinition &, class Level &);

protected:

private:

};