using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Verification.Read;
using Valg.EVA.Skanning.ServicesModel.ServiceContracts.Verification.Write;

namespace Valg.EVA.Skanning.Services.Verification
{
    public interface IVerificationService
    {
        GetNextBallotPaperToVerifyResult GetNextBallotPaperToVerify(GetNextBallotPaperToVerifyParameters parameters);
        SaveBallotPaperVerificationsResult SaveBallotPaperVerifications(SaveBallotPaperVerificationsParameters parameters);
        GetBoxAggregatedStatusForVerifyResult GetBoxAggregatedStatusForVerify(GetBoxAggregatedStatusForVerifyParameters parameters);
        GetBallotPaperResult GetBallotPaper(GetBallotPaperParameters parameters);
        GetBallotPaperIdsResult GetBallotPaperIdsVerified(GetBallotPaperIdsVerifiedParameters parameters);
        RevokeBallotPaperSeenStatusResult RevokeBallotPaperSeenStatus(RevokeBallotPaperSeenStatusParameters parameters);
        GetBallotPaperImagesResult GetBallotPaperImages(GetBallotPaperImagesParameters parameters);
        BoxAggregatedStatusForVerify GetFirstBoxAggregatedStatusForVerify(string contestId, string areaContextFilter, string emlAreaContextId, string electionEventId);
        bool IsBoxStillOpenForVerification(int boxCountingId);
        BallotPaperPositionInBox GetBallotPaperPositionInBox(int ballotPaperId, int boxCountingId);
    }
}
