import * as firebase from "firebase"; import { UserCredential } from "./user-credential"; import { UserStore } from "./user-store"; export interface UserSchema { emailVerified: boolean; isAnonymous: boolean; metadata: firebase.auth.UserMetadata; password?: string; phoneNumber: string | null; providerData: UserInfo[]; refreshToken: string; displayName: string | null; email: string | null; photoURL: string | null; providerId: string; uid: string; tenantId: string | null; } export declare class UserInfo implements firebase.UserInfo { readonly uid: string; readonly providerId: string; readonly displayName: string | null; readonly email: string | null; readonly phoneNumber: string | null; readonly photoURL: string | null; constructor(uid: string, providerId: string, rest: Partial>); } export declare class User implements firebase.User, UserSchema { private readonly store; readonly uid: string; displayName: string | null; email: string | null; emailVerified: boolean; isAnonymous: boolean; metadata: firebase.auth.UserMetadata; password?: string; phoneNumber: string | null; photoURL: string | null; providerData: UserInfo[]; providerId: string; refreshToken: string; tenantId: string | null; multiFactor: firebase.User.MultiFactorUser; constructor(data: Partial, store: UserStore); delete(): Promise; getIdToken(forceRefresh?: boolean): Promise; getIdTokenResult(forceRefresh?: boolean): Promise; getToken(forceRefresh?: boolean): Promise; linkAndRetrieveDataWithCredential(credential: firebase.auth.AuthCredential): Promise; linkWithCredential(credential: firebase.auth.AuthCredential): Promise; linkWithPhoneNumber(phoneNumber: string, applicationVerifier: firebase.auth.ApplicationVerifier): Promise; private linkWithSocial; linkWithPopup(provider: firebase.auth.AuthProvider): Promise; linkWithRedirect(provider: firebase.auth.AuthProvider): Promise; reauthenticateAndRetrieveDataWithCredential(credential: firebase.auth.AuthCredential): Promise; reauthenticateWithCredential(credential: firebase.auth.AuthCredential): Promise; reauthenticateWithPhoneNumber(phoneNumber: string, applicationVerifier: firebase.auth.ApplicationVerifier): Promise; reauthenticateWithPopup(provider: firebase.auth.AuthProvider): Promise; reauthenticateWithRedirect(provider: firebase.auth.AuthProvider): Promise; reload(): Promise; sendEmailVerification(actionCodeSettings?: firebase.auth.ActionCodeSettings | null): Promise; toJSON(): Object; unlink(providerId: string): Promise; updateEmail(newEmail: string): Promise; updatePassword(newPassword: string): Promise; updatePhoneNumber(phoneCredential: firebase.auth.AuthCredential): Promise; updateProfile({ displayName, photoURL, }: { displayName?: string | null; photoURL?: string | null; }): Promise; verifyBeforeUpdateEmail(newEmail: string, actionCodeSettings?: firebase.auth.ActionCodeSettings | null | undefined): Promise; }