services:
    _defaults:
        public: true
        autowire: true
        autoconfigure: true

    PoP\ComponentModel\Cache\PersistentCacheInterface:
        class: \PoP\Engine\Cache\Cache
        arguments:
            $cacheItemPool: '@persistent_cache_item_pool'

    PoP\ComponentModel\Cache\TransientCacheInterface:
        class: \PoP\Engine\Cache\Cache
        arguments:
            $cacheItemPool: '@transient_cache_item_pool'

    PoP\Engine\ObjectModels\Root:
        class: \PoP\Engine\ObjectModels\Root

    PoP\Engine\ObjectModels\SuperRoot:
        class: \PoP\Engine\ObjectModels\SuperRoot

    PoP\Engine\Hooks\:
        resource: '../src/Hooks/*'

    PoP\Engine\Checkpoints\:
        resource: '../src/Checkpoints/*'

    PoP\Engine\TypeResolvers\:
        resource: '../src/TypeResolvers/*'

    PoP\Engine\Schema\SchemaDefinitionServiceInterface:
        class: \PoP\Engine\Schema\SchemaDefinitionService

    PoP\Engine\FeedbackItemProviders\:
        resource: '../src/FeedbackItemProviders/*'
