package com.optix.android.di;

import android.content.Context;
import com.optix.android.ai.providers.AiProviderFactory;
import com.optix.android.tools.engine.ShellExecutor;
import com.optix.android.tools.registry.ToolRegistry;
import dagger.internal.DaggerGenerated;
import dagger.internal.Factory;
import dagger.internal.Preconditions;
import dagger.internal.QualifierMetadata;
import dagger.internal.ScopeMetadata;
import javax.annotation.processing.Generated;
import javax.inject.Provider;
import okhttp3.OkHttpClient;

@ScopeMetadata("javax.inject.Singleton")
@QualifierMetadata("dagger.hilt.android.qualifiers.ApplicationContext")
@DaggerGenerated
@Generated(
    value = "dagger.internal.codegen.ComponentProcessor",
    comments = "https://dagger.dev"
)
@SuppressWarnings({
    "unchecked",
    "rawtypes",
    "KotlinInternal",
    "KotlinInternalInJava",
    "cast",
    "deprecation"
})
public final class ToolModule_ProvideToolRegistryFactory implements Factory<ToolRegistry> {
  private final Provider<OkHttpClient> okHttpClientProvider;

  private final Provider<Context> contextProvider;

  private final Provider<AiProviderFactory> providerFactoryProvider;

  private final Provider<ShellExecutor> shellProvider;

  public ToolModule_ProvideToolRegistryFactory(Provider<OkHttpClient> okHttpClientProvider,
      Provider<Context> contextProvider, Provider<AiProviderFactory> providerFactoryProvider,
      Provider<ShellExecutor> shellProvider) {
    this.okHttpClientProvider = okHttpClientProvider;
    this.contextProvider = contextProvider;
    this.providerFactoryProvider = providerFactoryProvider;
    this.shellProvider = shellProvider;
  }

  @Override
  public ToolRegistry get() {
    return provideToolRegistry(okHttpClientProvider.get(), contextProvider.get(), providerFactoryProvider.get(), shellProvider.get());
  }

  public static ToolModule_ProvideToolRegistryFactory create(
      Provider<OkHttpClient> okHttpClientProvider, Provider<Context> contextProvider,
      Provider<AiProviderFactory> providerFactoryProvider, Provider<ShellExecutor> shellProvider) {
    return new ToolModule_ProvideToolRegistryFactory(okHttpClientProvider, contextProvider, providerFactoryProvider, shellProvider);
  }

  public static ToolRegistry provideToolRegistry(OkHttpClient okHttpClient, Context context,
      AiProviderFactory providerFactory, ShellExecutor shell) {
    return Preconditions.checkNotNullFromProvides(ToolModule.INSTANCE.provideToolRegistry(okHttpClient, context, providerFactory, shell));
  }
}
