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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class PackManifest {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~PackManifest();
    /*1*/ virtual std::unique_ptr<class PackManifest> clone() const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_PACKMANIFEST
#endif
    MCAPI PackManifest(enum ManifestType);
    MCAPI PackManifest(class PackManifest const &);
    MCAPI void addModule(class ResourceInformation const &);
    MCAPI void addPackCapability(class gsl::basic_string_span<char const, -1>);
    MCAPI std::string getDescription() const;
    MCAPI std::string getName() const;
    MCAPI std::string getNameForTelemetry() const;
    MCAPI bool hasModule(struct PackIdVersion const &) const;
    MCAPI bool hasPackCapability(class gsl::basic_string_span<char const, -1>) const;
    MCAPI void serialize(enum PackManifestFormat, class Json::Value &) const;
    MCAPI void setLastModifiedDate(__int64);
    MCAPI void setLocalizedNameKeywords(class std::unordered_map<std::string, std::string, struct std::hash<std::string>, struct std::equal_to<std::string>, class std::allocator<struct std::pair<std::string const, std::string>>> const &);
    MCAPI static std::string const MarioPackId;

//private:
    MCAPI void _serailizeLegacyModuleDependencies(class Json::Value &) const;
    MCAPI void _serializeDependencies(class Json::Value &) const;
    MCAPI void _serializeHeader(class Json::Value &) const;
    MCAPI void _serializeMeta(class Json::Value &) const;
    MCAPI void _serializeModules(class Json::Value &) const;
    MCAPI void _serializeVersion(class Json::Value &, class SemVersion const &) const;

private:
    MCAPI static class std::unordered_map<std::string, enum PackScope, struct std::hash<std::string>, struct std::equal_to<std::string>, class std::allocator<struct std::pair<std::string const, enum PackScope>>> const STRING_TO_PACK_SCOPE;

};