import { Decoder } from "../../internal/common/Codec"; import { Storage } from "../../internal/common/Storage"; import EventStream from "../../internal/net/EventStream"; import Response from "../../internal/net/Response"; import { StitchAuthRequest } from "../../internal/net/StitchAuthRequest"; import StitchRequestClient from "../../internal/net/StitchRequestClient"; import Stream from "../../Stream"; import StitchCredential from "../StitchCredential"; import { AuthEvent } from "./AuthEvent"; import AuthInfo from "./AuthInfo"; import CoreStitchUser from "./CoreStitchUser"; import StitchAuthRequestClient from "./StitchAuthRequestClient"; import { StitchAuthRoutes } from "./StitchAuthRoutes"; import StitchUserFactory from "./StitchUserFactory"; export default abstract class CoreStitchAuth implements StitchAuthRequestClient { readonly authInfo: AuthInfo; readonly isLoggedIn: boolean; readonly user: TStitchUser | undefined; readonly hasDeviceId: boolean; protected readonly deviceId: string | undefined; protected readonly requestClient: StitchRequestClient; protected readonly authRoutes: StitchAuthRoutes; protected abstract userFactory: StitchUserFactory; protected abstract deviceInfo: { [key: string]: string; }; private activeUserAuthInfo; private readonly storage; private currentUser?; private allUsersAuthInfo; private readonly accessTokenRefresher; protected constructor(requestClient: StitchRequestClient, authRoutes: StitchAuthRoutes, storage: Storage, useTokenRefresher?: boolean); listUsers(): TStitchUser[]; doAuthenticatedRequest(stitchReq: StitchAuthRequest, authInfo?: AuthInfo | undefined): Promise; doAuthenticatedRequestWithDecoder(stitchReq: StitchAuthRequest, decoder?: Decoder): Promise; openAuthenticatedEventStream(stitchReq: StitchAuthRequest, open?: boolean): Promise; openAuthenticatedStreamWithDecoder(stitchReq: StitchAuthRequest, decoder?: Decoder): Promise>; refreshAccessToken(): Promise; switchToUserWithId(userId: string): TStitchUser; loginWithCredentialInternal(credential: StitchCredential): Promise; linkUserWithCredentialInternal(user: CoreStitchUser, credential: StitchCredential): Promise; logoutInternal(): Promise; logoutUserWithIdInternal(userId: string): Promise; removeUserInternal(): Promise; removeUserWithIdInternal(userId: string): Promise; close(): void; protected abstract onAuthEvent(): any; protected abstract dispatchAuthEvent(event: AuthEvent): any; private prepareAuthRequest; private handleAuthFailureForEventStream; private handleAuthFailure; private tryRefreshAccessToken; private prepUser; private attachAuthOptions; private doLogin; private doLoginRequest; private processLogin; private processLoginResponse; private doGetUserProfile; private doLogout; private clearActiveUserAuth; private clearUserAuthTokens; }