<?php declare( strict_types=1 );

namespace TEC\Common\LiquidWeb\Harbor\Http;

use TEC\Common\LiquidWeb\LicensingApiClientWordPress\Http\WordPressHttpClient;
use TEC\Common\Nyholm\Psr7\Factory\Psr17Factory;
use TEC\Common\Psr\Http\Client\ClientInterface;
use TEC\Common\Psr\Http\Message\RequestFactoryInterface;
use TEC\Common\Psr\Http\Message\StreamFactoryInterface;
use TEC\Common\LiquidWeb\Harbor\Contracts\Abstract_Provider;

/**
 * Registers shared PSR-17 HTTP message factories in the DI container.
 *
 * @since 1.0.0
 */
final class Provider extends Abstract_Provider {

	/**
	 * @inheritDoc
	 */
	public function register(): void {
		$this->container->singleton( WordPressHttpClient::class );
		$this->container->singleton( ClientInterface::class, WordPressHttpClient::class );
		$this->container->singleton( Psr17Factory::class );
		$this->container->singleton( RequestFactoryInterface::class, Psr17Factory::class );
		$this->container->singleton( StreamFactoryInterface::class, Psr17Factory::class );
	}
}
