lib/data_for_seo/behaviour.ex

defmodule DataForSeo.Behaviour do
  @moduledoc """
  A definition of the intended behavior of the core functions.
  """

  @callback configure(Keyword.t()) :: :ok
  @callback configure(:global | :process, Keyword.t()) :: :ok
  @callback configure() :: Keyword.t() | nil

  @callback task_post(list(map()) | map()) ::
              {:ok, map()} | {:error, String.t()}
  @callback tasks_ready() :: {:ok, map()} | {:error, String.t()}
  @callback task_get(String.t(), list()) ::
              {:ok, map()} | {:error, String.t()}
end