using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Valg.EVA.Skanning.ServicesModel.Internal.SystemSettings
{
    public interface ISystemSettingsProvider
    {
        void PreloadData();
        int GetStampFillPercentageMinimum();
        int GetPersonVoteFillPercentageMinimum();
        int GetPersonVoteFillPercentageMaximum();
        int GetStrikeOutFillPercentageMinimum();
        int GetStrikeOutFillPercentageMaximum();
        int GetBallotIdLength();
        int GetBallotNumberLength();
        int GetBarcodeLongLength();
        int GetBarcodeShortLength();
        string GetGeneralMunicipalityAffiliationList();
        string GetGeneralCountyAffiliationList();
        string GetGeneralOsloDistrictAffiliationList();
        string GetGeneralParliamentAffiliationList();
        int GetDataRefreshInterval();
        string GetOsloDistrictList();
        List<int> GetValidLengthsForBallotId();
        int GetGeneralBallotPartyVoteFillPercentageMinimum();
        int GetGeneralBallotPartyVoteFillPercentageMaximum();
        int GetBarcodeShortBoroughLength();
        string GetProductionCertificateIssuerParams();
        string GetTrainingCertificateIssuerParams();
        AdditionalElectionConfiguration GetAdditionalElectionConfiguration(string electionEventId, string electionId, string electionGroupId, string contestId);
        int GetTransferStatusCheckTimeoutInterval();
        ReadOnlyCollection<BallotPaperLayoutDescription> GetBallotPaperLayoutDescriptions();
        bool GetShowBlankBallotInVerification();
	    float GetMinimumTesseractConfidence();

    }
}
