@callback refresh(map()) :: map()
@callback refresh(map(), binary()) :: map()
@callback remove(map()) :: map()
@callback remove(map(), binary()) :: map()
@callback secret_key() :: binary()
@callback site_key() :: binary()
@callback verify(%{required(binary()) => binary()}) :: {:ok, term()} | {:error, term()}
@callback verify(%{required(binary()) => binary()}, tuple() | binary()) :: {:ok, term()} | {:error, term()}