package com.khmelenko.lab.varis.dagger.component;
import com.khmelenko.lab.varis.dagger.module.ApplicationModule;
import com.khmelenko.lab.varis.dagger.module.NetworkModule;
import com.khmelenko.lab.varis.dagger.module.NotificationModule;
import com.khmelenko.lab.varis.dagger.module.StorageModule;
import com.khmelenko.lab.varis.dagger.module.TaskModule;
import com.khmelenko.lab.varis.mvp.MvpPresenter;
import com.khmelenko.lab.varis.network.retrofit.travis.TravisRestClient;
import com.khmelenko.lab.varis.storage.CacheStorage;
import com.khmelenko.lab.varis.task.TaskManager;
import com.khmelenko.lab.varis.util.PresenterKeeper;
import javax.inject.Singleton;
import dagger.Component;
import de.greenrobot.event.EventBus;
/**
* Base component
*
* @author Dmytro Khmelenko (d.khmelenko@gmail.com)
*/
@Singleton
@Component(modules = {NetworkModule.class, NotificationModule.class, TaskModule.class,
StorageModule.class, ApplicationModule.class})
public interface BaseComponent {
TravisRestClient restClient();
EventBus eventBus();
TaskManager taskManager();
CacheStorage cache();
PresenterKeeper<MvpPresenter> presenterKeeper();
}