<?php
namespace Leadlion\Autogedal\Model\SeoOptionsModifier\UniqueBuilder;

/**
 * Interceptor class for @see \Leadlion\Autogedal\Model\SeoOptionsModifier\UniqueBuilder
 */
class Interceptor extends \Leadlion\Autogedal\Model\SeoOptionsModifier\UniqueBuilder implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Catalog\Model\Product\Url $productUrl, ?\Amasty\ShopbySeo\Model\ConfigProvider $configProvider)
    {
        $this->___init();
        parent::__construct($productUrl, $configProvider);
    }

    /**
     * {@inheritdoc}
     */
    public function execute(string $value, $optionId = 0, bool $forceUniqueValue = false): string
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'execute');
        return $pluginInfo ? $this->___callPlugins('execute', func_get_args(), $pluginInfo) : parent::execute($value, $optionId, $forceUniqueValue);
    }

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

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