/** * @license * Copyright 2020 Google LLC * * 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. */ import { Auth, AuthErrorMap, AuthSettings, Config, EmulatorConfig, Persistence, PopupRedirectResolver, User } from './public_types'; import { ErrorFactory } from '@firebase/util'; import { AuthErrorCode, AuthErrorParams } from '../core/errors'; import { PopupRedirectResolverInternal } from './popup_redirect'; import { UserInternal } from './user'; export type AppName = string; export type ApiKey = string; export type AuthDomain = string; export interface ConfigInternal extends Config { /** * @readonly */ emulator?: { url: string; }; } export interface AuthInternal extends Auth { currentUser: User | null; emulatorConfig: EmulatorConfig | null; _canInitEmulator: boolean; _isInitialized: boolean; _initializationPromise: Promise | null; _updateCurrentUser(user: UserInternal | null): Promise; _onStorageEvent(): void; _notifyListenersIfCurrent(user: UserInternal): void; _persistUserIfCurrent(user: UserInternal): Promise; _setRedirectUser( user: UserInternal | null, popupRedirectResolver?: PopupRedirectResolver ): Promise; _redirectUserForId(id: string): Promise; _popupRedirectResolver: PopupRedirectResolverInternal | null; _key(): string; _startProactiveRefresh(): void; _stopProactiveRefresh(): void; _getPersistence(): string; readonly name: AppName; readonly config: ConfigInternal; languageCode: string | null; tenantId: string | null; readonly settings: AuthSettings; _errorFactory: ErrorFactory; useDeviceLanguage(): void; signOut(): Promise; } export interface Dependencies { persistence?: Persistence | Persistence[]; popupRedirectResolver?: PopupRedirectResolver; errorMap?: AuthErrorMap; }