lib/client/behaviour.ex

defmodule Replicate.Client.Behaviour do
  @moduledoc """
  Documentation for the Client Behaviour
  """
  alias Replicate.Predictions.Prediction

  @callback request(method :: atom(), path :: String.t()) ::
              {:ok, String.t()} | {:error, String.t()}
  @callback request(method :: atom(), path :: String.t(), body :: map()) ::
              {:ok, String.t()} | {:error, String.t()}
  @callback wait({:ok, Prediction.t()}) :: {:ok, Prediction.t()} | {:error, String.t()}
end