namespace DiscordBotCore.Configuration; public interface IConfiguration { /// /// Adds an element to the custom settings dictionary /// /// The key /// The value void Add(string key, object value); /// /// Sets the value of a key in the custom settings dictionary /// /// The key /// The value void Set(string key, object value); /// /// Gets the value of a key in the custom settings dictionary. If the T type is different then the object type, it will try to convert it. /// /// The key /// The default value to be returned if the searched value is not found /// The type of the returned value /// T Get(string key, T defaultObject); /// /// Gets the value of a key in the custom settings dictionary. If the T type is different then the object type, it will try to convert it. /// /// The key /// The type of the returned value /// T? Get(string key); /// /// Get a list of values from the custom settings dictionary /// /// The key /// The default list to be returned if nothing is found /// The type of the returned value /// List GetList(string key, List defaultObject); /// /// Remove a key from the custom settings dictionary /// /// The key void Remove(string key); /// /// Get the enumerator of the custom settings dictionary /// /// IEnumerator> GetEnumerator(); /// /// Clear the custom settings dictionary /// void Clear(); /// /// Check if the custom settings dictionary contains a key /// /// The key /// bool ContainsKey(string key); /// /// Filter the custom settings dictionary based on a predicate /// /// The predicate /// IEnumerable> Where(Func, bool> predicate); /// /// Filter the custom settings dictionary based on a predicate /// /// The predicate IEnumerable> Where(Func, int, bool> predicate); /// /// Filter the custom settings dictionary based on a predicate /// /// The predicate IEnumerable Where(Func, TResult> selector); /// /// Filter the custom settings dictionary based on a predicate /// /// The predicate IEnumerable Where(Func, int, TResult> selector); /// /// Get the first element of the custom settings dictionary based on a predicate /// /// The predicate KeyValuePair FirstOrDefault(Func, bool> predicate); /// /// Get the first element of the custom settings dictionary /// /// KeyValuePair FirstOrDefault(); /// /// Checks if the custom settings dictionary contains all the keys /// /// A list of keys /// bool ContainsAllKeys(params string[] keys); /// /// Try to get the value of a key in the custom settings dictionary /// /// The key /// The value /// bool TryGetValue(string key, out object? value); /// /// Save the custom settings dictionary to a file /// /// Task SaveToFile(); /// /// Load the custom settings dictionary from a file /// /// void LoadFromFile(); }