using System; using System.Collections.Generic; using PepperDash.Essentials.Core.Config; namespace PepperDash.Essentials.Core { /// /// Defines the contract for IDeviceFactory /// public interface IDeviceFactory { /// /// Gets the type of the factory associated with the current instance. /// Type FactoryType { get; } /// /// Gets a list of type names associated with the current plugin. /// List TypeNames { get; } /// /// Builds and returns an instance based on the provided configuration. /// /// The configuration settings used to initialize the device. This parameter cannot be null. /// An instance configured according to the specified . EssentialsDevice BuildDevice(DeviceConfig deviceConfig); } }