using System.Collections.Generic;

namespace StreamBuddy.PluginInterface.Features
{
    /// <summary>
    /// Provides functions for enabling and disabling features, as well as listing all enabled features.
    /// </summary>
    public interface IFeatureManager
    {
        /// <summary>
        /// A list of features that are currently enabled.
        /// </summary>
        IReadOnlyList<IFeature> EnabledFeatures { get; }

        /// <summary>
        /// Enable a feature with the given name.
        /// </summary>
        /// <param name="Name">The name of the feature to enable</param>
        bool EnableFeature(string Name);
        /// <summary>
        /// Disable a feature with the given name.
        /// </summary>
        /// <param name="Name">The name of the feature to disable</param>
        bool DisableFeature(string Name);
    }
}
