UNPKG

@grammyjs/types

Version:

Telegram Bot API type declarations for grammY

876 lines (875 loc) 52.3 kB
import type { Location, Message, PhotoSize, ReactionType, Sticker } from "./message.js"; import type { Update } from "./update.js"; /** Describes the current status of a webhook. */ export interface WebhookInfo { /** Webhook URL, may be empty if webhook is not set up */ url?: string; /** True, if a custom certificate was provided for webhook certificate checks */ has_custom_certificate: boolean; /** Number of updates awaiting delivery */ pending_update_count: number; /** Currently used webhook IP address */ ip_address?: string; /** Unix time for the most recent error that happened when trying to deliver an update via webhook */ last_error_date?: number; /** Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook */ last_error_message?: string; /** Unix time of the most recent error that happened when trying to synchronize available updates with Telegram datacenters */ last_synchronization_error_date?: number; /** The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery */ max_connections?: number; /** A list of update types the bot is subscribed to. Defaults to all update types except chat_member */ allowed_updates?: Array<Exclude<keyof Update, "update_id">>; } /** This object represents a Telegram user or bot. */ export interface User { /** Unique identifier for this user or bot. */ id: number; /** True, if this user is a bot */ is_bot: boolean; /** User's or bot's first name */ first_name: string; /** User's or bot's last name */ last_name?: string; /** User's or bot's username */ username?: string; /** IETF language tag of the user's language */ language_code?: string; /** True, if this user is a Telegram Premium user */ is_premium?: true; /** True, if this user added the bot to the attachment menu */ added_to_attachment_menu?: true; } /** This object represents a Telegram user or bot that was returned by `getMe`. */ export interface UserFromGetMe extends User { is_bot: true; username: string; /** True, if the bot can be invited to groups. Returned only in getMe. */ can_join_groups: boolean; /** True, if privacy mode is disabled for the bot. Returned only in getMe. */ can_read_all_group_messages: boolean; /** True, if the bot supports inline queries. Returned only in getMe. */ supports_inline_queries: boolean; /** True, if the bot can be connected to a Telegram Business account to receive its messages. Returned only in getMe. */ can_connect_to_business: boolean; /** True, if the bot has main Web App. Returned only in getMe. */ has_main_web_app: boolean; } export declare namespace Chat { /** Internal type for private chats */ interface PrivateChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "private"; /** Title, for supergroups, channels and group chats */ title?: undefined; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name: string; /** Last name of the other party in a private chat */ last_name?: string; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; } /** Internal type for group chats */ interface GroupChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "group"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: undefined; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; } /** Internal type for supergroup chats */ interface SupergroupChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "supergroup"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: true; } /** Internal type for channel chats */ interface ChannelChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "channel"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; } } /** This object represents a chat. */ export type Chat = Chat.PrivateChat | Chat.GroupChat | Chat.SupergroupChat | Chat.ChannelChat; export declare namespace ChatFullInfo { /** Internal type for private chats */ interface PrivateChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "private"; /** Title, for supergroups, channels and group chats */ title?: undefined; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name: string; /** Last name of the other party in a private chat */ last_name?: string; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; /** Identifier of the accent color for the chat name and backgrounds of the chat photo, reply header, and link preview. See accent colors for more details. */ accent_color_id: number; /** The maximum number of reactions that can be set on a message in the chat */ max_reaction_count: number; /** Chat photo */ photo?: ChatPhoto; /** If non-empty, the list of all active chat usernames; for private chats, supergroups and channels */ active_usernames?: string[]; /** For private chats, the date of birth of the user */ birthdate?: Birthdate; /** For private chats with business accounts, the intro of the business */ business_intro?: BusinessIntro; /** For private chats with business accounts, the location of the business */ business_location?: BusinessLocation; /** For private chats with business accounts, the opening hours of the business */ business_opening_hours?: BusinessOpeningHours; /** For private chats, the personal channel of the user */ personal_chat?: Chat; /** List of available reactions allowed in the chat. If omitted, then all emoji reactions are allowed. */ available_reactions?: ReactionType[]; /** Custom emoji identifier of the emoji chosen by the chat for the reply header and link preview background */ background_custom_emoji_id?: string; /** Identifier of the accent color for the chat's profile background. See profile accent colors for more details. */ profile_accent_color_id?: number; /** Custom emoji identifier of the emoji chosen by the chat for its profile background */ profile_background_custom_emoji_id?: string; /** Custom emoji identifier of the emoji status of the chat or the other party in a private chat */ emoji_status_custom_emoji_id?: string; /** Expiration date of the emoji status of the chat or the other party in a private chat, in Unix time, if any */ emoji_status_expiration_date?: number; /** Bio of the other party in a private chat */ bio?: string; /** True, if privacy settings of the other party in the private chat allows to use tg://user?id=<user_id> links only in chats with the user */ has_private_forwards?: true; /** True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat */ has_restricted_voice_and_video_messages?: true; /** True, if users need to join the supergroup before they can send messages */ join_to_send_messages?: undefined; /** True, if all users directly joining the supergroup without using an invite link need to be approved by supergroup administrators */ join_by_request?: undefined; /** Description, for groups, supergroups and channel chats */ description?: undefined; /** Primary invite link, for groups, supergroups and channel chats */ invite_link?: undefined; /** The most recent pinned message (by sending date) */ pinned_message?: Message; /** Default chat member permissions, for groups and supergroups */ permissions?: undefined; /** True, if gifts can be sent to the chat */ can_send_gift?: true; /** True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats. */ can_send_paid_media?: undefined; /** For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds */ slow_mode_delay?: undefined; /** For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions */ unrestrict_boost_count?: undefined; /** The time after which all messages sent to the chat will be automatically deleted; in seconds */ message_auto_delete_time?: number; /** True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. */ has_aggressive_anti_spam_enabled?: undefined; /** True, if non-administrators can only get the list of bots and administrators in the chat */ has_hidden_members?: undefined; /** True, if messages from the chat can't be forwarded to other chats */ has_protected_content?: true; /** True, if new chat members will have access to old messages; available only to chat administrators */ has_visible_history?: undefined; /** For supergroups, name of the group sticker set */ sticker_set_name?: undefined; /** True, if the bot can change the group sticker set */ can_set_sticker_set?: undefined; /** For supergroups, the name of the group's custom emoji sticker set. Custom emoji from this set can be used by all users and bots in the group. */ custom_emoji_sticker_set_name?: undefined; /** Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. */ linked_chat_id?: undefined; /** For supergroups, the location to which the supergroup is connected */ location?: undefined; } /** Internal type for group chats */ interface GroupChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "group"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: undefined; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; /** Identifier of the accent color for the chat name and backgrounds of the chat photo, reply header, and link preview. See accent colors for more details. */ accent_color_id: number; /** The maximum number of reactions that can be set on a message in the chat */ max_reaction_count: number; /** Chat photo */ photo?: ChatPhoto; /** If non-empty, the list of all active chat usernames; for private chats, supergroups and channels */ active_usernames?: undefined; /** For private chats, the date of birth of the user */ birthdate?: undefined; /** For private chats with business accounts, the intro of the business */ business_intro?: undefined; /** For private chats with business accounts, the location of the business */ business_location?: undefined; /** For private chats with business accounts, the opening hours of the business */ business_opening_hours?: undefined; /** For private chats, the personal channel of the user */ personal_chat?: undefined; /** List of available reactions allowed in the chat. If omitted, then all emoji reactions are allowed. */ available_reactions?: ReactionType[]; /** Custom emoji identifier of the emoji chosen by the chat for the reply header and link preview background */ background_custom_emoji_id?: string; /** Identifier of the accent color for the chat's profile background. See profile accent colors for more details. */ profile_accent_color_id?: number; /** Custom emoji identifier of the emoji chosen by the chat for its profile background */ profile_background_custom_emoji_id?: string; /** Custom emoji identifier of the emoji status of the chat or the other party in a private chat */ emoji_status_custom_emoji_id?: string; /** Expiration date of the emoji status of the chat or the other party in a private chat, in Unix time, if any */ emoji_status_expiration_date?: number; /** Bio of the other party in a private chat */ bio?: undefined; /** True, if privacy settings of the other party in the private chat allows to use tg://user?id=<user_id> links only in chats with the user */ has_private_forwards?: undefined; /** True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat */ has_restricted_voice_and_video_messages?: undefined; /** True, if users need to join the supergroup before they can send messages */ join_to_send_messages?: undefined; /** True, if all users directly joining the supergroup without using an invite link need to be approved by supergroup administrators */ join_by_request?: undefined; /** Description, for groups, supergroups and channel chats */ description?: string; /** Primary invite link, for groups, supergroups and channel chats */ invite_link?: string; /** The most recent pinned message (by sending date) */ pinned_message?: Message; /** Default chat member permissions, for groups and supergroups */ permissions?: ChatPermissions; /** True, if gifts can be sent to the chat */ can_send_gift?: true; /** True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats. */ can_send_paid_media?: undefined; /** For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds */ slow_mode_delay?: undefined; /** For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions */ unrestrict_boost_count?: undefined; /** The time after which all messages sent to the chat will be automatically deleted; in seconds */ message_auto_delete_time?: number; /** True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. */ has_aggressive_anti_spam_enabled?: undefined; /** True, if non-administrators can only get the list of bots and administrators in the chat */ has_hidden_members?: true; /** True, if messages from the chat can't be forwarded to other chats */ has_protected_content?: true; /** True, if new chat members will have access to old messages; available only to chat administrators */ has_visible_history?: true; /** For supergroups, name of the group sticker set */ sticker_set_name?: undefined; /** True, if the bot can change the group sticker set */ can_set_sticker_set?: true; /** For supergroups, the name of the group's custom emoji sticker set. Custom emoji from this set can be used by all users and bots in the group. */ custom_emoji_sticker_set_name?: undefined; /** Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. */ linked_chat_id?: undefined; /** For supergroups, the location to which the supergroup is connected */ location?: undefined; } /** Internal type for supergroup chats */ interface SupergroupChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "supergroup"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: true; /** Identifier of the accent color for the chat name and backgrounds of the chat photo, reply header, and link preview. See accent colors for more details. */ accent_color_id: number; /** The maximum number of reactions that can be set on a message in the chat */ max_reaction_count: number; /** Chat photo */ photo?: ChatPhoto; /** If non-empty, the list of all active chat usernames; for private chats, supergroups and channels */ active_usernames?: string[]; /** For private chats, the date of birth of the user */ birthdate?: undefined; /** For private chats with business accounts, the intro of the business */ business_intro?: undefined; /** For private chats with business accounts, the location of the business */ business_location?: undefined; /** For private chats with business accounts, the opening hours of the business */ business_opening_hours?: undefined; /** For private chats, the personal channel of the user */ personal_chat?: undefined; /** List of available reactions allowed in the chat. If omitted, then all emoji reactions are allowed. */ available_reactions?: ReactionType[]; /** Custom emoji identifier of the emoji chosen by the chat for the reply header and link preview background */ background_custom_emoji_id?: string; /** Identifier of the accent color for the chat's profile background. See profile accent colors for more details. */ profile_accent_color_id?: number; /** Custom emoji identifier of the emoji chosen by the chat for its profile background */ profile_background_custom_emoji_id?: string; /** Custom emoji identifier of the emoji status of the chat or the other party in a private chat */ emoji_status_custom_emoji_id?: string; /** Expiration date of the emoji status of the chat or the other party in a private chat, in Unix time, if any */ emoji_status_expiration_date?: number; /** Bio of the other party in a private chat */ bio?: string; /** True, if privacy settings of the other party in the private chat allows to use tg://user?id=<user_id> links only in chats with the user */ has_private_forwards?: undefined; /** True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat */ has_restricted_voice_and_video_messages?: undefined; /** True, if users need to join the supergroup before they can send messages */ join_to_send_messages?: true; /** True, if all users directly joining the supergroup without using an invite link need to be approved by supergroup administrators */ join_by_request?: true; /** Description, for groups, supergroups and channel chats */ description?: string; /** Primary invite link, for groups, supergroups and channel chats */ invite_link?: string; /** The most recent pinned message (by sending date) */ pinned_message?: Message; /** Default chat member permissions, for groups and supergroups */ permissions?: ChatPermissions; /** True, if gifts can be sent to the chat */ can_send_gift?: true; /** True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats. */ can_send_paid_media?: undefined; /** For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds */ slow_mode_delay?: number; /** For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions */ unrestrict_boost_count?: number; /** The time after which all messages sent to the chat will be automatically deleted; in seconds */ message_auto_delete_time?: number; /** True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. */ has_aggressive_anti_spam_enabled?: true; /** True, if non-administrators can only get the list of bots and administrators in the chat */ has_hidden_members?: true; /** True, if messages from the chat can't be forwarded to other chats */ has_protected_content?: true; /** True, if new chat members will have access to old messages; available only to chat administrators */ has_visible_history?: true; /** For supergroups, name of the group sticker set */ sticker_set_name?: string; /** True, if the bot can change the group sticker set */ can_set_sticker_set?: true; /** For supergroups, the name of the group's custom emoji sticker set. Custom emoji from this set can be used by all users and bots in the group. */ custom_emoji_sticker_set_name?: string; /** Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. */ linked_chat_id?: number; /** For supergroups, the location to which the supergroup is connected */ location?: ChatLocation; } /** Internal type for channel chats */ interface ChannelChat { /** Unique identifier for this chat. */ id: number; /** Type of the chat, can be either “private”, “group”, “supergroup” or “channel” */ type: "channel"; /** Title, for supergroups, channels and group chats */ title: string; /** Username, for private chats, supergroups and channels if available */ username?: string; /** First name of the other party in a private chat */ first_name?: undefined; /** Last name of the other party in a private chat */ last_name?: undefined; /** True, if the supergroup chat is a forum (has topics enabled) */ is_forum?: undefined; /** Identifier of the accent color for the chat name and backgrounds of the chat photo, reply header, and link preview. See accent colors for more details. */ accent_color_id: number; /** The maximum number of reactions that can be set on a message in the chat */ max_reaction_count: number; /** Chat photo */ photo?: ChatPhoto; /** If non-empty, the list of all active chat usernames; for private chats, supergroups and channels */ active_usernames?: string[]; /** For private chats, the date of birth of the user */ birthdate?: undefined; /** For private chats with business accounts, the intro of the business */ business_intro?: undefined; /** For private chats with business accounts, the location of the business */ business_location?: undefined; /** For private chats with business accounts, the opening hours of the business */ business_opening_hours?: undefined; /** For private chats, the personal channel of the user */ personal_chat?: undefined; /** List of available reactions allowed in the chat. If omitted, then all emoji reactions are allowed. */ available_reactions?: ReactionType[]; /** Custom emoji identifier of the emoji chosen by the chat for the reply header and link preview background */ background_custom_emoji_id?: string; /** Identifier of the accent color for the chat's profile background. See profile accent colors for more details. */ profile_accent_color_id?: number; /** Custom emoji identifier of the emoji chosen by the chat for its profile background */ profile_background_custom_emoji_id?: string; /** Custom emoji identifier of the emoji status of the chat or the other party in a private chat */ emoji_status_custom_emoji_id?: string; /** Expiration date of the emoji status of the chat or the other party in a private chat, in Unix time, if any */ emoji_status_expiration_date?: number; /** Bio of the other party in a private chat */ bio?: undefined; /** True, if privacy settings of the other party in the private chat allows to use tg://user?id=<user_id> links only in chats with the user */ has_private_forwards?: undefined; /** True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat */ has_restricted_voice_and_video_messages?: undefined; /** True, if users need to join the supergroup before they can send messages */ join_to_send_messages?: true; /** True, if all users directly joining the supergroup without using an invite link need to be approved by supergroup administrators */ join_by_request?: undefined; /** Description, for groups, supergroups and channel chats */ description?: string; /** Primary invite link, for groups, supergroups and channel chats */ invite_link?: string; /** The most recent pinned message (by sending date) */ pinned_message?: Message; /** Default chat member permissions, for groups and supergroups */ permissions?: undefined; /** True, if gifts can be sent to the chat */ can_send_gift?: true; /** True, if paid media messages can be sent or forwarded to the channel chat. The field is available only for channel chats. */ can_send_paid_media?: true; /** For supergroups, the minimum allowed delay between consecutive messages sent by each unprivileged user; in seconds */ slow_mode_delay?: undefined; /** For supergroups, the minimum number of boosts that a non-administrator user needs to add in order to ignore slow mode and chat permissions */ unrestrict_boost_count?: undefined; /** The time after which all messages sent to the chat will be automatically deleted; in seconds */ message_auto_delete_time?: number; /** True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. */ has_aggressive_anti_spam_enabled?: undefined; /** True, if non-administrators can only get the list of bots and administrators in the chat */ has_hidden_members?: undefined; /** True, if messages from the chat can't be forwarded to other chats */ has_protected_content?: true; /** True, if new chat members will have access to old messages; available only to chat administrators */ has_visible_history?: undefined; /** For supergroups, name of the group sticker set */ sticker_set_name?: undefined; /** True, if the bot can change the group sticker set */ can_set_sticker_set?: undefined; /** For supergroups, the name of the group's custom emoji sticker set. Custom emoji from this set can be used by all users and bots in the group. */ custom_emoji_sticker_set_name?: undefined; /** Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. */ linked_chat_id?: number; /** For supergroups, the location to which the supergroup is connected */ location?: undefined; } } /** This object contains full information about a chat. */ export type ChatFullInfo = ChatFullInfo.PrivateChat | ChatFullInfo.GroupChat | ChatFullInfo.SupergroupChat | ChatFullInfo.ChannelChat; /** @deprecated use ChatFullInfo instead */ export type ChatFromGetChat = ChatFullInfo; /** This object represent a user's profile pictures. */ export interface UserProfilePhotos { /** Total number of profile pictures the target user has */ total_count: number; /** Requested profile pictures (in up to 4 sizes each) */ photos: PhotoSize[][]; } /** This object represents a chat photo. */ export interface ChatPhoto { /** File identifier of small (160x160) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed. */ small_file_id: string; /** Unique file identifier of small (160x160) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. */ small_file_unique_id: string; /** File identifier of big (640x640) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed. */ big_file_id: string; /** Unique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. */ big_file_unique_id: string; } /** Represents an invite link for a chat. */ export interface ChatInviteLink { /** The invite link. If the link was created by another chat administrator, then the second part of the link will be replaced with "...". */ invite_link: string; /** Creator of the link */ creator: User; /** True, if users joining the chat via the link need to be approved by chat administrators */ creates_join_request: boolean; /** True, if the link is primary */ is_primary: boolean; /** True, if the link is revoked */ is_revoked: boolean; /** Invite link name */ name?: string; /** Point in time (Unix timestamp) when the link will expire or has been expired */ expire_date?: number; /** The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 */ member_limit?: number; /** Number of pending join requests created using this link */ pending_join_request_count?: number; /** The number of seconds the subscription will be active for before the next payment */ subscription_period?: number; /** The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat using the link */ subscription_price?: number; } /** Represents the rights of an administrator in a chat. */ export interface ChatAdministratorRights { /** True, if the user's presence in the chat is hidden */ is_anonymous: boolean; /** True, if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report spam messages and ignore slow mode. Implied by any other administrator privilege. */ can_manage_chat: boolean; /** True, if the administrator can delete messages of other users */ can_delete_messages: boolean; /** True, if the administrator can manage video chats */ can_manage_video_chats: boolean; /** True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics */ can_restrict_members: boolean; /** True, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user) */ can_promote_members: boolean; /** True, if the user is allowed to change the chat title, photo and other settings */ can_change_info: boolean; /** True, if the user is allowed to invite new users to the chat */ can_invite_users: boolean; /** True, if the administrator can post stories to the chat */ can_post_stories: boolean; /** True, if the administrator can edit stories posted by other users, post stories to the chat page, pin chat stories, and access the chat's story archive */ can_edit_stories: boolean; /** True, if the administrator can delete stories posted by other users */ can_delete_stories: boolean; /** True, if the administrator can post messages in the channel, or access channel statistics; for channels only */ can_post_messages?: boolean; /** True, if the administrator can edit messages of other users and can pin messages; for channels only */ can_edit_messages?: boolean; /** True, if the user is allowed to pin messages; for groups and supergroups only */ can_pin_messages?: boolean; /** True, if the user is allowed to create, rename, close, and reopen forum topics; for supergroups only */ can_manage_topics?: boolean; } /** This object represents changes in the status of a chat member. */ export interface ChatMemberUpdated { /** Chat the user belongs to */ chat: Chat; /** Performer of the action, which resulted in the change */ from: User; /** Date the change was done in Unix time */ date: number; /** Previous information about the chat member */ old_chat_member: ChatMember; /** New information about the chat member */ new_chat_member: ChatMember; /** Chat invite link, which was used by the user to join the chat; for joining by invite link events only. */ invite_link?: ChatInviteLink; /** True, if the user joined the chat after sending a direct join request without using an invite link without using an invite link and being approved by an administrator */ via_join_request?: boolean; /** True, if the user joined the chat via a chat folder invite link */ via_chat_folder_invite_link?: boolean; } /** This object contains information about one member of a chat. Currently, the following 6 types of chat members are supported: - ChatMemberOwner - ChatMemberAdministrator - ChatMemberMember - ChatMemberRestricted - ChatMemberLeft - ChatMemberBanned */ export type ChatMember = ChatMemberOwner | ChatMemberAdministrator | ChatMemberMember | ChatMemberRestricted | ChatMemberLeft | ChatMemberBanned; /** Represents a chat member that owns the chat and has all administrator privileges. */ export interface ChatMemberOwner { /** The member's status in the chat, always “creator” */ status: "creator"; /** Information about the user */ user: User; /** True, if the user's presence in the chat is hidden */ is_anonymous: boolean; /** Custom title for this user */ custom_title?: string; } /** Represents a chat member that has some additional privileges. */ export interface ChatMemberAdministrator { /** The member's status in the chat, always “administrator” */ status: "administrator"; /** Information about the user */ user: User; /** True, if the bot is allowed to edit administrator privileges of that user */ can_be_edited: boolean; /** True, if the user's presence in the chat is hidden */ is_anonymous: boolean; /** True, if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report spam messages and ignore slow mode. Implied by any other administrator privilege. */ can_manage_chat: boolean; /** True, if the administrator can delete messages of other users */ can_delete_messages: boolean; /** True, if the administrator can manage video chats */ can_manage_video_chats: boolean; /** True, if the administrator can restrict, ban or unban chat members, or access supergroup statistics */ can_restrict_members: boolean; /** True, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user) */ can_promote_members: boolean; /** True, if the user is allowed to change the chat title, photo and other settings */ can_change_info: boolean; /** True, if the user is allowed to invite new users to the chat */ can_invite_users: boolean; /** True, if the administrator can post stories to the chat */ can_post_stories: boolean; /** True, if the administrator can edit stories posted by other users, post stories to the chat page, pin chat stories, and access the chat's story archive */ can_edit_stories: boolean; /** True, if the administrator can delete stories posted by other users */ can_delete_stories: boolean; /** True, if the administrator can post messages in the channel, or access channel statistics; for channels only */ can_post_messages?: boolean; /** True, if the administrator can edit messages of other users and can pin messages; for channels only */ can_edit_messages?: boolean; /** True, if the user is allowed to pin messages; for groups and supergroups only */ can_pin_messages?: boolean; /** True, if the user is allowed to create, rename, close, and reopen forum topics; for supergroups only */ can_manage_topics?: boolean; /** Custom title for this user */ custom_title?: string; } /** Represents a chat member that has no additional privileges or restrictions. */ export interface ChatMemberMember { /** The member's status in the chat, always “member” */ status: "member"; /** Information about the user */ user: User; /** Date when the user's subscription will expire; Unix time */ until_date?: number; } /** Represents a chat member that is under certain restrictions in the chat. Supergroups only. */ export interface ChatMemberRestricted { /** The member's status in the chat, always “restricted” */ status: "restricted"; /** Information about the user */ user: User; /** True, if the user is a member of the chat at the moment of the request */ is_member: boolean; /** True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues */ can_send_messages: boolean; /** True, if the user is allowed to send audios */ can_send_audios: boolean; /** True, if the user is allowed to send documents */ can_send_documents: boolean; /** True, if the user is allowed to send photos */ can_send_photos: boolean; /** True, if the user is allowed to send videos */ can_send_videos: boolean; /** True, if the user is allowed to send video notes */ can_send_video_notes: boolean; /** True, if the user is allowed to send voice notes */ can_send_voice_notes: boolean; /** True, if the user is allowed to send polls */ can_send_polls: boolean; /** True, if the user is allowed to send animations, games, stickers and use inline bots */ can_send_other_messages: boolean; /** True, if the user is allowed to add web page previews to their messages */ can_add_web_page_previews: boolean; /** True, if the user is allowed to change the chat title, photo and other settings */ can_change_info: boolean; /** True, if the user is allowed to invite new users to the chat */ can_invite_users: boolean; /** True, if the user is allowed to pin messages */ can_pin_messages: boolean; /** True, if the user is allowed to create forum topics */ can_manage_topics: boolean; /** Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever */ until_date: number; } /** Represents a chat member that isn't currently a member of the chat, but may join it themselves. */ export interface ChatMemberLeft { /** The member's status in the chat, always “left” */ status: "left"; /** Information about the user */ user: User; } /** Represents a chat member that was banned in the chat and can't return to the chat or view chat messages. */ export interface ChatMemberBanned { /** The member's status in the chat, always “kicked” */ status: "kicked"; /** Information about the user */ user: User; /** Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever */ until_date: number; } /** Represents a join request sent to a chat. */ export interface ChatJoinRequest { /** Chat to which the request was sent */ chat: Chat.SupergroupChat | Chat.ChannelChat; /** User that sent the join request */ from: User; /** Identifier of a private chat with the user who sent the join request. The bot can use this identifier for 5 minutes to send messages until the join request is processed, assuming no other administrator contacted the user. */ user_chat_id: number; /** Date the request was sent in Unix time */ date: number; /** Bio of the user. */ bio?: string; /** Chat invite link that was used by the user to send the join request */ invite_link?: ChatInviteLink; } /** Describes actions that a non-administrator user is allowed to take in a chat. */ export interface ChatPermissions { /** True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues */ can_send_messages?: boolean; /** True, if the user is allowed to send audios */ can_send_audios?: boolean; /** True, if the user is allowed to send documents */ can_send_documents?: boolean; /** True, if the user is allowed to send photos */ can_send_photos?: boolean; /** True, if the user is allowed to send videos */ can_send_videos?: boolean; /** True, if the user is allowed to send video notes */ can_send_video_notes?: boolean; /** True, if the user is allowed to send voice notes */ can_send_voice_notes?: boolean; /** True, if the user is allowed to send polls */ can_send_polls?: boolean; /** True, if the user is allowed to send animations, games, stickers and use inline bots */ can_send_other_messages?: boolean; /** True, if the user is allowed to add web page previews to their messages */ can_add_web_page_previews?: boolean; /** True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups */ can_change_info?: boolean; /** True, if the user is allowed to invite new users to the chat */ can_invite_users?: boolean; /** True, if the user is allowed to pin messages. Ignored in public supergroups */ can_pin_messages?: boolean; /** True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages */ can_manage_topics?: boolean; } /** Describes the birthdate of a user. */ export interface Birthdate { /** Day of the user's birth; 1-31 */ day: number; /** Month of the user's birth; 1-12 */ month: number; /** Year of the user's birth */ year?: number; } /** Contains information about the start page settings of a Telegram Business account. */ export interface BusinessIntro { /** Title text of the business intro */ title?: string; /** Message text of the business intro */ message?: string; /** Sticker of the business intro */ sticker?: Sticker; } /** Contains information about the location of a Telegram Business account. */ export interface BusinessLocation { /** Address of the business */ address: string; /** Location of the business */ location?: Location; } /** Describes an interval of time during which a business is open. */ export interface BusinessOpeningHoursInterval { /** The minute's sequence number in a week, starting on Monday, marking the start of the time interval during which the business is open; 0 - 7 * 24 * 60 */ opening_minute: number; /** The minute's sequence number in a week, starting on Monday, marking the end of the time interval during which the business is open; 0 - 8 * 24 * 60 */ closing_minute: number; } /** Describes the opening hours of a business. */ export interface BusinessOpeningHours { /** Unique name of the time zone for which the opening hours are defined */ time_zone_name: string; /** List of time intervals describing business opening hours */ opening_hours: BusinessOpeningHoursInterval[]; } /** Represents a location to which a chat is connected. */ export interface ChatLocation { /** The location to which the supergroup is connected. Can't be a live location. */ location: Location; /** Location address; 1-64 characters, as defined by the chat owner */ address: string; } /** This object represents a forum topic. */ export interface ForumTopic { /** Unique identifier of the forum topic */ message_thread_id: number; /** Name of the topic */ name: string; /** Color of the topic icon in RGB format */ icon_color: number; /** Unique identifier of the custom emoji shown as the topic icon */ icon_custom_emoji_id?: string; } /** This object represents a bot command. */ export interface BotCommand { /** Text of the command; 1-32 characters. Can contain only lowercase English letters, digits and underscores. */ command: string; /** Description of the command; 1-256 characters. */ description: string; } /** This object describes the source of a chat boost. It can be one of - ChatBoostSourcePremium - ChatBoostSourceGiftCode - ChatBoostSourceGiveaway */ export type ChatBoostSource = ChatBoostSourcePremium | ChatBoostSourceGiftCode | ChatBoostSourceGiveaway; /** The boost was obtained by subscribing to Telegram Premium or by gifting a Telegram Premium subscription to another user. */ export interface ChatBoostSourcePremium { /** Source of the boost, always “premium” */ source: "premium"; /** User that boosted the chat */ user: User; } /** The boost was obtained by the creation of Telegram Premium gift codes to boost a chat. Each such code boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription. */ export interface ChatBoostSourceGiftCode { /** Source of the boost, always “gift_code” */ source: "gift_code"; /** User for which the gift code was created */ user: User; } /** The boost was obtained by the creation of a Telegram Premium or a Telegram Star giveaway. This boosts the chat 4 times for the duration of the corresponding Telegram Premium subscription for Telegram Premium giveaways and prize_star_count / 500 times for one year for Telegram Star giveaways. */ export interface ChatBoostSourceGiveaway { /** Source of the boost, always “giveaway” */ source: "giveaway"; /** Identifier of a message in the chat with the giveaway; the message could have been deleted already */ giveaway_message_id: number; /** User that won the prize in the giveaway if any; for Telegram Premium giveaways only */ user?: User; /** The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaways only */ prize_star_count?: number; /** True, if the giveaway was completed, but there was no user to win the prize */ is_unclaimed?: true; } /** This object contains information about a chat boost. */ export interface ChatBoost { /** Unique identifier of the boost */ boost_id: string; /** Point in time (Unix timestamp) when the chat was boosted */ add_date: number; /** Point in time (Unix timestamp) when the boost will automa