using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.TransferCounting.Read;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.TransferCounting.Write;

namespace Valg.EVA.Skanning.Services.TransferCounting
{
    public interface ITransferCountingService
    {
        Task<TransferCountingResult> TransferCountingAsync(TransferCountingParameters parameters);
        ReadOnlyCollection<Transfer> GetTransfers(string electionEventId, string contestId, string countingEmlAreaContextId);
        TransferDetails GetTransferDetails(int countingId);
        Task<int> SaveResultFileForTransferAsync(int transferJobId, string userName, byte[] resultArchive);
        Task RefreshUpdatedTimestampOnTransferAsync(int transferId, string userName, DateTime lastUpdated);
    }
}
