import { ApiErrorResponse } from '../ApiClient'; import { Logger } from './DefaultLogger'; import TypedEventEmitter from './TypedEventEmitter'; /** * Tokens object, containing the token and refresh token * @typedef {Object} Tokens * @property {string} [token] - The JWT token. Optonal, if missing it will be retrieved from the server * @property {string} refreshToken - The refresh token */ export interface Tokens { token?: string; refreshToken: string; } export type AuthUpdatedEvent = { token: string; refreshToken: string; walletAddress: string; } | { token: null; refreshToken: null; walletAddress: null; }; interface AuthManagerEvents { updated: AuthUpdatedEvent; refreshFailed: ApiErrorResponse; } declare class AuthManager extends TypedEventEmitter { private _token?; private _tokenExpiresAt; private _refreshToken?; private _refreshTokenExpiresAt; private _logger; private _baseUrl; private _walletAddress?; private _renewTokenPromise?; private _agent; constructor(baseUrl: string, logger: Logger, agent?: any); get refreshToken(): string | undefined; get walletAddress(): string | undefined; get isAuthenticated(): boolean; private _updateCookies; setTokens({ refreshToken, token }: { refreshToken: string; token?: string; }): Promise; getToken(): Promise; renewToken(): Promise; clear(): void; private _updateTokens; private _renewToken; } export default AuthManager;