// GENERATED CODE - DO NOT MODIFY BY HAND
// dart format width=80

// **************************************************************************
// InjectableConfigGenerator
// **************************************************************************

// ignore_for_file: type=lint
// coverage:ignore-file

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:dio/dio.dart' as _i361;
import 'package:get_it/get_it.dart' as _i174;
import 'package:injectable/injectable.dart' as _i526;

import '../../feature/auth/data/datasource/auth_datasource.dart' as _i246;
import '../../feature/auth/data/repository/auth_repository_impl.dart' as _i648;
import '../../feature/auth/domain/repository/auth_repository.dart' as _i884;
import '../../feature/auth/domain/usecases/login_usecase.dart' as _i241;
import '../../feature/auth/domain/usecases/register_usecase.dart' as _i607;
import '../../feature/auth/domain/usecases/reset_password_usecase.dart'
    as _i694;
import '../../feature/auth/domain/usecases/verify_otp_code_login_usecase.dart'
    as _i318;
import '../../feature/auth/domain/usecases/verify_otp_code_register_usecase.dart'
    as _i406;
import '../../feature/auth/domain/usecases/verify_phone_login_usecase.dart'
    as _i801;
import '../../feature/auth/domain/usecases/verify_phone_register_usecase.dart'
    as _i664;
import '../../feature/auth/presentation/blocs/login_bloc/login_bloc.dart'
    as _i1065;
import '../../feature/auth/presentation/blocs/verify_otp_bloc/verify_otp_bloc.dart'
    as _i323;
import '../../feature/auth/presentation/blocs/verify_phone_bloc/verify_phone_bloc.dart'
    as _i224;
import '../../feature/basket/presentation/blocs/basket_bloc.dart' as _i728;
import '../../feature/browse/presentation/blocs/browse_bloc/browse_bloc.dart'
    as _i991;
import '../../feature/common/presentation/blocs/language_bloc/language_bloc.dart'
    as _i942;
import '../../feature/home/presentation/blocs/home_bloc/home_bloc.dart'
    as _i1007;
import '../../feature/main/presentation/blocs/main_bloc/main_bloc.dart'
    as _i580;
import '../../feature/on_boarding/presentation/blocs/splash_bloc/splash_bloc.dart'
    as _i311;
import '../../food_delivery_client.dart' as _i321;
import '../network/dio_client.dart' as _i667;
import '../router/app_routes.dart' as _i152;
import '../services/request_handler_service.dart' as _i354;
import '../services/storage_service.dart' as _i306;

extension GetItInjectableX on _i174.GetIt {
  // initializes the registration of main-scope dependencies inside of GetIt
  _i174.GetIt init({
    String? environment,
    _i526.EnvironmentFilter? environmentFilter,
  }) {
    final gh = _i526.GetItHelper(this, environment, environmentFilter);
    final dioModule = _$DioModule();
    gh.factory<_i1007.HomeBloc>(() => _i1007.HomeBloc());
    gh.factory<_i728.BasketBloc>(() => _i728.BasketBloc());
    gh.factory<_i991.BrowseBloc>(() => _i991.BrowseBloc());
    gh.factory<_i580.MainBloc>(() => _i580.MainBloc());
    gh.factory<_i311.SplashBloc>(() => _i311.SplashBloc());
    gh.singleton<_i306.StorageService>(() => _i306.StorageService());
    gh.singleton<_i152.AppRoutes>(() => _i152.AppRoutes());
    gh.lazySingleton<_i667.DioClient>(() => _i667.DioClient());
    gh.factory<_i942.LanguageBloc>(
      () => _i942.LanguageBloc(gh<_i321.StorageService>()),
    );
    gh.lazySingleton<_i361.Dio>(() => dioModule.dio(gh<_i667.DioClient>()));
    gh.singleton<_i354.RequestHandlerService>(
      () => _i354.RequestHandlerService(gh<_i361.Dio>()),
    );
    gh.lazySingleton<_i246.AuthDatasource>(
      () => _i246.AuthDatasourceImpl(gh<_i354.RequestHandlerService>()),
    );
    gh.lazySingleton<_i884.AuthRepository>(
      () => _i648.AuthRepositoryImpl(
        gh<_i354.RequestHandlerService>(),
        gh<_i246.AuthDatasource>(),
      ),
    );
    gh.factory<_i607.RegisterUseCase>(
      () => _i607.RegisterUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i241.LoginUseCase>(
      () => _i241.LoginUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i694.ResetPasswordUseCase>(
      () => _i694.ResetPasswordUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i318.VerifyOtpCodeForgotPasswordUseCase>(
      () =>
          _i318.VerifyOtpCodeForgotPasswordUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i801.VerifyPhoneNumberLoginUseCase>(
      () => _i801.VerifyPhoneNumberLoginUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i664.VerifyPhoneRegisterUseCase>(
      () => _i664.VerifyPhoneRegisterUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i406.VerifyOtpCodeRegisterUseCase>(
      () => _i406.VerifyOtpCodeRegisterUseCase(gh<_i884.AuthRepository>()),
    );
    gh.factory<_i323.VerifyOtpBloc>(
      () => _i323.VerifyOtpBloc(
        gh<_i406.VerifyOtpCodeRegisterUseCase>(),
        gh<_i318.VerifyOtpCodeForgotPasswordUseCase>(),
        gh<_i664.VerifyPhoneRegisterUseCase>(),
        gh<_i801.VerifyPhoneNumberLoginUseCase>(),
      ),
    );
    gh.factory<_i224.VerifyPhoneBloc>(
      () => _i224.VerifyPhoneBloc(
        gh<_i801.VerifyPhoneNumberLoginUseCase>(),
        gh<_i664.VerifyPhoneRegisterUseCase>(),
      ),
    );
    gh.factory<_i1065.LoginBloc>(
      () => _i1065.LoginBloc(
        gh<_i241.LoginUseCase>(),
        gh<_i321.StorageService>(),
      ),
    );
    return this;
  }
}

class _$DioModule extends _i667.DioModule {}
