lib/jido/chat/slack/socket_mode/socket_client.ex
defmodule Jido.Chat.Slack.SocketMode.SocketClient do
@moduledoc """
Contract for the long-lived Socket Mode WebSocket connection.
"""
@callback connect(url :: String.t(), owner :: pid(), opts :: keyword()) ::
{:ok, term()} | {:error, term()}
@callback send_text(socket :: term(), payload :: String.t()) :: :ok | {:error, term()}
@callback close(socket :: term()) :: :ok | {:error, term()}
end