Runtime configuration for the Telegram gateway.
Values come from application env first and environment variables second so the gateway can be configured in releases without recompilation while remaining easy to exercise in tests.
Summary
Functions
Loads Telegram gateway config from application/env settings.
Types
@type method() :: :polling | :webhook
@type t() :: %Vibe.Gateway.Telegram.Config{ allow_all?: boolean(), allowed_users: MapSet.t(String.t()), bot_id: String.t() | nil, bot_username: String.t() | nil, buffer_threshold: pos_integer(), edit_interval_ms: pos_integer(), free_response_chats: MapSet.t(String.t()), group_allowed_chats: MapSet.t(String.t()), group_allowed_users: MapSet.t(String.t()), ignored_threads: MapSet.t(String.t()), method: method(), poll_interval_ms: pos_integer(), poll_max_consecutive_conflicts: pos_integer(), poll_receive_timeout_ms: pos_integer(), poll_timeout_s: pos_integer(), require_mention?: boolean(), stream_mode: :edit | :draft | :auto, token: String.t(), webhook_secret: String.t() | nil, webhook_url: String.t() | nil }