using System;
using System.Collections.ObjectModel;
using System.Runtime.InteropServices;
using Wayne.ForecourtControl.Fusion;
using Wayne.Lib;

namespace Wayne.ForecourtControl.Vir.Fusion
{
    /// <summary>
    /// Data structure carrying the information of a physical tank reading.
    /// </summary>
    [ComVisible(true)]
    public interface IVirId
    {
        string Id{ get; }
    }

    /// <summary>
    /// Data structure carrying the information of a physical tank reading.
    /// </summary>
    [ComVisible(true)]
    public interface IVir
    {
        /// <summary>
        /// Fuel level, read by the probe.
        /// </summary>
        int Id { get; }

        DeviceConnectionState State(string virId);

        ReadOnlyCollection<IVirId> VirIds { get; }

        event EventHandler<VIRStateChangedEventArgs> OnVirIdStateChange;

    }
}