<?php
namespace Amasty\ElasticSearch\Model\Search\GetRequestQuery;

/**
 * Interceptor class for @see \Amasty\ElasticSearch\Model\Search\GetRequestQuery
 */
class Interceptor extends \Amasty\ElasticSearch\Model\Search\GetRequestQuery implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Amasty\ElasticSearch\Model\Config $config, \Amasty\ElasticSearch\Model\Search\GetRequestQuery\GetAggregations $getAggregations, \Amasty\ElasticSearch\Model\Search\GetRequestQuery\SortingProvider $sortingProvider, \Amasty\ElasticSearch\Api\RelevanceRuleRepositoryInterface $relevanceRuleRepository, array $subqueryInjectors, array $requestNamesForApplyRelevanceRules = [])
    {
        $this->___init();
        parent::__construct($config, $getAggregations, $sortingProvider, $relevanceRuleRepository, $subqueryInjectors, $requestNamesForApplyRelevanceRules);
    }

    /**
     * {@inheritdoc}
     */
    public function execute(\Magento\Framework\Search\RequestInterface $request): array
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'execute');
        return $pluginInfo ? $this->___callPlugins('execute', func_get_args(), $pluginInfo) : parent::execute($request);
    }

    /**
     * {@inheritdoc}
     */
    public function isCanApplyRelevanceSorting(\Magento\Framework\Search\RequestInterface $request): bool
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isCanApplyRelevanceSorting');
        return $pluginInfo ? $this->___callPlugins('isCanApplyRelevanceSorting', func_get_args(), $pluginInfo) : parent::isCanApplyRelevanceSorting($request);
    }
}
