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); }