using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tango.PPC.Common.MachineSetup
{
/// <summary>
/// Represents a machine setup manager responsible for first time usage application and embedded device provisioning.
/// </summary>
public interface IMachineSetupManager
{
MachineSetupProgress Status { get; }
/// <summary>
/// Occurs when there is a text log message available.
/// </summary>
event EventHandler<String> ProgressLog;
/// <summary>
/// Occurs when the setup has made some progress.
/// </summary>
event EventHandler<MachineSetupProgress> Progress;
/// <summary>
/// Performs a machine setup using the specified serial number and machine service address.
/// </summary>
/// <param name="serialNumber">The serial number.</param>
/// <returns></returns>
Task<MachineSetupResult> Setup(String serialNumber);
}
}