<?php /** * Elasticsearch PHP Client * * @link https://github.com/elastic/elasticsearch-php * @copyright Copyright (c) Elasticsearch B.V (https://www.elastic.co) * @license https://opensource.org/licenses/MIT MIT License * * Licensed to Elasticsearch B.V under one or more agreements. * Elasticsearch B.V licenses this file to you under the MIT License. * See the LICENSE file in the project root for more information. */ declare(strict_types = 1); namespace Elastic\Elasticsearch; use Elastic\Elasticsearch\Response\Elasticsearch; use Elastic\Transport\Transport; use Http\Promise\Promise; use Psr\Http\Message\RequestInterface; use Psr\Log\LoggerInterface; interface ClientInterface { /** * Get the Elastic\Transport\Transport */ public function getTransport(): Transport; /** * Get the PSR-3 logger */ public function getLogger(): LoggerInterface; /** * Set the asyncronous HTTP request */ public function setAsync(bool $async): self; /** * Get the asyncronous HTTP request setting */ public function getAsync(): bool; /** * Enable or disable the x-elastic-client-meta header */ public function setElasticMetaHeader(bool $active): self; /** * Get the status of x-elastic-client-meta header */ public function getElasticMetaHeader(): bool; /** * Enable or disable the response Exception */ public function setResponseException(bool $active): self; /** * Get the status of response Exception */ public function getResponseException(): bool; /** * Send the HTTP request using the Elastic Transport. * It manages syncronous and asyncronus requests using Client::getAsync() * * @return Elasticsearch|Promise */ public function sendRequest(RequestInterface $request); }