#nullable enable
namespace Terminal.Gui;
///
/// Describes the location of the configuration files. The constants can be combined (bitwise) to specify multiple
/// locations. The more significant the bit, the higher the priority meaning that the last location will override the
/// earlier ones.
///
[Flags]
public enum ConfigLocations
{
/// No configuration will be loaded.
///
/// Used for development and testing only. For Terminal,Gui to function properly, at least
/// should be set.
///
None = 0,
///
/// Deafult configuration in Terminal.Gui.dll's resources (Terminal.Gui.Resources.config.json).
///
Default = 0b_0000_0001,
///
/// App resources (e.g. MyApp.Resources.config.json).
///
AppResources = 0b_0000_0010,
///
/// Settings in the static property.
///
Runtime = 0b_0000_0100,
///
/// Global settings in the current directory (e.g. ./.tui/config.json).
///
GlobalCurrent = 0b_0000_1000,
///
/// Global settings in the home directory (e.g. ~/.tui/config.json).
///
GlobalHome = 0b_0001_0000,
///
/// App settings in the current directory (e.g. ./.tui/MyApp.config.json).
///
AppCurrent = 0b_0010_0000,
///
/// App settings in the home directory (e.g. ~/.tui/MyApp.config.json).
///
AppHome = 0b_0100_0000,
/// This constant is a combination of all locations
All = 0b_1111_1111
}