namespace Artemis.Core.Providers;
///
/// Represents a class that can provide Artemis layouts for devices.
///
public interface ILayoutProvider
{
///
/// If available, loads an Artemis layout for the provided device.
///
/// The device to load the layout for.
/// The resulting layout if one was available; otherwise .
ArtemisLayout? GetDeviceLayout(ArtemisDevice device);
///
/// Applies the layout to the provided device.
///
/// The device to apply to.
/// The layout to apply.
void ApplyLayout(ArtemisDevice device, ArtemisLayout layout);
///
/// Determines whether the provided device is configured to use this layout provider.
///
/// The device to check.
/// A value indicating whether the provided device is configured to use this layout provider.
bool IsMatch(ArtemisDevice device);
}