namespace Dike.Core.Configuration
{
    using System.Collections.Generic;

    /// <summary>
    /// Defines the setting definition manager.
    /// </summary>
    public interface ISettingDefinitionManager
    {
        #region Methods

        /// <summary>
        /// Gets all setting definitions.
        /// </summary>
        /// <returns>A read only list of all setting definitions.</returns>
        IReadOnlyList<SettingDefinition> GetAllSettingDefinitions();

        /// <summary>
        /// Gets a setting definition by its name.
        /// </summary>
        /// <param name="name">The unique setting definition name.</param>
        /// <returns>The setting definition.</returns>
        SettingDefinition GetSettingDefinition(string name);

        #endregion Methods
    }
}