package io.gitlab.jfronny.libjf.config.api; import io.gitlab.jfronny.gson.JsonObject; import io.gitlab.jfronny.gson.stream.JsonWriter; import org.jetbrains.annotations.ApiStatus; import java.io.IOException; import java.util.List; import java.util.Map; public interface ConfigInstance { static ConfigInstance get(Class configClass) { return ConfigHolder.getInstance().get(configClass); } static ConfigInstance get(String modId) { return ConfigHolder.getInstance().get(modId); } void load(); void write(); String getModId(); List> getEntries(); Map getPresets(); List getReferencedConfigs(); Map getCategories(); @ApiStatus.Internal void verify(); @ApiStatus.Internal boolean matchesConfigClass(Class candidate); @ApiStatus.Internal void loadFrom(JsonObject source); @ApiStatus.Internal void writeTo(JsonWriter writer) throws IOException; @ApiStatus.Internal String getCategoryPath(); }