<?php
namespace Yoast\WP\SEO\AI_HTTP_Request\Infrastructure;
use Exception;
use Yoast\WP\SEO\AI_HTTP_Request\Domain\Exceptions\WP_Request_Exception;
/**
* Interface for the API client.
*/
interface API_Client_Interface {
/**
* Performs a request to the API.
*
* @param string $action_path The action path for the request.
* @param array<string> $body The body of the request.
* @param array<string> $headers The headers for the request.
* @param bool $is_post Whether the request is a POST request.
*
* @return array<int|string|array<string>> The response from the API.
*
* @throws WP_Request_Exception When the wp_remote_post() returns an error.
*/
public function perform_request( string $action_path, $body, $headers, bool $is_post ): array;
/**
* Gets the timeout of the requests in seconds.
*
* @return int The timeout of the suggestion requests in seconds.
*/
public function get_request_timeout(): int;
}