Behaviour implemented by outbound messaging gateway adapters.
Stream consumers and session bridges use this contract instead of calling a
platform SDK directly. Telegram can edit messages; future backends can return
{:error, :unsupported} from optional callbacks and let the generic gateway
fall back to plain sends.
Summary
Types
Callbacks
@callback edit( chat_id :: String.t(), message_id :: String.t(), text :: String.t(), opts :: keyword() ) :: send_result()
@callback send(chat_id :: String.t(), text :: String.t(), opts :: keyword()) :: send_result()