using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace RGB.NET.Core
{
///
/// Represents a generic device provider.
///
public interface IRGBDeviceProvider : IDisposable
{
#region Properties & Fields
///
/// Indicates if the used SDK is initialized and ready to use.
///
bool IsInitialized { get; }
///
/// Gets a list of loaded by this .
///
IEnumerable Devices { get; }
ReadOnlyCollection<(int id, IDeviceUpdateTrigger trigger)> UpdateTriggers { get; }
#endregion
#region Events
///
/// Occurs when an exception is thrown in the device provider
///
event EventHandler? Exception;
#endregion
#region Methods
bool Initialize(RGBDeviceType loadFilter = RGBDeviceType.All, bool throwExceptions = false);
#endregion
}
}