using MediaBrowser.Model.Configuration;
using System;
namespace MediaBrowser.Common.Configuration
{
    public interface IConfigurationManager
    {
        /// 
        /// Occurs when [configuration updated].
        /// 
        event EventHandler ConfigurationUpdated;
        
        /// 
        /// Gets or sets the application paths.
        /// 
        /// The application paths.
        IApplicationPaths CommonApplicationPaths { get; }
        /// 
        /// Gets the configuration.
        /// 
        /// The configuration.
        BaseApplicationConfiguration CommonConfiguration { get; }
        /// 
        /// Saves the configuration.
        /// 
        void SaveConfiguration();
        /// 
        /// Replaces the configuration.
        /// 
        /// The new configuration.
        void ReplaceConfiguration(BaseApplicationConfiguration newConfiguration);
    }
}