<?php

namespace Src\Modules\Auth\Interfaces\Laravel;

use Illuminate\Contracts\Auth\UserProvider as UserProviderContract;
use Src\Modules\Auth\Interfaces\Laravel\IFactory;
use Src\Modules\Auth\Interfaces\Infrastructure\Storage\IAdminsStorage;
use Src\Modules\Auth\Interfaces\Infrastructure\PersistLayer\IAdminsLayer;
use Src\Modules\Auth\Interfaces\Dto\Admin\IFactory as IAdminDtoFactory;

interface IUserProvider extends UserProviderContract
{
    public function setAdminsLayer(IAdminsLayer $layer): void;
    public function setAdminDtoFactory(IAdminDtoFactory $factory): void;
    public function setAdminsStorage(IAdminsStorage $storage): void;
    public function setFactory(IFactory $factory): void;
}
