using DiscordBotCore.PluginManagement.Models; namespace DiscordBotCore.PluginManagement; public interface IPluginManager { Task> GetPluginsList(); Task GetPluginDataByName(string pluginName); Task GetPluginDataById(int pluginId); Task AppendPluginToDatabase(LocalPlugin pluginData); Task> GetInstalledPlugins(); Task IsPluginInstalled(string pluginName); Task MarkPluginToUninstall(string pluginName); Task UninstallMarkedPlugins(); Task GetDependencyLocation(string dependencyName); Task GetDependencyLocation(string dependencyName, string pluginName); string GenerateDependencyRelativePath(string pluginName, string dependencyPath); Task InstallPlugin(OnlinePlugin plugin, IProgress progress); Task, List>> GatherInstallDataForPlugin(OnlinePlugin plugin); Task SetEnabledStatus(string pluginName, bool status); }