using JetBrains.Annotations;
namespace Elsa.Features.Services;
///
/// Represents a feature.
///
[UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Members)]
public interface IFeature
{
///
/// Gets the module that this feature belongs to.
///
IModule Module { get; }
///
/// Configures the feature.
///
void Configure();
///
/// Configures the hosted services.
///
void ConfigureHostedServices();
///
/// Applies the feature by adding services to the service collection.
///
void Apply();
}