import { AngularFireDatabase } from 'angularfire2/database'; import { AngularFireAuth } from 'angularfire2/auth'; import { Observable } from 'rxjs'; import { EmailSignupData, SessionUser, User, UserAddress } from './user.model'; import { FirebaseError } from 'firebase/app'; import * as firebase from 'firebase'; import { SessionUserLoadedAction } from './auth.reducer'; import { Store } from '@ngrx/store'; import { AppState } from '../state'; import { Actions } from '@ngrx/effects'; export declare type SocialAuthProvider = 'facebook' | 'twitter' | 'google'; export declare type AuthModalRequestOutcome = 'logged-in' | 'signed-up' | 'none'; export declare type AuthModalRequest = { message?: string; callback?: (outcome: AuthResult) => any; }; export declare type AuthResult = { success: true; extantAccount: boolean; resultantState: any; } | { success: false; error: FirebaseError; resultantState: any; }; export declare class AuthService { private authBackend; private db; private store; private actions; loadSessionUserDataEffect: Observable; private backendState$; readonly sessionUser$: Observable; readonly sessionUserId$: Observable; syncVerifiedValuesEffect: Observable<[firebase.User, SessionUser]>; private authModalReq$; private verificationRequiredReq$; readonly displayAuthModal$: Observable; readonly displayVerificationRequired$: Observable; private socialSigninRequest$; private emailSigninRequest$; private logoutRequest$; constructor(authBackend: AngularFireAuth, db: AngularFireDatabase, store: Store, actions: Actions); requestAuthModal(message?: string, callback?: (outcome: AuthResult) => any): void; logout(): void; emailLogin(email: string, password: string): Observable; getUserByEmail(email$: Observable): Observable; emailSignup(data: EmailSignupData): Observable; socialSignIn(provider: SocialAuthProvider): Observable; completeSocialSignin(data: UserAddress): Observable; showVerificationRequiredModal(): void; resendVerificationEmail(): Observable<'success'>; private doSocialLogin(provider); private loadSessionUser(); }