<?php

namespace ContainerXAyNPD7;

use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;

/*
 * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
 */
class getTicketRuleEngineService extends App_KernelProdContainer
{
    /*
     * Gets the private 'App\Core\Support\Automation\TicketRuleEngine' shared autowired service.
     *
     * @return \App\Core\Support\Automation\TicketRuleEngine
     */
    public static function do($container, $lazyLoad = true)
    {
        $a = ($container->privates['App\\Core\\Support\\Service\\SupportTicketStateMachine'] ?? $container->load('getSupportTicketStateMachineService'));

        if (isset($container->privates['App\\Core\\Support\\Automation\\TicketRuleEngine'])) {
            return $container->privates['App\\Core\\Support\\Automation\\TicketRuleEngine'];
        }

        $instance = new \App\Core\Support\Automation\TicketRuleEngine(new RewindableGenerator(function () use ($container) {
            yield 0 => ($container->privates['App\\Core\\Support\\Automation\\Rule\\AutoAssignByTypologyRule'] ?? $container->load('getAutoAssignByTypologyRuleService'));
            yield 1 => ($container->privates['App\\Core\\Support\\Automation\\Rule\\AutoCloseInactivityRule'] ??= new \App\Core\Support\Automation\Rule\AutoCloseInactivityRule());
            yield 2 => ($container->privates['App\\Core\\Support\\Automation\\Rule\\CarrierRepliedStatusRule'] ??= new \App\Core\Support\Automation\Rule\CarrierRepliedStatusRule());
            yield 3 => ($container->privates['App\\Core\\Support\\Automation\\Rule\\PriorityEscalationRule'] ?? $container->load('getPriorityEscalationRuleService'));
            yield 4 => ($container->privates['App\\Core\\Support\\Automation\\Rule\\SlaCarrierWaitRule'] ?? $container->load('getSlaCarrierWaitRuleService'));
        }, 5), new \App\Core\Support\Automation\AutomationFlags(($container->privates['App\\Core\\Service\\ParameterService'] ?? self::getParameterServiceService($container))), ($container->privates['App\\Core\\Support\\Service\\SupportTicketAuditor'] ??= new \App\Core\Support\Service\SupportTicketAuditor()), $a, ($container->privates['monolog.logger'] ?? self::getMonolog_LoggerService($container)));

        if (isset($container->privates['App\\Core\\Support\\Automation\\TicketRuleEngine'])) {
            return $container->privates['App\\Core\\Support\\Automation\\TicketRuleEngine'];
        }

        return $container->privates['App\\Core\\Support\\Automation\\TicketRuleEngine'] = $instance;
    }
}
