content: package emu.grasscutter.auth;
  
  import emu.grasscutter.auth.AuthenticationSystem.AuthenticationRequest;
  
  /**
   * Handles authentication via external routes.
   */
  public interface ExternalAuthenticator {
  
      /**
       * Called when an external login request is made.
       * @param request The authentication request.
       */
      void handleLogin(AuthenticationRequest request);
  
      /**
       * Called when an external account creation request is made.
       * @param request The authentication request.
       *
       * For developers: Use AuthenticationRequest#getRequest() to get the request body.
       *                 Use AuthenticationRequest#getResponse() to get the response body.
       */
      void handleAccountCreation(AuthenticationRequest request);
  
      /**
       * Called when an external password reset request is made.
       * @param request The authentication request.
       *
       * For developers: Use AuthenticationRequest#getRequest() to get the request body.
       *                 Use AuthenticationRequest#getResponse() to get the response body.
       */
      void handlePasswordReset(AuthenticationRequest request);
  }
  