export abstract class TokenService { token: string; decodedToken: any; refreshToken: string; setTokens: (accessToken: string, refreshToken: string) => Promise; setToken: (token: string) => Promise; getToken: () => Promise; setRefreshToken: (refreshToken: string) => Promise; getRefreshToken: () => Promise; toggleTokens: () => Promise; setTwoFactorToken: (token: string, email: string) => Promise; getTwoFactorToken: (email: string) => Promise; clearTwoFactorToken: (email: string) => Promise; clearToken: () => Promise; decodeToken: () => any; getTokenExpirationDate: () => Date; tokenSecondsRemaining: (offsetSeconds?: number) => number; tokenNeedsRefresh: (minutes?: number) => boolean; getUserId: () => string; getEmail: () => string; getEmailVerified: () => boolean; getName: () => string; getPremium: () => boolean; getIssuer: () => string; }