<?php

namespace Src\Modules\Auth\Interfaces\Infrastructure;

use Src\Modules\Auth\Interfaces\IFactory as IModuleFactory;
use Src\Modules\Auth\Interfaces\Infrastructure\Queries\IFactory as IQueriesFactory;
use Src\Modules\Auth\Interfaces\Infrastructure\Storage\IFactory as IStorageFactory;
use Src\Modules\Auth\Interfaces\Infrastructure\PersistLayer\IFactory as IPersistLayerFactory;

interface IFactory
{
    public function setModuleFactory(IModuleFactory $factory): void;
    public function getModuleFactory(): IModuleFactory;
    public function getPersistLayerFactory(): IPersistLayerFactory;
    public function getQueriesFactory(): IQueriesFactory;
    public function getStorageFactory(): IStorageFactory;
    
}