using System; using System.Collections.Generic; using System.Threading.Tasks; using DiscordBotCore.Plugin; namespace DiscordBotCore.Interfaces.PluginManager { public interface IPluginManager { public string BaseUrl { get; set; } public string Branch { get; set; } Task AppendPluginToDatabase(PluginInfo pluginData); Task CheckForUpdates(); Task ExecutePluginInstallScripts(List listOfDependencies); string GenerateDependencyRelativePath(string pluginName, string dependencyPath); Task GetDependencyLocation(string dependencyName); Task GetDependencyLocation(string pluginName, string dependencyName); Task> GetInstalledPlugins(); Task GetPluginDataByName(string pluginName); Task?> GetPluginsList(); Task InstallPlugin(PluginOnlineInfo pluginData, IProgress? installProgress); Task IsPluginInstalled(string pluginName); Task MarkPluginToUninstall(string pluginName); Task RemovePluginFromDatabase(string pluginName); Task UninstallMarkedPlugins(); Task SetEnabledStatus(string pluginName, bool status); } }