| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Reflection;
 
- using System.Threading.Tasks;
 
- using MediaBrowser.Model.Plugins;
 
- using MediaBrowser.Model.Updates;
 
- using Microsoft.Extensions.DependencyInjection;
 
- namespace MediaBrowser.Common.Plugins
 
- {
 
-     /// <summary>
 
-     /// Defines the <see cref="IPluginManager" />.
 
-     /// </summary>
 
-     public interface IPluginManager
 
-     {
 
-         /// <summary>
 
-         /// Gets the Plugins.
 
-         /// </summary>
 
-         IReadOnlyList<LocalPlugin> Plugins { get; }
 
-         /// <summary>
 
-         /// Creates the plugins.
 
-         /// </summary>
 
-         void CreatePlugins();
 
-         /// <summary>
 
-         /// Returns all the assemblies.
 
-         /// </summary>
 
-         /// <returns>An IEnumerable{Assembly}.</returns>
 
-         IEnumerable<Assembly> LoadAssemblies();
 
-         /// <summary>
 
-         /// Registers the plugin's services with the DI.
 
-         /// Note: DI is not yet instantiated yet.
 
-         /// </summary>
 
-         /// <param name="serviceCollection">A <see cref="ServiceCollection"/> instance.</param>
 
-         void RegisterServices(IServiceCollection serviceCollection);
 
-         /// <summary>
 
-         /// Saves the manifest back to disk.
 
-         /// </summary>
 
-         /// <param name="manifest">The <see cref="PluginManifest"/> to save.</param>
 
-         /// <param name="path">The path where to save the manifest.</param>
 
-         /// <returns>True if successful.</returns>
 
-         bool SaveManifest(PluginManifest manifest, string path);
 
-         /// <summary>
 
-         /// Generates a manifest from repository data.
 
-         /// </summary>
 
-         /// <param name="packageInfo">The <see cref="PackageInfo"/> used to generate a manifest.</param>
 
-         /// <param name="version">Version to be installed.</param>
 
-         /// <param name="path">The path where to save the manifest.</param>
 
-         /// <param name="status">Initial status of the plugin.</param>
 
-         /// <returns>True if successful.</returns>
 
-         Task<bool> GenerateManifest(PackageInfo packageInfo, Version version, string path, PluginStatus status);
 
-         /// <summary>
 
-         /// Imports plugin details from a folder.
 
-         /// </summary>
 
-         /// <param name="folder">Folder of the plugin.</param>
 
-         void ImportPluginFrom(string folder);
 
-         /// <summary>
 
-         /// Disable the plugin.
 
-         /// </summary>
 
-         /// <param name="assembly">The <see cref="Assembly"/> of the plug to disable.</param>
 
-         void FailPlugin(Assembly assembly);
 
-         /// <summary>
 
-         /// Disable the plugin.
 
-         /// </summary>
 
-         /// <param name="plugin">The <see cref="LocalPlugin"/> of the plug to disable.</param>
 
-         void DisablePlugin(LocalPlugin plugin);
 
-         /// <summary>
 
-         /// Enables the plugin, disabling all other versions.
 
-         /// </summary>
 
-         /// <param name="plugin">The <see cref="LocalPlugin"/> of the plug to disable.</param>
 
-         void EnablePlugin(LocalPlugin plugin);
 
-         /// <summary>
 
-         /// Attempts to find the plugin with and id of <paramref name="id"/>.
 
-         /// </summary>
 
-         /// <param name="id">Id of plugin.</param>
 
-         /// <param name="version">The version of the plugin to locate.</param>
 
-         /// <returns>A <see cref="LocalPlugin"/> if located, or null if not.</returns>
 
-         LocalPlugin? GetPlugin(Guid id, Version? version = null);
 
-         /// <summary>
 
-         /// Removes the plugin.
 
-         /// </summary>
 
-         /// <param name="plugin">The plugin.</param>
 
-         /// <returns>Outcome of the operation.</returns>
 
-         bool RemovePlugin(LocalPlugin plugin);
 
-     }
 
- }
 
 
  |