using AIStudio.Tools.PluginSystem;
namespace AIStudio.Tools.Services;
///
/// What the user gets to see before a plugin archive is installed. It is not bound to a specific
/// plugin type, so it also serves upcoming import paths for other plugin types.
///
/// The plugin from the archive, with the metadata it declares about itself.
/// The installed plugin that gets replaced or null when the archive adds a new plugin.
///
/// What a configuration plugin would set up. Null for every other plugin type.
///
public sealed record PluginImportPreview(IPluginMetadata Plugin, IAvailablePlugin? ExistingPlugin, ConfigurationPluginImportSummary? ConfigurationSummary = null)
{
///
/// True when an installed plugin with the same ID gets replaced.
///
public bool ReplacesExisting => this.ExistingPlugin is not null;
}