o
    N,hD                    @   s  d Z ddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z% ddl&m'Z' ddl&m(Z) ddl&m*Z+ erddlm,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZI G dd deZJG dd deJZKdS )z?This module contains an object that represents a Telegram Chat.    N)Sequence)escape)TYPE_CHECKINGFinalOptionalUnion)	constants)ChatPermissions)
ForumTopic)
MenuButton)ReactionType)TelegramObject)enum)DEFAULT_NONE)CorrectOptionID	FileInputJSONDictODVInputReplyMarkup
TimePeriod)get_full_nameget_link)escape_markdown)mention_html)mention_markdown)	AnimationAudioChatInviteLink
ChatMemberContactDocumentGiftInlineKeyboardMarkupInputChecklistInputMediaAudioInputMediaDocumentInputMediaPhotoInputMediaVideoInputPaidMediaInputPollOptionLabeledPriceLinkPreviewOptionsLocationMessageMessageEntity	MessageId	PhotoSizeReplyParametersStickerSuggestedPostParametersUserChatBoostsVenueVideo	VideoNoteVoicec                N       s.-  e Zd ZU dZdZ						ddddededee dee d	ee d
ee dee dee dee	 f fddZ
ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 edee fddZedee fddZedee fddZddee defddZddee defdd Zddee defd!d"Zeeeedd#d$ee d%ee d&ee d'ee dee	 defd(d)Zeeeedd#d$ee d%ee d&ee d'ee dee	 ded* fd+d,Z eeeedd#d$ee d%ee d&ee d'ee dee	 defd-d.Z!eeeedd#d/ed$ee d%ee d&ee d'ee dee	 dd0fd1d2Z"		deeeedd#d/ed3ee d4ee#ee$j%f  d$ee d%ee d&ee d'ee dee	 defd5d6Z&eeeedd#d7ed$ee d%ee d&ee d'ee dee	 defd8d9Z'eeeedd#d:e#eef d$ee d%ee d&ee d'ee dee	 defd;d<Z(eeeedd#d7ed$ee d%ee d&ee d'ee dee	 defd=d>Z)eeeedd#d:e#eef d$ee d%ee d&ee d'ee dee	 defd?d@Z*	deeeedd#d/edAee d$ee d%ee d&ee d'ee dee	 defdBdCZ+																deeeedd#d/edDee dEee dFee dGee dHee dIee dJee dKee dLee dMee dNee dOee dPee dQee dRee dSee d$ee d%ee d&ee d'ee dee	 def.dTdUZ,		deeeedd#d/edVe-d4ee#ee$j%f  dWee d$ee d%ee d&ee d'ee dee	 defdXdYZ.	deeeedd#dVe-dWee d$ee d%ee d&ee d'ee dee	 defdZd[Z/eeeedd#d/ed\ed$ee d%ee d&ee d'ee dee	 defd]d^Z0eeeedd#d_e1d$ee d%ee d&ee d'ee dee	 defd`daZ2eeeedd#d$ee d%ee d&ee d'ee dee	 defdbdcZ3eeeedd#ded$ee d%ee d&ee d'ee dee	 defdddeZ4	deeeedd#dfee d$ee d%ee d&ee d'ee dee	 defdgdhZ5edfeeeedd#diedjee dkee d$ee d%ee d&ee d'ee dee	 defdldmZ6		deeeedd#diee dkee d$ee d%ee d&ee d'ee dee	 defdndoZ7eeeedd#d$ee d%ee d&ee d'ee dee	 defdpdqZ8eeddededdddddfdedeeeeddrdsedtee djee duee9 dvee:dw  dxee dyee dzed{ d|ed} dkee d~ee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf.ddZ;eeeedd#died$ee d%ee d&ee d'ee dee	 defddZ<eeeedd#de:e d$ee d%ee d&ee d'ee dee	 defddZ=eeddddddfdeeeeeddedd
de:e#d  djee dxee dyee d|ed} dkee d~ee dee dee dee dee d$ee d%ee d&ee d'ee dee	 dee dtee dee:dw  ded f(ddZ>		deeeedd#dedyee dkee d$ee d%ee d&ee d'ee dee	 defddZ?e?Z@	 dedededddddddddfdedeeeeddd_e#e1df dee djee duee9 dtee dee:dw  dxee dyee dee d|ed} dkee d~ee dee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf2ddZAdddeddedddddddfdedeeeedddee d	ee d
ee djee duee9 dee dxee dyee d|ed} dkee d~ee dee dee ded dee dee ded d$ee d%ee d&ee d'ee dee	 ddf.ddZBddddedededdddddddfdedeeeeddde#e1df deeC dee dee dee djee duee9 dtee dee:dw  dxee dyee dee1 d|ed} dkee d~ee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf6ddZDdededdeddddddddfdedeeeeddde#e1df dee djee duee9 dtee dee dee:dw  dxee dyee dee1 d|ed} dkee d~ee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf2ddZEededdfdeeeeedddkedddjee dued dxee d|ed} d~ee dee dee d$ee d%ee d&ee d'ee dee	 ddfddZFeddedddddddfdeeeeedddjee duee9 dee dxee dyee d|ed} dkee d~ee dee dee ded dee dee d$ee d%ee d&ee d'ee dee	 ddf&ddZGededddddfdeeeeedddedjee dued dxee dyee d|ed} dkee d~ee dee dee dee d$ee d%ee d&ee d'ee dee	 ddf"ddZHdddddddddddeddddddeddddddfdeeeeedddedfededede:d dee dee dee dee dee dee dee dee dee dee dee djee dued dee#eeIf  dee dee dee dee:e  dxee dyee d|ed} d~ee dee dee ded dee dee d$ee d%ee d&ee d'ee dee	 ddfLddԄZJddedddddedddddddfdedeeeedd՜dee dee djee duee9 deeC dee dee dee dxee dyee d|ed} dkee d~ee dee dee ded dee dee ded d$ee d%ee d&ee d'ee dee	 ddf2dd߄ZKddddeeddeddddddddddfdedeeeeddde#e1df deeC dee dee dee dtee djee duee9 dee:dw  dxee dyee dee dee1 d|ed} dkee d~ee dee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf:ddZLededdddddddfdeeeeeddde#e1df djee duee9 dxee dyee dee d|ed} dkee d~ee dee dee ded dee dee d$ee d%ee d&ee d'ee dee	 ddf(ddZMdddddeddddedddddddfdedeeeedddee dee dee dee dee djee duee9 dee dee dee dxee dyee d|ed} dkee d~ee dee dee ded dee dee ded d$ee d%ee d&ee d'ee dee	 ddf6ddZNddedddeddeddddddddddddfdedeeeeddde#e1df deeC dee djee duee9 dee dee dtee dee dee:dw  dxee dyee dee dee1 d|ed} dkee d~ee dee dee dee1 dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf@ddZOddededdddddddfdedeeeeddde#e1df deeC dee djee duee9 dxee dyee dee1 d|ed} dkee d~ee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf.ddZPddedededddddddfdedeeeeddd e#e1df deeC dee djee duee9 dtee dee:dw  dxee dyee d|ed} dkee d~ee dee dee ded dee dee dee d$ee d%ee d&ee d'ee dee	 ddf0ddZQdddddeddedddedddedddfdeeeeedddede:e#edf  dLee dee dee deeR d	ee djee duee9 d
ee dee deeC dee#ee$j%f  dee:dw  dxee dyee d|ed} dkee dee dee:dw  d~ee dee dee dee d$ee d%ee d&ee d'ee dee	 ddf<ddZSdedededddddddfdeeeeeddde#eef diedee dtee dee:dw  djee duee9 dxee dyee d|ed} dee dee dee dee ded dee dee d$ee d%ee d&ee d'ee dee	 ddf.ddZTdedededddddddfdeeeeeddd:e#eef diedee dtee dee:dw  djee duee9 dxee dyee d|ed} dee dee dee dee ded dee dee d$ee d%ee d&ee d'ee dee	 ddf.ddZUeedddfeeeedd#de#eef de:e djee dxee dyee dee dee d$ee d%ee d&ee d'ee dee	 ded fddZVeedddfeeeedd#d:e#eef de:e djee dxee dyee dee dee d$ee d%ee d&ee d'ee dee	 ded fddZWeeddddfeeeedd#de#eef diedjee dxee dyee dee dee ded d$ee d%ee d&ee d'ee dee	 ddfd d!ZXeeddddfeeeedd#d:e#eef diedjee dxee dyee dee dee ded d$ee d%ee d&ee d'ee dee	 ddfd"d#ZYeeddfeeeedd#de#eef de:e djee dxee dyee dee d$ee d%ee d&ee d'ee dee	 ded fd$d%ZZeeddfeeeedd#d:e#eef de:e djee dxee dyee dee d$ee d%ee d&ee d'ee dee	 ded fd&d'Z[eeeedd#d$ee d%ee d&ee d'ee dee	 defd(d)Z\				deeeedd#d*ee#ee$j%f  d+ee dee d,ee d$ee d%ee d&ee d'ee dee	 dd-fd.d/Z]				deeeedd#d0e#ed-f d*ee#ee$j%f  d+ee dee d,ee d$ee d%ee d&ee d'ee dee	 dd-fd1d2Z^eeeedd#d0e#ed-f d$ee d%ee d&ee d'ee dee	 dd-fd3d4Z_	deeeedd#d5eCd6edee d$ee d%ee d&ee d'ee dee	 dd-fd7d8Z`	deeeedd#d0e#ed-f dee d$ee d%ee d&ee d'ee dee	 dd-fd9d:Zaeeeedd#d/ed$ee d%ee d&ee d'ee dee	 defd;d<Zbeeeedd#d/ed$ee d%ee d&ee d'ee dee	 defd=d>Zc	deeeedd#d?eed d$ee d%ee d&ee d'ee dee	 defd@dAZe		deeeedd#dedBee dCee d$ee d%ee d&ee d'ee dee	 deffdDdEZg		deeeedd#dyedee dCee d$ee d%ee d&ee d'ee dee	 defdFdGZheeeedd#dyed$ee d%ee d&ee d'ee dee	 defdHdIZieeeedd#dyed$ee d%ee d&ee d'ee dee	 defdJdKZjeeeedd#dyed$ee d%ee d&ee d'ee dee	 defdLdMZkeeeedd#dyed$ee d%ee d&ee d'ee dee	 defdNdOZleeeedd#d$ee d%ee d&ee d'ee dee	 defdPdQZmeeeedd#ded$ee d%ee d&ee d'ee dee	 defdRdSZneeeedd#d$ee d%ee d&ee d'ee dee	 defdTdUZoeeeedd#d$ee d%ee d&ee d'ee dee	 defdVdWZpeeeedd#d$ee d%ee d&ee d'ee dee	 defdXdYZqeeeedd#d$ee d%ee d&ee d'ee dee	 defdZd[Zreeeedd#d$ee d%ee d&ee d'ee dee	 dedfd\d]Zseeeedd#d/ed$ee d%ee d&ee d'ee dee	 dd^fd_d`Zt		deeeedd#diedaee#e:e#euef  euef  dbee d$ee d%ee d&ee d'ee dee	 defdcddZvdeddeeddddddddfedeeeeddedfede:dg dee dtee dee:dw  dee djee dxee d|ed} duee9 dkee dee dee dee ded dyee dee dee d$ee d%ee d&ee d'ee dee	 ddf0dhdiZwdeddfeeeedd#dje#edkf dsee dlee dmee:dw  dnee d$ee d%ee d&ee d'ee dee	 defdodpZx	deeeedd#dkedqedfee d$ee d%ee d&ee d'ee dee	 defdrdsZy	deeeedd#dtee d$ee d%ee d&ee d'ee dee	 defdudvZzeeeedd#d$ee d%ee d&ee d'ee dee	 defdwdxZ{eeeedd#dkedied$ee d%ee d&ee d'ee dee	 defdydzZ|	deeeedd#died{ee#ee$j%f  d$ee d%ee d&ee d'ee dee	 defd|d}Z}	deeeedd#died~ee d$ee d%ee d&ee d'ee dee	 defddZ~  ZS (  	_ChatBasezjBase class for :class:`telegram.Chat` and :class:`telegram.ChatFullInfo`.

    .. versionadded:: 21.3
    )
first_nameidis_direct_messagesis_forum	last_nametitletypeusernameN
api_kwargsr;   r@   r?   rA   r:   r>   r=   r<   rC   c	          
         s`   t  j|	d || _ttj||| _|| _|| _	|| _
|| _|| _|| _| jf| _|   d S )NrB   )super__init__r;   r   
get_memberr   ChatTyper@   r?   rA   r:   r>   r=   r<   	_id_attrs_freeze)
selfr;   r@   r?   rA   r:   r>   r=   r<   rC   	__class__ Z/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/telegram/_chat.pyrE   d   s   
z_ChatBase.__init__SENDERPRIVATEGROUP
SUPERGROUPCHANNELreturnc                 C   s$   | j dur| j S | jdur| jS dS )z
        :obj:`str`: Convenience property. Gives :attr:`~Chat.title` if not :obj:`None`,
        else :attr:`~Chat.full_name` if not :obj:`None`.

        .. versionadded:: 20.1
        N)r?   	full_namerJ   rM   rM   rN   effective_name   s
   

z_ChatBase.effective_namec                 C      t | S )a]  
        :obj:`str`: Convenience property. If :attr:`~Chat.first_name` is not :obj:`None`, gives
        :attr:`~Chat.first_name` followed by (if available) :attr:`~Chat.last_name`.

        Note:
            :attr:`full_name` will always be :obj:`None`, if the chat is a (super)group or
            channel.

        .. versionadded:: 13.2
        )r   rV   rM   rM   rN   rU      s   z_ChatBase.full_namec                 C   rX   )z}:obj:`str`: Convenience property. If the chat has a :attr:`~Chat.username`, returns a
        t.me link of the chat.
        )r   rV   rM   rM   rN   link   s   z_ChatBase.linknamec                 C   s   | j | jkr|rt| j|S | jrt| j| jS td| jr=|r+d| d| j dS | jr9d| j d| j dS tdtd)a  
        Note:
            :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
            Telegram for backward compatibility. You should use :meth:`mention_markdown_v2`
            instead.

        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 1).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

        =Can not create a mention to a private chat without first name[]()7Can not create a mention to a public chat without title0Can not create a mention to a private group chat)	r@   rP   helpers_mention_markdownr;   rU   	TypeErrorrA   rY   r?   rJ   rZ   rM   rM   rN   r      s   z_ChatBase.mention_markdownc                 C   s   | j | jkr |rt| j|ddS | jrt| j| jddS td| jrI|r3dt|dd d| j dS | j	rEdt| j	dd d| j dS tdtd)	a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 2).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

           )versionr[   r\   r]   r^   r_   r`   )
r@   rP   ra   r;   rU   rb   rA   r   rY   r?   rc   rM   rM   rN   mention_markdown_v2   s   z_ChatBase.mention_markdown_v2c                 C   s   | j | jkr|rt| j|S | jrt| j| jS td| jrA|r-d| j dt| dS | j	r=d| j dt| j	 dS tdtd)a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to :attr:`full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as HTML.

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`.
                If chat is a private group chat, then throw an :exc:`TypeError`.

        r[   z	<a href="z">z</a>r_   r`   )
r@   rP   helpers_mention_htmlr;   rU   rb   rA   rY   r   r?   rc   rM   rM   rN   r      s   z_ChatBase.mention_html)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutrC   rh   ri   rj   rk   c                   $   |   j| j|||||dI dH S )a  Shortcut for::

             await bot.leave_chat(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.leave_chat`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        chat_idrh   ri   rj   rk   rC   N)get_bot
leave_chatr;   rJ   rh   ri   rj   rk   rC   rM   rM   rN   leave     z_ChatBase.leave)r   .c                   rl   )a]  Shortcut for::

             await bot.get_chat_administrators(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_administrators`.

        Returns:
            tuple[:class:`telegram.ChatMember`]: A tuple of administrators in a chat. An Array of
            :class:`telegram.ChatMember` objects that contains information about all
            chat administrators except other bots. If the chat is a group or a supergroup
            and no administrators were appointed, only the creator will be returned.

        rm   N)ro   get_chat_administratorsr;   rq   rM   rM   rN   get_administrators5     z_ChatBase.get_administratorsc                   rl   )a	  Shortcut for::

             await bot.get_chat_member_count(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_member_count`.

        Returns:
            :obj:`int`
        rm   N)ro   get_chat_member_countr;   rq   rM   rM   rN   get_member_countU  rs   z_ChatBase.get_member_countuser_idr   c             	      &   |   j| j||||||dI dH S )a  Shortcut for::

             await bot.get_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.get_chat_member`.

        Returns:
            :class:`telegram.ChatMember`

        rn   ry   rh   ri   rj   rk   rC   N)ro   get_chat_memberr;   rJ   ry   rh   ri   rj   rk   rC   rM   rM   rN   rF   q  s   z_ChatBase.get_memberrevoke_messages
until_datec          	         s*   |   j| j||||||||d	I dH S )a$  Shortcut for::

             await bot.ban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rn   ry   rh   ri   rj   rk   r   rC   r~   N)ro   ban_chat_memberr;   )	rJ   ry   r~   r   rh   ri   rj   rk   rC   rM   rM   rN   
ban_member     z_ChatBase.ban_membersender_chat_idc             	      rz   )aW  Shortcut for::

             await bot.ban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rn   r   rh   ri   rj   rk   rC   Nro   ban_chat_sender_chatr;   rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   ban_sender_chat     z_ChatBase.ban_sender_chatrn   c             	      &   |   j|| j|||||dI dH S )a~  Shortcut for::

             await bot.ban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   rJ   rn   rh   ri   rj   rk   rC   rM   rM   rN   ban_chat     z_ChatBase.ban_chatc             	      rz   )a[  Shortcut for::

             await bot.unban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nro   unban_chat_sender_chatr;   r   rM   rM   rN   unban_sender_chat  r   z_ChatBase.unban_sender_chatc             	      r   )a  Shortcut for::

             await bot.unban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   r   rM   rM   rN   
unban_chat  r   z_ChatBase.unban_chatonly_if_bannedc             
      (   |   j| j|||||||dI dH S )a!  Shortcut for::

             await bot.unban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.unban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   ry   rh   ri   rj   rk   rC   r   N)ro   unban_chat_memberr;   )rJ   ry   r   rh   ri   rj   rk   rC   rM   rM   rN   unban_member9  s   z_ChatBase.unban_membercan_change_infocan_post_messagescan_edit_messagescan_delete_messagescan_invite_userscan_restrict_memberscan_pin_messagescan_promote_membersis_anonymouscan_manage_chatcan_manage_video_chatscan_manage_topicscan_post_storiescan_edit_storiescan_delete_storiescan_manage_direct_messagesc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|	d|d|d|d|d|d|
d|d|d|d|d|d|d|I dH S )a  Shortcut for::

             await bot.promote_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.promote_chat_member`.

        .. versionadded:: 13.2
        .. versionchanged:: 20.0
           The argument ``can_manage_voice_chats`` was renamed to
           :paramref:`~telegram.Bot.promote_chat_member.can_manage_video_chats` in accordance to
           Bot API 6.0.
        .. versionchanged:: 20.6
           The arguments `can_post_stories`, `can_edit_stories` and `can_delete_stories` were
           added.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rn   ry   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   r   r   NrM   )ro   promote_chat_memberr;   )rJ   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   promote_memberY  s`   .	

z_ChatBase.promote_memberpermissions use_independent_chat_permissionsc          
         s,   |   j| j|||||||||	d
I dH S )a  Shortcut for::

             await bot.restrict_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.restrict_chat_member`.

        .. versionadded:: 13.2

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.restrict_chat_member.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )
rn   ry   r   r   r   rh   ri   rj   rk   rC   N)ro   restrict_chat_memberr;   )
rJ   ry   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   restrict_member  s   z_ChatBase.restrict_memberc             
      (   |   j| j|||||||dI dH S )a  Shortcut for::

             await bot.set_chat_permissions(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_permissions`.

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.set_chat_permissions.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r   r   rh   ri   rj   rk   rC   N)ro   set_chat_permissionsr;   )rJ   r   r   rh   ri   rj   rk   rC   rM   rM   rN   set_permissions  s   z_ChatBase.set_permissionscustom_titlec             
      r   )am  Shortcut for::

             await bot.set_chat_administrator_custom_title(
                 update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_administrator_custom_title`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   ry   r   rh   ri   rj   rk   rC   N)ro   #set_chat_administrator_custom_titler;   )rJ   ry   r   rh   ri   rj   rk   rC   rM   rM   rN   set_administrator_custom_title     z(_ChatBase.set_administrator_custom_titlephotoc             	      rz   )ak  Shortcut for::

             await bot.set_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r   rh   ri   rj   rk   rC   N)ro   set_chat_photor;   )rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   	set_photo     z_ChatBase.set_photoc                   rl   )aq  Shortcut for::

             await bot.delete_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rm   N)ro   delete_chat_photor;   rq   rM   rM   rN   delete_photo5  s   z_ChatBase.delete_photoc             	      rz   )ak  Shortcut for::

             await bot.set_chat_title(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_title`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r?   rh   ri   rj   rk   rC   N)ro   set_chat_titler;   )rJ   r?   rh   ri   rj   rk   rC   rM   rM   rN   	set_titleV  r   z_ChatBase.set_titledescriptionc             	      rz   )aw  Shortcut for::

             await bot.set_chat_description(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_description`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r   rh   ri   rj   rk   rC   N)ro   set_chat_descriptionr;   )rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   set_descriptiony  r   z_ChatBase.set_description
message_iddisable_notificationbusiness_connection_idc          	         *   |   j| j||||||||d	I dH S )a0  Shortcut for::

              await bot.pin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.pin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rn   r   r   rh   ri   rj   rk   rC   r   N)ro   pin_chat_messager;   )	rJ   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   pin_message     z_ChatBase.pin_messagec             
      s(   |   j| j|||||||dI dH S )a4  Shortcut for::

              await bot.unpin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   rh   ri   rj   rk   rC   r   r   N)ro   unpin_chat_messager;   )rJ   r   r   rh   ri   rj   rk   rC   rM   rM   rN   unpin_message  s   z_ChatBase.unpin_messagec                   rl   )a>  Shortcut for::

              await bot.unpin_all_chat_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_chat_messages`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rm   N)ro   unpin_all_chat_messagesr;   rq   rM   rM   rN   unpin_all_messages  s   z_ChatBase.unpin_all_messages)reply_to_message_idallow_sending_without_replydisable_web_page_previewrh   ri   rj   rk   rC   text
parse_modereply_markupentitiesr.   protect_contentmessage_thread_idlink_preview_optionsr+   reply_parametersr1   message_effect_idallow_paid_broadcastdirect_messages_topic_idsuggested_post_parametersr3   r   r   r   r-   c                   s   |   jdi d| jd|d|d|d|d|d|d|	d	|d
|d|d|d|d|d|d|d|d|d|
d|d|d|d|I dH S )a6  Shortcut for::

             await bot.send_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   NrM   )ro   send_messager;   )rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     `   $	

z_ChatBase.send_messagec             	      rz   )a;  Shortcut for::

             await bot.delete_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_message`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r   rh   ri   rj   rk   rC   N)ro   delete_messager;   )rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   r   ;     z_ChatBase.delete_messagemessage_idsc             	      rz   )a=  Shortcut for::

             await bot.delete_messages(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_messages`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rn   r   rh   ri   rj   rk   rC   N)ro   delete_messagesr;   )rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   r   [  r   z_ChatBase.delete_messages)
r   r   rh   ri   rj   rk   rC   captionr   caption_entitiesmedia)r$   r%   r&   r'   r   r   )r-   .c
       
            s   |   jdi d| jd|d|d|
d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|d|d|	I dH S )as  Shortcut for::

             await bot.send_media_group(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_media_group`.

        Returns:
            tuple[:class:`telegram.Message`]: On success, a tuple of :class:`~telegram.Message`
            instances that were sent is returned.

        rn   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   r   r   r   r   r   NrM   )ro   send_media_groupr;   )rJ   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   rM   rM   rN   r   {  sT   $	

z_ChatBase.send_media_groupactionc          	         r   )a  Shortcut for::

             await bot.send_chat_action(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_chat_action`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rn   r   r   rh   ri   rj   rk   rC   r   N)ro   send_chat_actionr;   )	rJ   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     r   z_ChatBase.send_chat_action)r   r   filenamerh   ri   rj   rk   rC   r0   has_spoilershow_caption_above_mediar   c                   s   |   jdi d| jd|d|d|d|d|
d|d|d	|d
|d|d|d|d|d|d|d|d|d|	d|d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_photo(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_photo`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   r   NrM   )ro   
send_photor;   )rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     h   &	

z_ChatBase.send_photo)r   r   contactrh   ri   rj   rk   rC   phone_numbervcardr   r   c                   s   |   jdi d| jd|d|d|d|d|d|	d|d	|d
|d|d|d|d|d|d|d|d|d|
d|d|d|d|I dH S )a6  Shortcut for::

             await bot.send_contact(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_contact`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r:   r>   r   r   r   r   rh   ri   rj   rk   r   r   rC   r   r   r   r   r   r   r   r   NrM   )ro   send_contactr;   )rJ   r   r:   r>   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     r   z_ChatBase.send_contactaudior   duration	performer	thumbnailc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|	d|d|
d|d|d|d|d|d|d|d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_audio(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_audio`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r?   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   NrM   )ro   
send_audior;   )rJ   r   r   r   r?   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r   [  p   (	

z_ChatBase.send_audiodocumentr    disable_content_type_detectionc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|
d|d|d|d|d|d|	d|d|d|d|d|I dH S )a8  Shortcut for::

             await bot.send_document(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_document`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r   r   r   r   rh   ri   rj   rk   r   r   rC   r   r   r   r   r   r   r   r   r   r   NrM   )ro   send_documentr;   )rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     r   z_ChatBase.send_document)r   r   rh   ri   rj   rk   rC   	checklistr#   r"   c                   s6   |   j| j|||||||||	|
||||dI dH S )ab  Shortcut for::

             await bot.send_checklist(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_checklist`.

        .. versionadded:: 22.3

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rn   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   N)ro   send_checklistr;   )rJ   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     s$   z_ChatBase.send_checklistemojic                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|	d|
d|I dH S )a0  Shortcut for::

             await bot.send_dice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_dice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r   rh   ri   rj   rk   r   rC   r   r   r   r   r   r   r   r   NrM   )ro   	send_dicer;   )rJ   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r     sP    	

z_ChatBase.send_dicegame_short_namec
                   s   |   jdi d| jd|d|d|
d|d|d|d|d	|d
|d|d|d|d|d|d|d|	I dH S )a0  Shortcut for::

             await bot.send_game(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_game`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   NrM   )ro   	send_gamer;   )rJ   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r   I  sH   	

z_ChatBase.send_gamepayloadcurrencypricesr*   provider_tokenstart_parameter	photo_url
photo_sizephoto_widthphoto_height	need_nameneed_phone_number
need_emailneed_shipping_addressis_flexibleprovider_datasend_phone_number_to_providersend_email_to_providermax_tip_amountsuggested_tip_amountsc          &         s   |   jd(i d| jd|d|d|d|d|d|d|d	|d
|	d|
d|d|d|d|d|d|d|d|d|d|d|d|d|!d|"d|#d|$d|%d| d|d|d |d!|d"|d#|d$|d%|d&|I d'H S ))a  Shortcut for::

             await bot.send_invoice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.

        Warning:
            As of API 5.2 :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>`
            is an optional argument and therefore the
            order of the arguments had to be changed. Use keyword arguments to make sure that the
            arguments are passed correctly.

        .. versionchanged:: 13.5
            As of Bot API 5.2, the parameter
            :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>` is optional.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r?   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r   r   r   r
  r  r  rh   ri   rj   rk   rC   r   r  r  r   r   r   r   r   r   r   NrM   )ro   send_invoicer;   )&rJ   r?   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r   r   r
  r  r  r  r  r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r  {  s   =	
 !"#$%&
z_ChatBase.send_invoice)r   r   locationrh   ri   rj   rk   rC   latitude	longitudelive_periodhorizontal_accuracyheadingproximity_alert_radiusr  r,   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|d|	d|
d|d|d|d|d|I dH S )a8  Shortcut for::

             await bot.send_location(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_location`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r  r  r   r   r   r   rh   ri   rj   rk   r  r  rC   r  r  r  r   r   r   r   r   r   r   r   NrM   )ro   send_locationr;   )rJ   r  r  r   r   r  r  r  r  r   r   r   r   r   r   r   r   r   r   r  rh   ri   rj   rk   rC   rM   rM   rN   r    r   z_ChatBase.send_location	animationr   widthheightc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|	d|d|
d|d|d|d|d|d|d|d|d|I dH S ) a:  Shortcut for::

             await bot.send_animation(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_animation`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r  r   r  r  r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   r   r   r   r   r   r   r   NrM   )ro   send_animationr;   )rJ   r  r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r  #  sx   *	

z_ChatBase.send_animationstickerr2   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|	d|
d|d|I dH S )a6  Shortcut for::

             await bot.send_sticker(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_sticker`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r  r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   r   r   r   NrM   )ro   send_stickerr;   )rJ   r  r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r  m  sT   !	

z_ChatBase.send_sticker)r   r   venuerh   ri   rj   rk   rC   addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typer  r5   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|	d|
d|d|d|d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_venue(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_venue`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r  r  r?   r  r   r   r   r   r   rh   ri   rj   rk   r  r!  rC   r"  r#  r   r   r   r   r   r   r   r   NrM   )ro   
send_venuer;   )rJ   r  r  r?   r  r   r   r   r!  r"  r#  r   r   r   r   r   r   r   r   r   r   r  rh   ri   rj   rk   rC   rM   rM   rN   r$    r   z_ChatBase.send_venuevideor6   supports_streamingcoverstart_timestampc                    s   |   jd"i d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|	d|d|d|d|d|d|
d|d|d|d|d|d|d|d|d|d |I d!H S )#a2  Shortcut for::

             await bot.send_video(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r%  r   r   r   r   r   r   rh   ri   rj   rk   r  r  r   r&  r   r'  r(  rC   r   r   r   r   r   r   r   r   r   r   r   r   NrM   )ro   
send_videor;   ) rJ   r%  r   r   r   r   r  r  r   r&  r   r   r   r   r   r   r   r   r   r   r'  r(  r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r)    s   -	
 
z_ChatBase.send_video
video_noter7   lengthc                   s   |   jdi d| jd|d|d|d|d|d|	d|d	|d
|d|d|d|d|d|d|d|d|d|
d|d|d|d|I dH S )a<  Shortcut for::

             await bot.send_video_note(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video_note`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r*  r   r+  r   r   r   r   rh   ri   rj   rk   r   rC   r   r   r   r   r   r   r   r   r   NrM   )ro   send_video_noter;   )rJ   r*  r   r+  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r,  ;  r   z_ChatBase.send_video_notevoicer8   c                   s   |   jdi d| jd|d|d|d|d|d|
d|d	|d
|d|d|d|d|d|d|d|d|d|	d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_voice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_voice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r-  r   r   r   r   r   r   rh   ri   rj   rk   r   rC   r   r   r   r   r   r   r   r   r   r   NrM   )ro   
send_voicer;   )rJ   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r.  y  sd   %	

z_ChatBase.send_voicequestionoptionsr)   allows_multiple_answerscorrect_option_id	is_closedexplanationexplanation_parse_modeopen_period
close_dateexplanation_entitiesquestion_parse_modequestion_entitiesc                   s   |   jd i d| jd|d|d|d|d|d|d|d	|d
|d|d|	d|d|d|d|d|d|d|
d|d|d|d|d|d|d|d|d|d|d|I dH S )!a0  Shortcut for::

             await bot.send_poll(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_poll`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r/  r0  r   r@   r1  r2  r3  r   r   r   r   rh   ri   rj   rk   r   r   r4  r5  r6  r7  rC   r   r8  r   r   r   r9  r:  NrM   )ro   	send_pollr;   )rJ   r/  r0  r   r@   r1  r2  r3  r   r   r4  r5  r6  r7  r8  r   r   r   r   r9  r:  r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r;    s|   +	

z_ChatBase.send_pollfrom_chat_idvideo_start_timestampr/   c                      |   jdi d| jd|d|d|d|d|d|d|d	|d
|
d|d|d|d|d|d|d|d|d|	d|d|d|d|I dH S )a  Shortcut for::

             await bot.copy_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rn   r<  r   r   r=  r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   NrM   ro   copy_messager;   )rJ   r<  r   r   r   r   r   r   r   r   r   r   r   r=  r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   	send_copy	  `   &	

z_ChatBase.send_copyc                   r>  )a  Shortcut for::

             await bot.copy_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`send_copy`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.MessageId`: On success, returns the MessageId of the sent message.

        r<  rn   r   r   r=  r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   NrM   r?  )rJ   rn   r   r   r   r   r   r   r   r   r   r   r   r=  r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r@  E	  rB  z_ChatBase.copy_messageremove_caption)r/   .c                   2   |   j| j||||||||	|
|||dI dH S )a  Shortcut for::

             await bot.copy_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`copy_messages`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )rn   r<  r   r   r   r   rC  rh   ri   rj   rk   rC   r   Nro   copy_messagesr;   )rJ   r<  r   r   r   r   rC  r   rh   ri   rj   rk   rC   rM   rM   rN   send_copies	      z_ChatBase.send_copiesc                   rD  )a  Shortcut for::

             await bot.copy_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`send_copies`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )r<  rn   r   r   r   r   rC  rh   ri   rj   rk   rC   r   NrE  )rJ   rn   r   r   r   r   rC  r   rh   ri   rj   rk   rC   rM   rM   rN   rF  	  rH  z_ChatBase.copy_messagesc	                   4   |   j| j|||||	|
|||||||dI dH S )a  Shortcut for::

             await bot.forward_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_messages_from`, :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rn   r<  r   r=  r   rh   ri   rj   rk   rC   r   r   r   r   Nro   forward_messager;   )rJ   r<  r   r   r   r   r=  r   r   rh   ri   rj   rk   rC   rM   rM   rN   forward_from	  s"   z_ChatBase.forward_fromc	                   rI  )a  Shortcut for::

             await bot.forward_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_messages_from`,
            :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )r<  rn   r   r=  r   rh   ri   rj   rk   rC   r   r   r   r   NrJ  )rJ   rn   r   r   r   r   r=  r   r   rh   ri   rj   rk   rC   rM   rM   rN   
forward_to
  s"    z_ChatBase.forward_toc                   0   |   j| j||||||||	|
||dI dH S )a  Shortcut for::

             await bot.forward_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_from`, :meth:`forward_messages_to`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )rn   r<  r   r   r   r   rh   ri   rj   rk   rC   r   Nro   forward_messagesr;   )rJ   r<  r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   forward_messages_fromD
     z_ChatBase.forward_messages_fromc                   rN  )a  Shortcut for::

             await bot.forward_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_to`, :meth:`forward_messages_from`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )r<  rn   r   r   r   r   rh   ri   rj   rk   rC   r   NrO  )rJ   rn   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   forward_messages_toq
  rR  z_ChatBase.forward_messages_toc                   rl   )aS  Shortcut for::

             await bot.export_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.export_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :obj:`str`: New invite link on success.

        rm   N)ro   export_chat_invite_linkr;   rq   rM   rM   rN   export_invite_link
     z_ChatBase.export_invite_linkexpire_datemember_limitcreates_join_requestr   c          
         s,   |   j| j|||||||	||d
I dH S )a  Shortcut for::

             await bot.create_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of
           :meth:`telegram.Bot.create_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )
rn   rW  rX  rh   ri   rj   rk   rC   rZ   rY  N)ro   create_chat_invite_linkr;   )
rJ   rW  rX  rZ   rY  rh   ri   rj   rk   rC   rM   rM   rN   create_invite_link
  s   z_ChatBase.create_invite_linkinvite_linkc                   s.   |   j| j|||||||	|
||dI dH S )a  Shortcut for::

             await bot.edit_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of :meth:`telegram.Bot.edit_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )rn   r\  rW  rX  rh   ri   rj   rk   rC   rZ   rY  N)ro   edit_chat_invite_linkr;   )rJ   r\  rW  rX  rZ   rY  rh   ri   rj   rk   rC   rM   rM   rN   edit_invite_link
  s   z_ChatBase.edit_invite_linkc             	      rz   )aL  Shortcut for::

             await bot.revoke_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.revoke_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :class:`telegram.ChatInviteLink`

        )rn   r\  rh   ri   rj   rk   rC   N)ro   revoke_chat_invite_linkr;   )rJ   r\  rh   ri   rj   rk   rC   rM   rM   rN   revoke_invite_link  r   z_ChatBase.revoke_invite_linksubscription_periodsubscription_pricec          	         *   |   j| j||||||||d	I dH S )a  Shortcut for::

            await bot.create_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`
        )	rn   ra  rb  rZ   rh   ri   rj   rk   rC   N)ro   $create_chat_subscription_invite_linkr;   )	rJ   ra  rb  rZ   rh   ri   rj   rk   rC   rM   rM   rN   create_subscription_invite_link5  s   z)_ChatBase.create_subscription_invite_linkc             
      r   )a  Shortcut for::

            await bot.edit_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`

        )rn   r\  rh   ri   rj   rk   rC   rZ   N)ro   "edit_chat_subscription_invite_linkr;   )rJ   r\  rZ   rh   ri   rj   rk   rC   rM   rM   rN   edit_subscription_invite_link[  s   z'_ChatBase.edit_subscription_invite_linkc             	      rz   )aa  Shortcut for::

             await bot.approve_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.approve_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r{   N)ro   approve_chat_join_requestr;   r}   rM   rM   rN   approve_join_request  r   z_ChatBase.approve_join_requestc             	      rz   )aa  Shortcut for::

             await bot.decline_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.decline_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r{   N)ro   decline_chat_join_requestr;   r}   rM   rM   rN   decline_join_request  r   z_ChatBase.decline_join_requestmenu_buttonc             	      rz   )a  Shortcut for::

             await bot.set_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`get_menu_button`

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   rl  rh   ri   rj   rk   rC   N)ro   set_chat_menu_buttonr;   )rJ   rl  rh   ri   rj   rk   rC   rM   rM   rN   set_menu_button  s   z_ChatBase.set_menu_button
icon_coloricon_custom_emoji_idc          	         rc  )a=  Shortcut for::

             await bot.create_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.ForumTopic`
        )	rn   rZ   ro  rp  rh   ri   rj   rk   rC   N)ro   create_forum_topicr;   )	rJ   rZ   ro  rp  rh   ri   rj   rk   rC   rM   rM   rN   rq       z_ChatBase.create_forum_topicc          	         rc  )aN  Shortcut for::

             await bot.edit_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rn   r   rZ   rp  rh   ri   rj   rk   rC   N)ro   edit_forum_topicr;   )	rJ   r   rZ   rp  rh   ri   rj   rk   rC   rM   rM   rN   rs    rr  z_ChatBase.edit_forum_topicc             	      rz   )aP  Shortcut for::

             await bot.close_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rn   r   rh   ri   rj   rk   rC   N)ro   close_forum_topicr;   rJ   r   rh   ri   rj   rk   rC   rM   rM   rN   ru  /  r   z_ChatBase.close_forum_topicc             	      rz   )aR  Shortcut for::

             await bot.reopen_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rt  N)ro   reopen_forum_topicr;   rv  rM   rM   rN   rw  O  r   z_ChatBase.reopen_forum_topicc             	      rz   )aR  Shortcut for::

             await bot.delete_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rt  N)ro   delete_forum_topicr;   rv  rM   rM   rN   rx  o  r   z_ChatBase.delete_forum_topicc             	      rz   )az  Shortcut for::

             await bot.unpin_all_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_forum_topic_messages`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rt  N)ro   unpin_all_forum_topic_messagesr;   rv  rM   rM   rN   ry    r   z(_ChatBase.unpin_all_forum_topic_messagesc                   rl   )a  Shortcut for::

             await bot.unpin_all_general_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_general_forum_topic_messages`.

        .. versionadded:: 20.5

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   &unpin_all_general_forum_topic_messagesr;   rq   rM   rM   rN   rz    rV  z0_ChatBase.unpin_all_general_forum_topic_messagesc             	      rz   )a}  Shortcut for::

             await bot.edit_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   rZ   rh   ri   rj   rk   rC   N)ro   edit_general_forum_topicr;   )rJ   rZ   rh   ri   rj   rk   rC   rM   rM   rN   r{    s   z"_ChatBase.edit_general_forum_topicc                   rl   )a`  Shortcut for::

             await bot.close_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   close_general_forum_topicr;   rq   rM   rM   rN   r|       z#_ChatBase.close_general_forum_topicc                   rl   )a  Shortcut for::

             await bot.reopen_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   reopen_general_forum_topicr;   rq   rM   rM   rN   r~    rv   z$_ChatBase.reopen_general_forum_topicc                   rl   )a^  Shortcut for::

             await bot.hide_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.hide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   hide_general_forum_topicr;   rq   rM   rM   rN   r  /  r}  z"_ChatBase.hide_general_forum_topicc                   rl   )a  Shortcut for::

             await bot.unhide_general_forum_topic (
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unhide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   unhide_general_forum_topicr;   rq   rM   rM   rN   r  M  rv   z$_ChatBase.unhide_general_forum_topicc                   rl   )a  Shortcut for::

             await bot.get_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`set_menu_button`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.MenuButton`: On success, the current menu button is returned.
        rm   N)ro   get_chat_menu_buttonr;   rq   rM   rM   rN   get_menu_buttonm  s   z_ChatBase.get_menu_buttonr4   c             	      s&   |   j| j||||||dI dH S )az  Shortcut for::

             await bot.get_user_chat_boosts(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_user_chat_boosts`.

        .. versionadded:: 20.8

        Returns:
            :class:`telegram.UserChatBoosts`: On success, returns the boosts applied in the chat.
        )rn   ry   rC   rh   ri   rj   rk   N)ro   get_user_chat_boostsr;   r}   rM   rM   rN   r    r   z_ChatBase.get_user_chat_boostsreactionis_bigc          	         rc  )aU  Shortcut for::

             await bot.set_message_reaction(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_message_reaction`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool` On success, :obj:`True` is returned.
        )	rn   r   r  r  rh   ri   rj   rk   rC   N)ro   set_message_reactionr;   )	rJ   r   r  r  rh   ri   rj   rk   rC   rM   rM   rN   r    rr  z_ChatBase.set_message_reaction)r   r   rh   ri   rj   rk   rC   
star_countr(   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|	d|
d|d|d|d|d|d|d|d|d|d|d|d|d|I dH S )ak  Shortcut for::

             await bot.send_paid_media(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.send_paid_media`.

        .. versionadded:: 21.4

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.
        rn   r  r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   r   r   r   r   r   r   NrM   )ro   send_paid_mediar;   )rJ   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r    sd   '	

z_ChatBase.send_paid_mediagift_idr!   text_parse_modetext_entitiespay_for_upgradec                   sH   |   jd|||||||||	|
d
| jtjkrdnd| jiI dH S )aV  Shortcut for::

             await bot.send_gift(user_id=update.effective_chat.id, *args, **kwargs )

        or::

            await bot.send_gift(chat_id=update.effective_chat.id, *args, **kwargs )

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_gift`.

        Caution:
            Will only work if the chat is a private or channel chat, see :attr:`type`.

        .. versionadded:: 21.8

        .. versionchanged:: 21.11

            Added support for channel chats.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )
r  r   r  r  r  rh   ri   rj   rk   rC   rn   ry   NrM   )ro   	send_giftr@   ChatrS   r;   )rJ   r  r   r  r  r  rh   ri   rj   rk   rC   rM   rM   rN   r    s   
$z_ChatBase.send_giftowned_gift_idc          	         rc  )aK  Shortcut for::

             await bot.transfer_gift(new_owner_chat_id=update.effective_chat.id, *args, **kwargs )

        For the documentation of the arguments, please see :meth:`telegram.Bot.transfer_gift`.

        .. versionadded:: 22.1

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	new_owner_chat_idr   r  r  rh   ri   rj   rk   rC   N)ro   transfer_giftr;   )	rJ   r   r  r  rh   ri   rj   rk   rC   rM   rM   rN   r  H  r   z_ChatBase.transfer_giftcustom_descriptionc             	      rz   )aE  Shortcut for::

             await bot.verify_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.verify_chat`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   r  rh   ri   rj   rk   rC   N)ro   verify_chatr;   )rJ   r  rh   ri   rj   rk   rC   rM   rM   rN   verifyk  r   z_ChatBase.verifyc                   rl   )a_  Shortcut for::

             await bot.remove_chat_verification(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.remove_chat_verification`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rm   N)ro   remove_chat_verificationr;   rq   rM   rM   rN   remove_verification  r}  z_ChatBase.remove_verificationc             
      r   )aX  Shortcut for::

             await bot.read_business_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.read_business_message`.

        .. versionadded:: 22.1

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   r   r   rh   ri   rj   rk   rC   N)ro   read_business_messager;   )rJ   r   r   rh   ri   rj   rk   rC   rM   rM   rN   r    s   z_ChatBase.read_business_message	send_datec             
      r   )ac  
        Shortcut for::

             await bot.approve_suggested_post(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.approve_suggested_post`.

        .. versionadded:: 22.4

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   r   r  rh   ri   rj   rk   rC   N)ro   approve_suggested_postr;   )rJ   r   r  rh   ri   rj   rk   rC   rM   rM   rN   r    r   z _ChatBase.approve_suggested_postcommentc             
      r   )ac  
        Shortcut for::

             await bot.decline_suggested_post(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.decline_suggested_post`.

        .. versionadded:: 22.4

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rn   r   r  rh   ri   rj   rk   rC   N)ro   decline_suggested_postr;   )rJ   r   r  rh   ri   rj   rk   rC   rM   rM   rN   r    r   z _ChatBase.decline_suggested_post)NNNNNN)N)NN)NNNNNNNNNNNNNNNN)NNNN)__name__
__module____qualname____doc__	__slots__intstrr   boolr   rE   r   rG   rO   r   __annotations__rP   rQ   rR   rS   propertyrW   rU   rY   r   rf   r   r   r   floatrr   tupleru   rx   rF   r   dtmdatetimer   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   send_actionr   r   r   r   r   r   r   r   objectr  r  r  r  r$  r)  r,  r.  r   r;  rA  r@  rG  rF  rL  rM  rQ  rS  rU  r[  r^  r`  re  rg  ri  rk  r   rn  r
   rq  rs  ru  rw  rx  ry  rz  r{  r|  r~  r  r  r  r  r   r  r  r  r  r  r  r  r  r  __classcell__rM   rM   rK   rN   r9   S   s  
 	&!#

#
 	
!	

&	
%
	
'	
%
	
&	

#	

L	

-	

)	

'	
&
%	
%	
&	

%	

$
 
	

B	
$	
%	


>	

"

	

D	

A
	


I

	

F


2	

9	

9!	

!"#$%&'(
h	

E
	


M
	

:	

I
	

 !"
S
	

A
	
D	


 P

	
D

	
D


3


3
	4
	5	
	
1	
	
0!	
.	
0	%	
)	
)	%	#	(	
'	
(	$	$	$	$#	%!#!#'	#	
(

	
E
	
6	
%	##	
%	
&	
r9   c                   @   s   e Zd ZdZdZdS )r  a  This object represents a chat.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`id` is equal.

    .. versionchanged:: 20.0

        * Removed the deprecated methods ``kick_member`` and ``get_members_count``.
        * The following are now keyword-only arguments in Bot methods:
          ``location``, ``filename``, ``contact``, ``{read, write, connect, pool}_timeout``,
          ``api_kwargs``. Use a named argument for those,
          and notice that some positional arguments changed position as a result.

    .. versionchanged:: 20.0
        Removed the attribute ``all_members_are_administrators``. As long as Telegram provides
        this field for backwards compatibility, it is available through
        :attr:`~telegram.TelegramObject.api_kwargs`.

    .. versionchanged:: 21.3
        As per Bot API 7.3, most of the arguments and attributes of this class have now moved to
        :class:`telegram.ChatFullInfo`.

    Args:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`, optional): Title, for supergroups, channels and group chats.
        username (:obj:`str`, optional): Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`, optional): First name of the other party in a private chat.
        last_name (:obj:`str`, optional): Last name of the other party in a private chat.
        is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0
        is_direct_messages (:obj:`bool`, optional): :obj:`True`, if the chat is the direct messages
            chat of a channel.

            .. versionadded:: 22.4

    Attributes:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`): Optional. Title, for supergroups, channels and group chats.
        username (:obj:`str`): Optional. Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`): Optional. First name of the other party in a private chat.
        last_name (:obj:`str`): Optional. Last name of the other party in a private chat.
        is_forum (:obj:`bool`): Optional. :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0
        is_direct_messages (:obj:`bool`): Optional. :obj:`True`, if the chat is the direct messages
            chat of a channel.

            .. versionadded:: 22.4

    .. _topics: https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups
    rM   N)r  r  r  r  r  rM   rM   rM   rN   r    s    =r  )Lr  r  r  collections.abcr   htmlr   typingr   r   r   r   telegramr   telegram._chatpermissionsr	   telegram._forumtopicr
   telegram._menubuttonr   telegram._reactionr   telegram._telegramobjectr   telegram._utilsr   telegram._utils.defaultvaluer   telegram._utils.typesr   r   r   r   r   r   telegram._utils.usernamesr   r   telegram.helpersr   r   rg   r   ra   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r  rM   rM   rM   rN   <module>   sf    "                             \