import * as types from "./types"; import UserSession from "./UserSession"; export declare type AuthChangedFunction = (isAuthenticated: boolean) => void; export default class Auth { private httpClient; private tokenChangedFunctions; private authChangedFunctions; private refreshInterval; private useCookies; private refreshIntervalTime; private clientStorage; private clientStorageType; private ssr; private refreshTokenLock; private baseURL; private currentUser; private currentSession; private loading; private refreshSleepCheckInterval; private refreshIntervalSleepCheckLastSample; private sampleRate; constructor(config: types.AuthConfig, session: UserSession); user(): types.User | null; register({ email, password, options, }: types.UserCredentials): Promise<{ session: types.Session | null; user: types.User; }>; login({ email, password, provider, }: types.UserCredentials): Promise<{ session: types.Session | null; user: types.User | null; mfa?: { ticket: string; }; }>; logout(all?: boolean): Promise<{ session: null; user: null; }>; onTokenChanged(fn: Function): Function; onAuthStateChanged(fn: AuthChangedFunction): Function; isAuthenticated(): boolean | null; isAuthenticatedAsync(): Promise; getJWTToken(): string | null; getClaim(claim: string): string | string[] | null; refreshSession(): Promise; activate(ticket: string): Promise; changeEmail(new_email: string): Promise; requestEmailChange(new_email: string): Promise; confirmEmailChange(ticket: string): Promise; changePassword(oldPassword: string, newPassword: string): Promise; requestPasswordChange(email: string): Promise; confirmPasswordChange(newPassword: string, ticket: string): Promise; MFAGenerate(): Promise; MFAEnable(code: string): Promise; MFADisable(code: string): Promise; MFATotp(code: string, ticket: string): Promise<{ session: types.Session; user: types.User; }>; private _removeParam; private _setItem; private _getItem; private _removeItem; private _generateHeaders; private _autoLogin; private _refreshToken; private tokenChanged; private authStateChanged; private _clearSession; private _setSession; }