export abstract class TokenService { setTokens: ( accessToken: string, refreshToken: string, clientIdClientSecret: [string, string] ) => Promise; setToken: (token: string) => Promise; getToken: () => Promise; setRefreshToken: (refreshToken: string) => Promise; getRefreshToken: () => Promise; setClientId: (clientId: string) => Promise; getClientId: () => Promise; setClientSecret: (clientSecret: string) => Promise; getClientSecret: () => Promise; toggleTokens: () => Promise; setTwoFactorToken: (token: string, email: string) => Promise; getTwoFactorToken: (email: string) => Promise; clearTwoFactorToken: (email: string) => Promise; clearToken: (userId?: string) => Promise; decodeToken: (token?: string) => any; getTokenExpirationDate: () => Promise; tokenSecondsRemaining: (offsetSeconds?: number) => Promise; tokenNeedsRefresh: (minutes?: number) => Promise; getUserId: () => Promise; getEmail: () => Promise; getEmailVerified: () => Promise; getName: () => Promise; getPremium: () => Promise; getIssuer: () => Promise; getIsExternal: () => Promise; }