/** * This is the auth class that will be used by the client facade. * It provides a simple interface to interact with the auth-api-related code. * It should not be accessed by the client code. */ import { ProvidersEnum } from "../types/apis-related"; import { LocalStorageAuthObject } from "../types/other"; export default class Auth { protected provider: ProvidersEnum | null; /** * Logs the user in given the provider * It first connects to the classroom API and then to the firstore API * @param provider */ login(provider: ProvidersEnum, email?: string, pw?: string): Promise; /** * Checks if there is a session in any of the providers and if there is, it returns the provider along with the stored session obj */ checkAndGetAuthSessionObj(): Promise; /** * Logs the user out */ logout(): Promise; /** * Gets user profile (after login) */ getUserProfile(): Promise; }