<?php
namespace MageWorx\OptionBase\Plugin\ExtendPriceConfig;

/**
 * Interceptor class for @see \MageWorx\OptionBase\Plugin\ExtendPriceConfig
 */
class Interceptor extends \MageWorx\OptionBase\Plugin\ExtendPriceConfig implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Framework\Pricing\Helper\Data $pricingHelper, \Magento\Catalog\Helper\Data $catalogData, \Magento\Framework\Json\EncoderInterface $jsonEncoder, \Magento\Catalog\Model\Product\Option $option, \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, \MageWorx\OptionBase\Helper\Price $basePriceHelper, \Magento\Framework\Json\DecoderInterface $jsonDecoder, array $data = [])
    {
        $this->___init();
        parent::__construct($context, $pricingHelper, $catalogData, $jsonEncoder, $option, $registry, $arrayUtils, $priceCurrency, $basePriceHelper, $jsonDecoder, $data);
    }

    /**
     * {@inheritdoc}
     */
    public function getExtendedOptionValueJsonConfig(array $defaultConfig, \Magento\Catalog\Model\Product\Option $option, int $valueId, \Magento\Catalog\Model\Product\Option\Value $value) : array
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getExtendedOptionValueJsonConfig');
        return $pluginInfo ? $this->___callPlugins('getExtendedOptionValueJsonConfig', func_get_args(), $pluginInfo) : parent::getExtendedOptionValueJsonConfig($defaultConfig, $option, $valueId, $value);
    }

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

    /**
     * {@inheritdoc}
     */
    public function getOptionHtml(\Magento\Catalog\Model\Product\Option $option)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getOptionHtml');
        return $pluginInfo ? $this->___callPlugins('getOptionHtml', func_get_args(), $pluginInfo) : parent::getOptionHtml($option);
    }

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