<?php
namespace Amasty\Xsearch\Helper\Data;

/**
 * Interceptor class for @see \Amasty\Xsearch\Helper\Data
 */
class Interceptor extends \Amasty\Xsearch\Helper\Data implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Catalog\Model\Config $configAttribute, \Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection $collection, \Magento\Search\Helper\Data $searchHelper, \Magento\Framework\Filter\StripTags $stripTags, \Magento\Framework\App\Helper\Context $context, \Magento\Customer\Model\SessionFactory $sessionFactory, \Amasty\Xsearch\Model\Config $moduleConfigProvider)
    {
        $this->___init();
        parent::__construct($configAttribute, $collection, $searchHelper, $stripTags, $context, $sessionFactory, $moduleConfigProvider);
    }

    /**
     * {@inheritdoc}
     */
    public function getModuleConfig($path)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getModuleConfig');
        return $pluginInfo ? $this->___callPlugins('getModuleConfig', func_get_args(), $pluginInfo) : parent::getModuleConfig($path);
    }

    /**
     * {@inheritdoc}
     */
    public function isIndexEnable($block = null)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isIndexEnable');
        return $pluginInfo ? $this->___callPlugins('isIndexEnable', func_get_args(), $pluginInfo) : parent::isIndexEnable($block);
    }

    /**
     * {@inheritdoc}
     */
    public function highlight($text, $query)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'highlight');
        return $pluginInfo ? $this->___callPlugins('highlight', func_get_args(), $pluginInfo) : parent::highlight($text, $query);
    }

    /**
     * {@inheritdoc}
     */
    public function getTabTitle(string $tabType)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getTabTitle');
        return $pluginInfo ? $this->___callPlugins('getTabTitle', func_get_args(), $pluginInfo) : parent::getTabTitle($tabType);
    }

    /**
     * {@inheritdoc}
     */
    public function pushItem(string $position, \Magento\Framework\View\Element\Template $block, array &$result)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'pushItem');
        return $pluginInfo ? $this->___callPlugins('pushItem', func_get_args(), $pluginInfo) : parent::pushItem($position, $block, $result);
    }

    /**
     * {@inheritdoc}
     */
    public function getBlocksHtml(\Magento\Framework\View\Layout $layout)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getBlocksHtml');
        return $pluginInfo ? $this->___callPlugins('getBlocksHtml', func_get_args(), $pluginInfo) : parent::getBlocksHtml($layout);
    }

    /**
     * {@inheritdoc}
     */
    public function getProductAttributes($requiredData = '')
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getProductAttributes');
        return $pluginInfo ? $this->___callPlugins('getProductAttributes', func_get_args(), $pluginInfo) : parent::getProductAttributes($requiredData);
    }

    /**
     * {@inheritdoc}
     */
    public function isSingleProductRedirect()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isSingleProductRedirect');
        return $pluginInfo ? $this->___callPlugins('isSingleProductRedirect', func_get_args(), $pluginInfo) : parent::isSingleProductRedirect();
    }

    /**
     * {@inheritdoc}
     */
    public function getResultUrl($query = null)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getResultUrl');
        return $pluginInfo ? $this->___callPlugins('getResultUrl', func_get_args(), $pluginInfo) : parent::getResultUrl($query);
    }

    /**
     * {@inheritdoc}
     */
    public function isNoIndexFollowEnabled()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isNoIndexFollowEnabled');
        return $pluginInfo ? $this->___callPlugins('isNoIndexFollowEnabled', func_get_args(), $pluginInfo) : parent::isNoIndexFollowEnabled();
    }

    /**
     * {@inheritdoc}
     */
    public function isSeoUrlsEnabled()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isSeoUrlsEnabled');
        return $pluginInfo ? $this->___callPlugins('isSeoUrlsEnabled', func_get_args(), $pluginInfo) : parent::isSeoUrlsEnabled();
    }

    /**
     * {@inheritdoc}
     */
    public function getSeoKey()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getSeoKey');
        return $pluginInfo ? $this->___callPlugins('getSeoKey', func_get_args(), $pluginInfo) : parent::getSeoKey();
    }

    /**
     * {@inheritdoc}
     */
    public function setStrippedQueryText($query, $engine = 'mysql')
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'setStrippedQueryText');
        return $pluginInfo ? $this->___callPlugins('setStrippedQueryText', func_get_args(), $pluginInfo) : parent::setStrippedQueryText($query, $engine);
    }

    /**
     * {@inheritdoc}
     */
    public function getCurrentSearchEngineCode()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getCurrentSearchEngineCode');
        return $pluginInfo ? $this->___callPlugins('getCurrentSearchEngineCode', func_get_args(), $pluginInfo) : parent::getCurrentSearchEngineCode();
    }

    /**
     * {@inheritdoc}
     */
    public function getCustomerGroupId()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getCustomerGroupId');
        return $pluginInfo ? $this->___callPlugins('getCustomerGroupId', func_get_args(), $pluginInfo) : parent::getCustomerGroupId();
    }

    /**
     * {@inheritdoc}
     */
    public function isModuleOutputEnabled($moduleName = null)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'isModuleOutputEnabled');
        return $pluginInfo ? $this->___callPlugins('isModuleOutputEnabled', func_get_args(), $pluginInfo) : parent::isModuleOutputEnabled($moduleName);
    }
}
