<?php
namespace Fifa\ConnectId\Sdk\ApiClient\Hashing;

use Fifa\ConnectId\Sdk\Exception\FifaConnectIdException;
use Fifa\ConnectId\Sdk\Exception\InvalidClientDataException;
use Fifa\ConnectId\Sdk\Exception\TooManyRequestsException;
use Fifa\ConnectId\Sdk\Exception\UnauthorizedException;
use Fifa\ConnectId\Sdk\Model\PersonName;
use Fifa\ConnectId\Sdk\Api\Model\HashedNameType;
use Fifa\ConnectServiceBus\Sdk\Exception\AuthenticationException;
use InvalidArgumentException;

/**
 * Interface HashingApiInterface
 * @package Fifa\ConnectId\Sdk\ApiClient\Hashing
 */
interface HashingApiInterface
{
    /**
     * Compute hashes and return the results as an array
     *
     * @param PersonName[] $personNames
     * @param bool $readOnly
     * @return HashedNameType[]
     *
     * @throws InvalidArgumentException
     * @throws InvalidClientDataException
     * @throws FifaConnectIdException
     * @throws AuthenticationException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     */
    public function computeHashes(array $personNames, bool $readOnly): array;
}