1<?php
2/**
3 * @author      Alex Bilbie <hello@alexbilbie.com>
4 * @copyright   Copyright (c) Alex Bilbie
5 * @license     http://mit-license.org/
6 *
7 * @link        https://github.com/thephpleague/oauth2-server
8 */
9
10namespace League\OAuth2\Server\Repositories;
11
12use League\OAuth2\Server\Entities\ClientEntityInterface;
13
14/**
15 * Client storage interface.
16 */
17interface ClientRepositoryInterface extends RepositoryInterface
18{
19    /**
20     * Get a client.
21     *
22     * @param string      $clientIdentifier   The client's identifier
23     * @param null|string $grantType          The grant type used (if sent)
24     * @param null|string $clientSecret       The client's secret (if sent)
25     * @param bool        $mustValidateSecret If true the client must attempt to validate the secret if the client
26     *                                        is confidential
27     *
28     * @return ClientEntityInterface
29     */
30    public function getClientEntity($clientIdentifier, $grantType = null, $clientSecret = null, $mustValidateSecret = true);
31}
32