using Valg.EVA.Skanning.Commands.StartScanning;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Box.Read;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Count.Read;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Count.Write;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Scan.Write;

namespace Valg.EVA.Skanning.Services.Scan
{
    public interface IScanService
    {
        RegisterBoxForCountingResult RegisterBoxForCounting(RegisterBoxForCountingParameters parameters);
        BoxCounting GetBoxCountingById(int boxCountingId);
        BoxCountingWithElectionData GetBoxCountingWithElectionData(string barcodeLong, string barcodeShort, int countingId);
        ScannableCounting[] GetScannableCountings(string barcodeLong, string barcodeShort);
        SaveScannedBallotPaperResult SaveScannedBallotPaper(SaveScannedBallotPaperParameters parameters);
        StartScanningCommandResult StartScanning(StartScanningParameters parameters);
        BoxIsCompletelyScannedResult BoxIsCompletelyScanned(BoxIsCompletelyScannedParameters parameters);
    }
}
