import { Credential } from './credential'; import { GetAccountInfoUserResponse } from './user-record.js'; export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD'; export declare class ApiSettings { private endpoint; private httpMethod; constructor(endpoint: string, httpMethod?: HttpMethod); getEndpoint(): string; getHttpMethod(): HttpMethod; } export declare function getSdkVersion(): string; declare class AuthResourceUrlBuilder { protected version: string; private credential; protected urlFormat: string; constructor(version: string, credential: Credential); getUrl(api?: string, params?: object): Promise; } export declare const FIREBASE_AUTH_CREATE_SESSION_COOKIE: ApiSettings; export declare const FIREBASE_AUTH_GET_ACCOUNT_INFO: ApiSettings; export declare const FIREBASE_AUTH_DELETE_ACCOUNT: ApiSettings; export declare const FIREBASE_AUTH_SET_ACCOUNT_INFO: ApiSettings; export declare const FIREBASE_AUTH_SIGN_UP_NEW_USER: ApiSettings; export declare const FIREBASE_AUTH_LIST_USERS_INFO: ApiSettings; export type ListUsersResponse = { kind: string; users: GetAccountInfoUserResponse[]; nextPageToken: string; }; export type GetAccountInfoByEmailResponse = { users: GetAccountInfoUserResponse[]; }; type ResponseObject = { localId: string; }; export interface AuthRequestHandlerOptions { tenantId?: string; } export interface ErrorResponse { error: Error; } export declare abstract class AbstractAuthRequestHandler { protected options: AuthRequestHandlerOptions; private authUrlBuilder; private getToken; private static getErrorCode; constructor(credential: Credential, options?: AuthRequestHandlerOptions); private prepareRequest; getAccountInfoByUid(uid: string): Promise<{ users?: GetAccountInfoUserResponse[]; }>; deleteAccount(uid: string): Promise; getAccountInfoByEmail(email: string): Promise; createNewAccount(properties: CreateRequest): Promise; createSessionCookie(idToken: string, expiresInMs: number): Promise; updateExistingAccount(uid: string, properties: UpdateRequest): Promise; setCustomUserClaims(uid: string, customUserClaims: object | null): Promise; listUsers(nextPageToken?: string, maxResults?: number): Promise; private getSearchParams; private decorateUrlWithParams; protected invokeRequestHandler(urlBuilder: AuthResourceUrlBuilder, apiSettings: ApiSettings, requestData: object | undefined, additionalResourceParams?: object): Promise; protected abstract newAuthUrlBuilder(): AuthResourceUrlBuilder; private getAuthUrlBuilder; } export declare class AuthRequestHandler extends AbstractAuthRequestHandler { private credential; protected readonly authResourceUrlBuilder: AuthResourceUrlBuilder; constructor(credential: Credential, options?: AuthRequestHandlerOptions); protected newAuthUrlBuilder(): AuthResourceUrlBuilder; } export declare function convertMultiFactorInfoToServerFormat(multiFactorInfo: UpdateMultiFactorInfoRequest): AuthFactorInfo; export interface AuthFactorInfo { mfaEnrollmentId?: string; displayName?: string; phoneInfo?: string; enrolledAt?: string; [key: string]: unknown; } export interface BaseUpdateMultiFactorInfoRequest { uid?: string; displayName?: string; enrollmentTime?: string; factorId: string; } export interface UpdatePhoneMultiFactorInfoRequest extends BaseUpdateMultiFactorInfoRequest { phoneNumber: string; } export type UpdateMultiFactorInfoRequest = UpdatePhoneMultiFactorInfoRequest; export interface MultiFactorUpdateSettings { enrolledFactors: UpdateMultiFactorInfoRequest[] | null; } export interface UpdateRequest { disabled?: boolean; displayName?: string | null; email?: string; emailVerified?: boolean; password?: string; phoneNumber?: string | null; photoURL?: string | null; multiFactor?: MultiFactorUpdateSettings; providerToLink?: UserProvider; providersToUnlink?: string[]; tenantId?: string; } export interface UserProvider { uid?: string; displayName?: string; email?: string; phoneNumber?: string; photoURL?: string; providerId?: string; } export interface BaseCreateMultiFactorInfoRequest { displayName?: string; factorId: string; } export interface CreatePhoneMultiFactorInfoRequest extends BaseCreateMultiFactorInfoRequest { phoneNumber: string; } export type CreateMultiFactorInfoRequest = CreatePhoneMultiFactorInfoRequest; export interface MultiFactorCreateSettings { enrolledFactors: CreateMultiFactorInfoRequest[]; } export interface CreateRequest extends UpdateRequest { uid?: string; multiFactor?: MultiFactorCreateSettings; } export {};