<?php

declare(strict_types=1);

use apexl\Config\ConfigurationInterface;
use apexl\Io\interfaces\GlobalDataInterface;
use apexl\Io\interfaces\LazyLoadAllowerInterface;
use apexl\Io\interfaces\OutputManagerInterface;
use apexl\Io\modules\system\Factories\ConfigurationFactory;
use apexl\Io\modules\system\interfaces\ModuleFinderInterface;
use apexl\Io\modules\system\services\ConfigModuleFinder;
use apexl\Io\services\GlobalData;
use apexl\Io\services\LazyLoadAllowerFromConfigService;
use apexl\Io\services\SimpleOutputManager;
use function DI\autowire;
use function DI\factory;

return [
    ConfigurationInterface::class => factory([ConfigurationFactory::class, 'make']),
    GlobalDataInterface::class => autowire(GlobalData::class),
    LazyLoadAllowerInterface::class => autowire(LazyLoadAllowerFromConfigService::class),
    ModuleFinderInterface::class => autowire(ConfigModuleFinder::class),
    OutputManagerInterface::class => autowire(SimpleOutputManager::class),
];
