package com.kickstarter.viewmodels.outputs;
import android.util.Pair;
import com.kickstarter.services.apiresponses.ErrorEnvelope;
import rx.Observable;
public interface LoginToutViewModelOutputs {
/**
* Emits when a user has successfully logged in; the login flow should finish with a result indicating success.
*/
Observable<Void> finishWithSuccessfulResult();
/**
* Emits when a user has failed to authenticate using Facebook.
*/
Observable<String> showFacebookAuthorizationErrorDialog();
/**
* Emits when the API was unable to create a new Facebook user.
*/
Observable<String> showFacebookInvalidAccessTokenErrorToast();
/**
* Emits when the API could not retrieve an email for the Facebook user.
*/
Observable<String> showMissingFacebookEmailErrorToast();
/**
* Emits when a login attempt is unauthorized.
*/
Observable<String> showUnauthorizedErrorDialog();
/**
* Emits a Facebook user and an access token string to confirm Facebook signup.
*/
Observable<Pair<ErrorEnvelope.FacebookUser, String>> startFacebookConfirmationActivity();
/**
* Emits when the login activity should be started.
*/
Observable<Void> startLoginActivity();
/**
* Emits when the signup activity should be started.
*/
Observable<Void> startSignupActivity();
/**
* Emits when a user has successfully logged in using Facebook, but has require two-factor authentication enabled.
*/
Observable<Void> startTwoFactorChallenge();
}