package com.alorma.github.injector.component;
import com.alorma.github.injector.component.issues.IssueDetailComponent;
import com.alorma.github.injector.component.issues.IssueLabelsComponent;
import com.alorma.github.injector.component.issues.IssuesComponent;
import com.alorma.github.injector.component.issues.UserIssuesComponent;
import com.alorma.github.injector.component.repository.AuthOrgsRepositoriesComponent;
import com.alorma.github.injector.component.repository.CurrentAccountRepositoriesComponent;
import com.alorma.github.injector.component.repository.MembershipRepositoriesComponent;
import com.alorma.github.injector.component.repository.OrganizationRepositoriesComponent;
import com.alorma.github.injector.component.repository.RepoDetailComponent;
import com.alorma.github.injector.component.repository.RepositoryMilestonesComponent;
import com.alorma.github.injector.component.repository.RepositoryReadmeComponent;
import com.alorma.github.injector.component.repository.StarredRepositoriesComponent;
import com.alorma.github.injector.component.repository.UsernameRepositoriesComponent;
import com.alorma.github.injector.component.repository.WatchedRepositoriesComponent;
import com.alorma.github.injector.component.repository.tags.RepositoryTagsComponent;
import com.alorma.github.injector.module.ApiModule;
import com.alorma.github.injector.module.CommitDetailModule;
import com.alorma.github.injector.module.NavigationModule;
import com.alorma.github.injector.module.RepositorySourceModule;
import com.alorma.github.injector.module.UserNotificationsModule;
import com.alorma.github.injector.module.issues.IssueDetailModule;
import com.alorma.github.injector.module.issues.IssueLabelsModule;
import com.alorma.github.injector.module.issues.IssuesModule;
import com.alorma.github.injector.module.issues.UserIssuesModule;
import com.alorma.github.injector.module.repository.AuthOrgsRepositoriesModule;
import com.alorma.github.injector.module.repository.CurrentAccountRepositoriesModule;
import com.alorma.github.injector.module.repository.MembershipRepositoriesModule;
import com.alorma.github.injector.module.repository.OrganizationRepositoriesModule;
import com.alorma.github.injector.module.repository.RepoDetailModule;
import com.alorma.github.injector.module.repository.RepositoryMilestonesModule;
import com.alorma.github.injector.module.repository.RepositoryReadmeModule;
import com.alorma.github.injector.module.repository.StarredRepositoriesModule;
import com.alorma.github.injector.module.repository.UsernameRepositoriesModule;
import com.alorma.github.injector.module.repository.WatchedRepositoriesModule;
import com.alorma.github.injector.module.repository.tags.RepositoryTagsModule;
import com.alorma.github.injector.named.IOScheduler;
import com.alorma.github.injector.named.MainScheduler;
import com.alorma.github.injector.scope.PerActivity;
import com.alorma.github.ui.actions.AssigneeAction;
import core.ApiClient;
import dagger.Component;
import rx.Scheduler;
@PerActivity @Component(dependencies = ApplicationComponent.class, modules = ApiModule.class) public interface ApiComponent {
ApiClient getApiClient();
@MainScheduler
Scheduler provideMainScheduler();
@IOScheduler
Scheduler provideIOScheduler();
void inject(AssigneeAction assigneeAction);
// next components with its own tree
UserIssuesComponent plus(UserIssuesModule module);
IssuesComponent plus(IssuesModule module);
RepositoryTagsComponent plus(RepositoryTagsModule module);
MembershipRepositoriesComponent plus(MembershipRepositoriesModule module);
OrganizationRepositoriesComponent plus(OrganizationRepositoriesModule module);
CurrentAccountRepositoriesComponent plus(CurrentAccountRepositoriesModule module);
AuthOrgsRepositoriesComponent plus(AuthOrgsRepositoriesModule module);
StarredRepositoriesComponent plus(StarredRepositoriesModule module);
UsernameRepositoriesComponent plus(UsernameRepositoriesModule module);
WatchedRepositoriesComponent plus(WatchedRepositoriesModule module);
IssueDetailComponent plus(IssueDetailModule module);
RepositorySourceComponent plus(RepositorySourceModule module);
UserNotificationsComponent plus(UserNotificationsModule module);
CommitDetailComponent plus(CommitDetailModule module);
NavigationComponent plus(NavigationModule module);
RepoDetailComponent plus(RepoDetailModule module);
IssueLabelsComponent plus(IssueLabelsModule module);
RepositoryMilestonesComponent plus(RepositoryMilestonesModule module);
RepositoryReadmeComponent plus(RepositoryReadmeModule module);
}