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