using System;
using System.Collections.Immutable;
using System.Reflection;
using Barotrauma.LuaCs.Data;
using Microsoft.CodeAnalysis;
namespace Barotrauma.LuaCs.Services;
public interface IPluginManagementService : IReusableService
{
///
/// Checks if an assembly with either the fully-qualified name globally or a 'friendly name' within loaded plugins
/// with the given name is loaded.
///
///
///
bool IsAssemblyLoadedGlobal(string friendlyName);
// TODO: Documentation.
FluentResults.Result> GetTypes(
ContentPackage package = null,
string namespacePrefix = null,
bool includeInterfaces = false,
bool includeAbstractTypes = false,
bool includeDefaultContext = true,
bool includeExplicitAssembliesOnly = false);
///
/// Gets the assembly MetadataReference collection for the BCL and base game assemblies.
///
///
ImmutableArray GetStandardMetadataReferences();
///
///
///
///
ImmutableArray GetPluginMetadataReferences();
///
///
///
///
///
FluentResults.Result> GetCachedAssembliesForPackage(ContentPackage package);
///
///
///
///
/// Success/Failure and list of failed resources, if any.
FluentResults.Result> LoadAssemblyResources(ImmutableArray resource);
}