/*
© 2017 Altavant Technologies Inc.
Web: http://www.altavant.com
*/

namespace Altavant.Fusion.Core.Props
{
	using System;

	public interface IConfig
	{
		bool ContainsProperty(string id);
		Property GetProperty(string id);
		string GetProperty(string id, string defaultValue);
		bool GetProperty(string id, bool defaultValue);
		int GetProperty(string id, int defaultValue);
		float GetProperty(string id, float defaultValue);
		double GetProperty(string id, double defaultValue);
		decimal GetProperty(string id, decimal defaultValue);
		DateTime GetProperty(string id, DateTime defaultValue);
		void AddProperty(string id, Property property);
		void AddProperty(string id, string value);
		void AddProperty(string id, bool value);
		void AddProperty(string id, int value);
		void AddProperty(string id, float value);
		void AddProperty(string id, double value);
		void AddProperty(string id, decimal value);
		void AddProperty(string id, DateTime value);
		void RemoveProperty(string id);
		void Clear();
		void Load();
		void Save();
		void Release();
	}
}