package com.novoda.todoapp.tasks.service;
import com.novoda.data.SyncedData;
import com.novoda.event.Event;
import com.novoda.todoapp.task.data.model.Id;
import com.novoda.todoapp.task.data.model.Task;
import com.novoda.todoapp.tasks.data.model.Tasks;
import rx.Observable;
import rx.functions.Action0;
public interface TasksService {
Observable<Tasks> getTasks();
Observable<Event<Tasks>> getTasksEvents();
Observable<Tasks> getCompletedTasks();
Observable<Event<Tasks>> getCompletedTasksEvents();
Observable<Tasks> getActiveTasks();
Observable<Event<Tasks>> getActiveTasksEvents();
Observable<SyncedData<Task>> getTask(Id taskId);
Action0 refreshTasks();
Action0 clearCompletedTasks();
Action0 deleteAllTasks();
Action0 complete(Task task);
Action0 activate(Task task);
Action0 save(Task task);
}