"""
Dexgram Bot SDK — Build bots for Dark Link / SimpleX Chat.

Usage::

    from dexgram import Bot

    bot = Bot(ws_url="ws://localhost:5225")

    @bot.on_command("hello")
    async def hello(contact, args):
        await bot.send_text(contact.id, "Hello!")

    bot.run()
"""

__version__ = "0.1.0"

from .bot import Bot
from .client import DexgramClient, DexgramCommandError
from .types import (
    ChatType,
    ChatPeerType,
    Contact,
    User,
    ChatItem,
    Profile,
    GroupInfo,
    GroupMember,
    GroupMemberRole,
    MsgContent,
    ComposedMessage,
)
from .rich_messages import (
    BotMessage,
    BotMessageType,
    BotCallbackQuery,
    InlineButton,
    ProductCard,
    BotForm,
    FormField,
    FormFieldType,
    MSG_PREFIX,
    CB_PREFIX,
    text_with_buttons,
    product_card,
    catalog,
    form,
    receipt,
    media,
)
from .transport import ChatTransport, TransportError

__all__ = [
    "Bot",
    "DexgramClient",
    "DexgramCommandError",
    "ChatType",
    "ChatPeerType",
    "Contact",
    "User",
    "ChatItem",
    "Profile",
    "GroupInfo",
    "GroupMember",
    "GroupMemberRole",
    "MsgContent",
    "ComposedMessage",
    "ChatTransport",
    "TransportError",
    "BotMessage",
    "BotMessageType",
    "BotCallbackQuery",
    "InlineButton",
    "ProductCard",
    "BotForm",
    "FormField",
    "FormFieldType",
    "MSG_PREFIX",
    "CB_PREFIX",
    "text_with_buttons",
    "product_card",
    "catalog",
    "form",
    "receipt",
    "media",
]
