/*! firebase-admin v10.0.0 */ /*! * @license * Copyright 2017 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ export interface MultiFactorInfoResponse { mfaEnrollmentId: string; displayName?: string; phoneInfo?: string; enrolledAt?: string; [key: string]: any; } export interface ProviderUserInfoResponse { rawId: string; displayName?: string; email?: string; photoUrl?: string; phoneNumber?: string; providerId: string; federatedId?: string; } export interface GetAccountInfoUserResponse { localId: string; email?: string; emailVerified?: boolean; phoneNumber?: string; displayName?: string; photoUrl?: string; disabled?: boolean; passwordHash?: string; salt?: string; customAttributes?: string; validSince?: string; tenantId?: string; providerUserInfo?: ProviderUserInfoResponse[]; mfaInfo?: MultiFactorInfoResponse[]; createdAt?: string; lastLoginAt?: string; lastRefreshAt?: string; [key: string]: any; } /** * Interface representing the common properties of a user-enrolled second factor. */ export declare abstract class MultiFactorInfo { /** * The ID of the enrolled second factor. This ID is unique to the user. */ readonly uid: string; /** * The optional display name of the enrolled second factor. */ readonly displayName?: string; /** * The type identifier of the second factor. For SMS second factors, this is `phone`. */ readonly factorId: string; /** * The optional date the second factor was enrolled, formatted as a UTC string. */ readonly enrollmentTime?: string; /** * Returns a JSON-serializable representation of this object. * * @returns A JSON-serializable representation of this object. */ toJSON(): object; /** * Initializes the MultiFactorInfo object using the provided server response. * * @param response - The server side response. */ private initFromServerResponse; } /** * Interface representing a phone specific user-enrolled second factor. */ export declare class PhoneMultiFactorInfo extends MultiFactorInfo { /** * The phone number associated with a phone second factor. */ readonly phoneNumber: string; /** * {@inheritdoc MultiFactorInfo.toJSON} */ toJSON(): object; } /** * The multi-factor related user settings. */ export declare class MultiFactorSettings { /** * List of second factors enrolled with the current user. * Currently only phone second factors are supported. */ enrolledFactors: MultiFactorInfo[]; /** * Returns a JSON-serializable representation of this multi-factor object. * * @returns A JSON-serializable representation of this multi-factor object. */ toJSON(): object; } /** * Represents a user's metadata. */ export declare class UserMetadata { /** * The date the user was created, formatted as a UTC string. */ readonly creationTime: string; /** * The date the user last signed in, formatted as a UTC string. */ readonly lastSignInTime: string; /** * The time at which the user was last active (ID token refreshed), * formatted as a UTC Date string (eg 'Sat, 03 Feb 2001 04:05:06 GMT'). * Returns null if the user was never active. */ readonly lastRefreshTime?: string | null; /** * Returns a JSON-serializable representation of this object. * * @returns A JSON-serializable representation of this object. */ toJSON(): object; } /** * Represents a user's info from a third-party identity provider * such as Google or Facebook. */ export declare class UserInfo { /** * The user identifier for the linked provider. */ readonly uid: string; /** * The display name for the linked provider. */ readonly displayName: string; /** * The email for the linked provider. */ readonly email: string; /** * The photo URL for the linked provider. */ readonly photoURL: string; /** * The linked provider ID (for example, "google.com" for the Google provider). */ readonly providerId: string; /** * The phone number for the linked provider. */ readonly phoneNumber: string; /** * Returns a JSON-serializable representation of this object. * * @returns A JSON-serializable representation of this object. */ toJSON(): object; } /** * Represents a user. */ export declare class UserRecord { /** * The user's `uid`. */ readonly uid: string; /** * The user's primary email, if set. */ readonly email?: string; /** * Whether or not the user's primary email is verified. */ readonly emailVerified: boolean; /** * The user's display name. */ readonly displayName?: string; /** * The user's photo URL. */ readonly photoURL?: string; /** * The user's primary phone number, if set. */ readonly phoneNumber?: string; /** * Whether or not the user is disabled: `true` for disabled; `false` for * enabled. */ readonly disabled: boolean; /** * Additional metadata about the user. */ readonly metadata: UserMetadata; /** * An array of providers (for example, Google, Facebook) linked to the user. */ readonly providerData: UserInfo[]; /** * The user's hashed password (base64-encoded), only if Firebase Auth hashing * algorithm (SCRYPT) is used. If a different hashing algorithm had been used * when uploading this user, as is typical when migrating from another Auth * system, this will be an empty string. If no password is set, this is * null. This is only available when the user is obtained from * {@link BaseAuth.listUsers}. */ readonly passwordHash?: string; /** * The user's password salt (base64-encoded), only if Firebase Auth hashing * algorithm (SCRYPT) is used. If a different hashing algorithm had been used to * upload this user, typical when migrating from another Auth system, this will * be an empty string. If no password is set, this is null. This is only * available when the user is obtained from {@link BaseAuth.listUsers}. */ readonly passwordSalt?: string; /** * The user's custom claims object if available, typically used to define * user roles and propagated to an authenticated user's ID token. * This is set via {@link BaseAuth.setCustomUserClaims} */ readonly customClaims?: { [key: string]: any; }; /** * The ID of the tenant the user belongs to, if available. */ readonly tenantId?: string | null; /** * The date the user's tokens are valid after, formatted as a UTC string. * This is updated every time the user's refresh token are revoked either * from the {@link BaseAuth.revokeRefreshTokens} * API or from the Firebase Auth backend on big account changes (password * resets, password or email updates, etc). */ readonly tokensValidAfterTime?: string; /** * The multi-factor related properties for the current user, if available. */ readonly multiFactor?: MultiFactorSettings; /** * Returns a JSON-serializable representation of this object. * * @returns A JSON-serializable representation of this object. */ toJSON(): object; }