<?php

declare(strict_types=1);

namespace NoahVet\Reef\Factory;

use NoahVet\Reef\Jane\Client;

interface ClientFactoryInterface
{
    /**
     * Le client API général est déprécié, utiliser les clients spécifiques pour chaque projet.
     *
     * @deprecated
     * @see ClientFactoryInterface::createClient
     */
    public function create(string $bearerToken): Client;

    /**
     * @template TClient of object
     *
     * @param class-string<TClient> $clientClass
     *
     * @return TClient
     */
    public function createClient(string $bearerToken, string $clientClass): object;
}
