Transport contract for signal-cli-backed calls.
@callback list_groups(keyword()) :: {:ok, [map()]} | {:error, term()}
@callback receive_messages(keyword()) :: {:ok, [map()]} | {:error, term()}
@callback send_message(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}