<?xml version="1.0" encoding="UTF-8" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <defaults public="false" />

        <service id="fos_elastica.repository_manager" class="FOS\ElasticaBundle\Manager\RepositoryManager" public="true" />

        <service id="fos_elastica.alias_processor" class="FOS\ElasticaBundle\Index\AliasProcessor" />

        <service id="fos_elastica.indexable" class="FOS\ElasticaBundle\Provider\Indexable">
            <argument type="collection" /> <!-- array of indexable callbacks keyed by type name -->
        </service>

        <service id="fos_elastica.index_prototype" class="FOS\ElasticaBundle\Elastica\Index" public="true" abstract="true">
            <argument /> <!-- index name -->
            <!-- tagged with fos_elastica.index in the Extension -->
        </service>

        <service id="fos_elastica.type_prototype" class="Elastica\Type" public="true" abstract="true">
            <argument /> <!-- type name -->
        </service>

        <service id="fos_elastica.index_manager" class="FOS\ElasticaBundle\Index\IndexManager" public="true">
            <argument /> <!-- indexes -->
            <argument type="service" id="fos_elastica.index" /> <!-- default index -->
        </service>
        <service id="FOS\ElasticaBundle\Index\IndexManager" alias="fos_elastica.index_manager"/>

        <service id="fos_elastica.resetter" class="FOS\ElasticaBundle\Index\Resetter" public="true">
            <argument type="service" id="fos_elastica.config_manager" />
            <argument type="service" id="fos_elastica.index_manager" />
            <argument type="service" id="fos_elastica.alias_processor" />
            <argument type="service" id="fos_elastica.mapping_builder" />
            <argument type="service" id="event_dispatcher"/>
        </service>
        <service id="FOS\ElasticaBundle\Index\Resetter" alias="fos_elastica.resetter" />

        <!-- Abstract definition for all finders. -->
        <service id="fos_elastica.finder" class="FOS\ElasticaBundle\Finder\TransformedFinder" public="true" abstract="true">
            <argument /> <!-- searchable -->
            <argument /> <!-- transformer -->
        </service>
    </services>
</container>
