   response.
   """
   @spec request(method, url, params, [request_opts]) ::
-          {:ok, any}
-          | {:error, :invalid_selector}
-          | {:error, :stale_reference}
-          | {:error, :httpoison}
+          {:ok, response}
+          | {:error, web_driver_error_reason | Jason.DecodeError.t() | String.t()}
+          | no_return
 
   def request(method, url, params \\ %{}, opts \\ [])
 

  @type url :: String.t()
  @type params :: map | String.t()
  @type request_opts :: {:encode_json, boolean}

  @status_obscured 13
  # The maximum time we'll sleep is for 50ms

    end
  end

  @spec check_for_response_errors(response) ::
          {:ok, response}
          | {:error, web_driver_error_reason}
          | no_return
  # credo:disable-for-next-line Credo.Check.Refactor.CyclomaticComplexity
  defp check_for_response_errors(response) do
    case Map.get(response, "value") do
