import 'auth_token_store_stub.dart'
    if (dart.library.js_interop) 'auth_token_store_web.dart';

class AuthTokenStore {
  static bool hasToken() {
    final token = getToken();
    return token != null && token.isNotEmpty;
  }

  static String? getToken() => authTokenStore.getToken();

  static String? getProvider() => authTokenStore.getProvider();

  static bool usesCookie() => authTokenStore.usesCookie();

  static void setToken(String token, {String? provider}) {
    authTokenStore.setToken(token, provider: provider);
  }

  static void setCookieMode({String? provider}) {
    authTokenStore.setCookieMode(provider: provider);
  }

  static String? getPendingProvider() => authTokenStore.getPendingProvider();

  static void setPendingProvider(String? provider) {
    authTokenStore.setPendingProvider(provider);
  }

  static void clearPendingProvider() {
    authTokenStore.setPendingProvider(null);
  }

  static void skipNextCookieSessionCheck() {
    authTokenStore.skipNextCookieSessionCheck();
  }

  static bool consumeSkipCookieSessionCheck() {
    return authTokenStore.consumeSkipCookieSessionCheck();
  }

  static void clear() {
    authTokenStore.clear();
  }
}
