UNPKG

@types/node-telegram-bot-api

Version:
1,545 lines (1,346 loc) 66.6 kB
/// <reference types="node" /> import { ServerOptions } from "https"; import { Options } from "request"; import { Readable, Stream } from "stream"; declare namespace TelegramBot { interface TextListener { regexp: RegExp; callback(msg: Message, match: RegExpExecArray | null): void; } interface ReplyListener { id: number; chatId: ChatId; messageId: number | string; callback(msg: Message): void; } type ChatType = "private" | "group" | "supergroup" | "channel"; type ChatAction = | "typing" | "upload_photo" | "record_video" | "upload_video" | "record_voice" | "upload_voice" | "upload_document" | "find_location" | "record_video_note" | "upload_video_note"; type ChatMemberStatus = "creator" | "administrator" | "member" | "restricted" | "left" | "kicked"; type DocumentMimeType = "application/pdf" | "application/zip"; type MessageType = | "text" | "animation" | "audio" | "channel_chat_created" | "contact" | "delete_chat_photo" | "document" | "game" | "group_chat_created" | "invoice" | "left_chat_member" | "location" | "migrate_from_chat_id" | "migrate_to_chat_id" | "new_chat_members" | "new_chat_photo" | "new_chat_title" | "passport_data" | "photo" | "pinned_message" | "sticker" | "successful_payment" | "supergroup_chat_created" | "video" | "video_note" | "voice" | "video_chat_started" | "video_chat_ended" | "video_chat_participants_invited" | "video_chat_scheduled" | "message_auto_delete_timer_changed" | "chat_invite_link" | "chat_member_updated" | "web_app_data"; type MessageEntityType = | "mention" | "hashtag" | "cashtag" | "bot_command" | "url" | "email" | "phone_number" | "bold" | "italic" | "underline" | "strikethrough" | "code" | "pre" | "text_link" | "text_mention" | "spoiler" | "custom_emoji"; type ParseMode = "Markdown" | "MarkdownV2" | "HTML"; /// METHODS OPTIONS /// interface PollingOptions { interval?: string | number | undefined; autoStart?: boolean | undefined; params?: GetUpdatesOptions | undefined; } interface WebHookOptions { host?: string | undefined; port?: number | undefined; key?: string | undefined; cert?: string | undefined; pfx?: string | undefined; autoOpen?: boolean | undefined; https?: ServerOptions | undefined; healthEndpoint?: string | undefined; } interface ConstructorOptions { polling?: boolean | PollingOptions | undefined; webHook?: boolean | WebHookOptions | undefined; onlyFirstMatch?: boolean | undefined; request?: Options | undefined; baseApiUrl?: string | undefined; filepath?: boolean | undefined; testEnvironment?: boolean | undefined; } interface StartPollingOptions extends ConstructorOptions { restart?: boolean | undefined; } interface StopPollingOptions { cancel?: boolean | undefined; reason?: string | undefined; } interface SetWebHookOptions { url?: string | undefined; certificate?: string | Stream | undefined; max_connections?: number | undefined; allowed_updates?: string[] | undefined; secret_token?: string | undefined; } interface GetUpdatesOptions { offset?: number | undefined; limit?: number | undefined; timeout?: number | undefined; allowed_updates?: string[] | undefined; } interface SendBasicOptions { message_thread_id?: number | undefined; disable_notification?: boolean | undefined; reply_to_message_id?: number | undefined; reply_markup?: InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply | undefined; protect_content?: boolean | undefined; allow_sending_without_reply?: boolean | undefined; } interface SendMessageOptions extends SendBasicOptions { parse_mode?: ParseMode | undefined; disable_web_page_preview?: boolean | undefined; entities?: MessageEntity[] | undefined; } interface AnswerInlineQueryOptions { cache_time?: number | undefined; is_personal?: boolean | undefined; next_offset?: string | undefined; switch_pm_text?: string | undefined; switch_pm_parameter?: string | undefined; } interface ForwardMessageOptions { disable_notification?: boolean | undefined; protect_content?: boolean | undefined; } interface SendPhotoOptions extends SendBasicOptions { has_spoiler?: boolean | undefined; parse_mode?: ParseMode | undefined; caption?: string | undefined; caption_entities?: MessageEntity[] | undefined; } interface FileOptions { filename?: string | undefined; contentType?: string | undefined; } interface BanOptions { until_date?: number | undefined; revoke_messages?: boolean | undefined; } interface UnbanOptions { only_if_banned?: boolean | undefined; } interface SendAudioOptions extends SendBasicOptions { parse_mode?: ParseMode | undefined; caption?: string | undefined; duration?: number | undefined; performer?: string | undefined; title?: string | undefined; thumbnail?: string | Stream | Buffer; caption_entities?: MessageEntity[] | undefined; } interface SendAnimationOptions extends SendBasicOptions { has_spoiler?: boolean | undefined; parse_mode?: ParseMode | undefined; caption?: string | undefined; duration?: number | undefined; width?: number | undefined; height?: number | undefined; thumbnail?: string | Stream | Buffer; caption_entities?: MessageEntity[] | undefined; } interface SendDocumentOptions extends SendBasicOptions { parse_mode?: ParseMode | undefined; caption?: string | undefined; thumbnail?: string | Stream | Buffer; caption_entities?: MessageEntity[] | undefined; } interface SendMediaGroupOptions { disable_notification?: boolean | undefined; reply_to_message_id?: number | undefined; } interface SendPollOptions extends SendBasicOptions { is_anonymous?: boolean | undefined; type?: PollType | undefined; allows_multiple_answers?: boolean | undefined; correct_option_id?: number | undefined; explanation?: string | undefined; explanation_parse_mode?: ParseMode | undefined; open_period?: number | undefined; close_date?: number | undefined; is_closed?: boolean | undefined; } interface StopPollOptions { reply_markup?: InlineKeyboardMarkup | undefined; } type SendStickerOptions = SendBasicOptions; interface SendVideoOptions extends SendBasicOptions { has_spoiler?: boolean | undefined; parse_mode?: ParseMode | undefined; duration?: number | undefined; width?: number | undefined; height?: number | undefined; caption?: string | undefined; thumbnail?: string | Stream | Buffer; caption_entities?: MessageEntity[] | undefined; } interface SendVoiceOptions extends SendBasicOptions { parse_mode?: ParseMode | undefined; caption?: string | undefined; duration?: number | undefined; caption_entities?: MessageEntity[] | undefined; } interface SendVideoNoteOptions extends SendBasicOptions { duration?: number | undefined; length?: number | undefined; thumbnail?: string | Stream | Buffer; } interface SendLocationOptions extends SendBasicOptions { live_period?: number | undefined; horizontal_accuracy?: number | undefined; heading?: number | undefined; proximity_alert_radius?: number | undefined; } type EditMessageLiveLocationOptions = EditMessageCaptionOptions; type StopMessageLiveLocationOptions = EditMessageCaptionOptions; interface SendVenueOptions extends SendBasicOptions { foursquare_id?: string | undefined; } interface SendContactOptions extends SendBasicOptions { last_name?: string | undefined; vcard?: string | undefined; } type SendGameOptions = SendBasicOptions; interface SendInvoiceOptions extends SendBasicOptions { provider_data?: string | undefined; photo_url?: string | undefined; photo_size?: number | undefined; photo_width?: number | undefined; photo_height?: number | undefined; start_parameter?: string | undefined; need_name?: boolean | undefined; need_phone_number?: boolean | undefined; need_email?: boolean | undefined; need_shipping_address?: boolean | undefined; is_flexible?: boolean | undefined; } interface CreateInvoiceLinkOptions { provider_data?: string | undefined; photo_url?: string | undefined; photo_size?: number | undefined; photo_width?: number | undefined; photo_height?: number | undefined; need_name?: boolean | undefined; need_phone_number?: boolean | undefined; need_email?: boolean | undefined; need_shipping_address?: boolean | undefined; send_phone_number_to_provider?: boolean | undefined; send_email_to_provider?: boolean | undefined; is_flexible?: boolean | undefined; } interface CopyMessageOptions extends SendBasicOptions { caption?: string | undefined; parse_mode?: ParseMode | undefined; caption_entities?: MessageEntity[] | undefined; } interface RestrictChatMemberOptions { until_date?: number | undefined; use_independent_chat_permissions?: boolean | undefined; } type RestrictChatMemberOptionsWithChatPermissions = RestrictChatMemberOptions & ChatPermissions; interface PromoteChatMemberOptions { is_anonymous?: boolean | undefined; can_manage_chat?: boolean | undefined; can_change_info?: boolean | undefined; can_post_messages?: boolean | undefined; can_edit_messages?: boolean | undefined; can_delete_messages?: boolean | undefined; can_invite_users?: boolean | undefined; can_restrict_members?: boolean | undefined; can_pin_messages?: boolean | undefined; can_promote_members?: boolean | undefined; can_manage_video_chats?: boolean | undefined; can_manage_topics?: boolean | undefined; } interface CreateForumTopicOptions { icon_color?: number | undefined; icon_custom_emoji_id?: string | undefined; } interface EditForumTopicOptions { name?: string | undefined; icon_custom_emoji_id?: string | undefined; } interface SendChatActionOptions { message_thread_id?: number | undefined; } interface SetChatPermissionsOptions { use_independent_chat_permissions?: boolean | undefined; } interface AnswerCallbackQueryOptions { callback_query_id: string; text?: string | undefined; show_alert?: boolean | undefined; url?: string | undefined; cache_time?: number | undefined; } interface EditMessageTextOptions extends EditMessageCaptionOptions { parse_mode?: ParseMode | undefined; disable_web_page_preview?: boolean | undefined; } interface EditMessageCaptionOptions extends EditMessageReplyMarkupOptions { reply_markup?: InlineKeyboardMarkup | undefined; parse_mode?: ParseMode | undefined; caption_entities?: MessageEntity[] | undefined; } interface EditMessageReplyMarkupOptions { chat_id?: ChatId | undefined; message_id?: number | undefined; inline_message_id?: string | undefined; } interface EditMessageMediaOptions { chat_id?: ChatId | undefined; message_id?: number | undefined; inline_message_id?: string | undefined; reply_markup?: InlineKeyboardMarkup | undefined; } interface GetUserProfilePhotosOptions { offset?: number | undefined; limit?: number | undefined; } interface SetGameScoreOptions { force?: boolean | undefined; disable_edit_message?: boolean | undefined; chat_id?: number | undefined; message_id?: number | undefined; inline_message_id?: string | undefined; } interface GetGameHighScoresOptions { chat_id?: number | undefined; message_id?: number | undefined; inline_message_id?: string | undefined; } interface AnswerShippingQueryOptions { shipping_options?: ShippingOption[] | undefined; error_message?: string | undefined; } interface AnswerPreCheckoutQueryOptions { error_message?: string | undefined; } interface SendDiceOptions extends SendBasicOptions { emoji?: string | undefined; } interface PinChatMessageOptions { disable_notification?: boolean | undefined; } interface UnpinChatMessageOptions { message_id?: number | undefined; } /// TELEGRAM TYPES /// interface PassportFile { file_id: string; file_size: number; file_date: number; } interface EncryptedPassportElement { type: string; data?: string | undefined; phone_number?: string | undefined; email?: string | undefined; files?: PassportFile[] | undefined; front_side?: PassportFile | undefined; reverse_side?: PassportFile | undefined; selfie?: PassportFile | undefined; translation?: PassportFile[] | undefined; hash: string; } interface EncryptedCredentials { data: string; hash: string; secret: string; } interface PassportData { data: EncryptedPassportElement[]; credentials: EncryptedCredentials; } interface Update { update_id: number; message?: Message | undefined; edited_message?: Message | undefined; channel_post?: Message | undefined; edited_channel_post?: Message | undefined; inline_query?: InlineQuery | undefined; chosen_inline_result?: ChosenInlineResult | undefined; callback_query?: CallbackQuery | undefined; shipping_query?: ShippingQuery | undefined; pre_checkout_query?: PreCheckoutQuery | undefined; poll?: Poll | undefined; poll_answer?: PollAnswer | undefined; my_chat_member?: ChatMemberUpdated | undefined; chat_member?: ChatMemberUpdated | undefined; chat_join_request?: ChatJoinRequest | undefined; } interface WebhookInfo { url: string; has_custom_certificate: boolean; pending_update_count: number; ip_address?: string | undefined; last_error_date?: number | undefined; last_error_message?: string | undefined; last_synchronization_error_date?: number | undefined; max_connections?: number | undefined; allowed_updates?: string[] | undefined; } interface User { id: number; is_bot: boolean; first_name: string; last_name?: string | undefined; username?: string | undefined; language_code?: string | undefined; } interface Chat { id: number; type: ChatType; title?: string | undefined; username?: string | undefined; first_name?: string | undefined; last_name?: string | undefined; is_forum?: boolean | undefined; photo?: ChatPhoto | undefined; active_usernames?: string[] | undefined; emoji_status_custom_emoji_id?: string | undefined; bio?: string | undefined; has_restricted_voice_and_video_messages?: boolean | undefined; join_to_send_messages?: boolean | undefined; join_by_request?: boolean | undefined; description?: string | undefined; invite_link?: string | undefined; has_aggressive_anti_spam_enabled?: boolean | undefined; has_hidden_members?: boolean | undefined; pinned_message?: Message | undefined; permissions?: ChatPermissions | undefined; can_set_sticker_set?: boolean | undefined; sticker_set_name?: string | undefined; has_private_forwards?: boolean | undefined; has_protected_content?: boolean | undefined; slow_mode_delay?: number | undefined; message_auto_delete_time?: number | undefined; linked_chat_id?: number | undefined; location?: ChatLocation | undefined; /** * @deprecated since version Telegram Bot API 4.4 - July 29, 2019 */ all_members_are_administrators?: boolean | undefined; } interface Message { message_id: number; message_thread_id?: number | undefined; from?: User | undefined; date: number; chat: Chat; sender_chat?: Chat | undefined; forward_from?: User | undefined; forward_from_chat?: Chat | undefined; forward_from_message_id?: number | undefined; forward_signature?: string | undefined; forward_sender_name?: string | undefined; forward_date?: number | undefined; is_topic_message?: boolean | undefined; reply_to_message?: Message | undefined; edit_date?: number | undefined; media_group_id?: string | undefined; author_signature?: string | undefined; text?: string | undefined; entities?: MessageEntity[] | undefined; caption_entities?: MessageEntity[] | undefined; audio?: Audio | undefined; document?: Document | undefined; animation?: Animation | undefined; game?: Game | undefined; photo?: PhotoSize[] | undefined; sticker?: Sticker | undefined; video?: Video | undefined; voice?: Voice | undefined; video_note?: VideoNote | undefined; caption?: string | undefined; contact?: Contact | undefined; location?: Location | undefined; venue?: Venue | undefined; poll?: Poll | undefined; new_chat_members?: User[] | undefined; left_chat_member?: User | undefined; new_chat_title?: string | undefined; new_chat_photo?: PhotoSize[] | undefined; delete_chat_photo?: boolean | undefined; group_chat_created?: boolean | undefined; supergroup_chat_created?: boolean | undefined; channel_chat_created?: boolean | undefined; migrate_to_chat_id?: number | undefined; migrate_from_chat_id?: number | undefined; pinned_message?: Message | undefined; invoice?: Invoice | undefined; successful_payment?: SuccessfulPayment | undefined; connected_website?: string | undefined; passport_data?: PassportData | undefined; reply_markup?: InlineKeyboardMarkup | undefined; web_app_data?: WebAppData | undefined; is_automatic_forward?: boolean | undefined; has_protected_content?: boolean | undefined; dice?: Dice | undefined; forum_topic_created?: ForumTopicCreated | undefined; forum_topic_edited?: ForumTopicEdited | undefined; forum_topic_closed?: ForumTopicClosed | undefined; forum_topic_reopened?: ForumTopicReopened | undefined; general_forum_topic_hidden?: GeneralForumTopicHidden | undefined; general_forum_topic_unhidden?: GeneralForumTopicUnhidden | undefined; has_media_spoiler?: boolean | undefined; user_shared?: UserShared | undefined; chat_shared?: ChatShared | undefined; } interface MessageEntity { type: MessageEntityType; offset: number; length: number; url?: string | undefined; user?: User | undefined; language?: string | undefined; custom_emoji_id?: string | undefined; } interface FileBase { file_id: string; file_unique_id: string; file_size?: number | undefined; } interface PhotoSize extends FileBase { width: number; height: number; } interface Audio extends FileBase { duration: number; performer?: string | undefined; title?: string | undefined; mime_type?: string | undefined; thumb?: PhotoSize | undefined; } interface Document extends FileBase { thumb?: PhotoSize | undefined; file_name?: string | undefined; mime_type?: string | undefined; } interface Video extends FileBase { width: number; height: number; duration: number; thumb?: PhotoSize | undefined; mime_type?: string | undefined; } interface Voice extends FileBase { duration: number; mime_type?: string | undefined; } interface InputMediaBase { media: string; has_spoiler?: boolean | undefined; caption?: string | undefined; caption_entities?: MessageEntity[] | undefined; parse_mode?: ParseMode | undefined; } interface InputMediaPhoto extends InputMediaBase { type: "photo"; } interface InputMediaVideo extends InputMediaBase { type: "video"; width?: number | undefined; height?: number | undefined; duration?: number | undefined; supports_streaming?: boolean | undefined; } type InputMedia = InputMediaPhoto | InputMediaVideo; interface VideoNote extends FileBase { length: number; duration: number; thumb?: PhotoSize | undefined; } interface Contact { phone_number: string; first_name: string; last_name?: string | undefined; user_id?: number | undefined; vcard?: string | undefined; } interface ChatLocation { location: Location; address: string; } interface Location { longitude: number; latitude: number; } interface Venue { location: Location; title: string; address: string; foursquare_id?: string | undefined; foursquare_type?: string | undefined; } type PollType = "regular" | "quiz"; interface PollAnswer { poll_id: string; user: User; option_ids: number[]; } interface PollOption { text: string; voter_count: number; } interface Poll { id: string; question: string; options: PollOption[]; is_closed: boolean; is_anonymous: boolean; allows_multiple_answers: boolean; type: PollType; total_voter_count: number; } interface Dice { emoji: string; value: number; } interface ChatJoinRequest { chat: Chat; from: User; user_chat_id: number; date: number; bio?: string | undefined; invite_link?: ChatInviteLink | undefined; } interface UserProfilePhotos { total_count: number; photos: PhotoSize[][]; } interface File extends FileBase { file_path?: string | undefined; } interface ReplyKeyboardMarkup { keyboard: KeyboardButton[][]; is_persistent?: boolean | undefined; resize_keyboard?: boolean | undefined; one_time_keyboard?: boolean | undefined; input_field_placeholder?: string | undefined; selective?: boolean | undefined; } interface KeyboardButton { text: string; request_user?: KeyboardButtonRequestUser | undefined; request_chat?: KeyboardButtonRequestChat | undefined; request_contact?: boolean | undefined; request_location?: boolean | undefined; request_poll?: KeyboardButtonPollType; web_app?: WebAppInfo; } interface KeyboardButtonPollType { type: PollType; } interface KeyboardButtonRequestUser { request_id: number; user_is_bot?: boolean | undefined; user_is_premium?: boolean | undefined; } interface KeyboardButtonRequestChat { request_id: number; chat_is_channel: boolean; chat_is_forum?: boolean | undefined; chat_has_username?: boolean | undefined; chat_is_created?: boolean | undefined; user_administrator_rights?: boolean | undefined; bot_administrator_rights?: boolean | undefined; bot_is_member?: boolean | undefined; } interface ReplyKeyboardRemove { remove_keyboard: boolean; selective?: boolean | undefined; } interface InlineKeyboardMarkup { inline_keyboard: InlineKeyboardButton[][]; } interface InlineKeyboardButton { text: string; url?: string | undefined; callback_data?: string | undefined; web_app?: WebAppInfo; login_url?: LoginUrl | undefined; switch_inline_query?: string | undefined; switch_inline_query_current_chat?: string | undefined; callback_game?: CallbackGame | undefined; pay?: boolean | undefined; } interface LoginUrl { url: string; forward_text?: string | undefined; bot_username?: string | undefined; request_write_access?: boolean | undefined; } interface CallbackQuery { id: string; from: User; message?: Message | undefined; inline_message_id?: string | undefined; chat_instance: string; data?: string | undefined; game_short_name?: string | undefined; } interface ForceReply { force_reply: boolean; input_field_placeholder?: string | undefined; selective?: boolean | undefined; } interface ChatPhoto { small_file_id: string; big_file_id: string; } interface ChatInviteLink { invite_link: string; creator: User; is_primary: boolean; is_revoked: boolean; expire_date?: number; member_limit?: number; name?: string; } interface ChatMember { user: User; status: ChatMemberStatus; until_date?: number | undefined; can_be_edited?: boolean | undefined; can_post_messages?: boolean | undefined; can_edit_messages?: boolean | undefined; can_delete_messages?: boolean | undefined; can_restrict_members?: boolean | undefined; can_promote_members?: boolean | undefined; can_change_info?: boolean | undefined; can_invite_users?: boolean | undefined; can_pin_messages?: boolean | undefined; is_member?: boolean | undefined; can_send_messages?: boolean | undefined; can_send_media_messages?: boolean | undefined; can_send_polls?: boolean | undefined; can_send_other_messages?: boolean | undefined; can_add_web_page_previews?: boolean | undefined; } interface ChatMemberUpdated { chat: Chat; from: User; date: number; old_chat_member: ChatMember; new_chat_member: ChatMember; invite_link?: ChatInviteLink; } type ChatPermissionsNames = | "can_send_messages" | "can_send_audios" | "can_send_documents" | "can_send_photos" | "can_send_videos" | "can_send_video_notes" | "can_send_voice_notes" | "can_send_polls" | "can_send_other_messages" | "can_add_web_page_previews" | "can_change_info" | "can_invite_users" | "can_pin_messages" | "can_manage_topics"; type ChatPermissions = Partial<Record<ChatPermissionsNames, boolean>>; type StickerType = "regular" | "mask" | "custom_emoji"; interface Sticker extends FileBase { type: StickerType; is_animated: boolean; is_video: boolean; width: number; height: number; thumbnail?: PhotoSize | undefined; emoji?: string | undefined; set_name?: string | undefined; premium_animation?: File | undefined; mask_position?: MaskPosition | undefined; custom_emoji_id?: string | undefined; needs_repainting?: boolean | undefined; } interface StickerSet { name: string; title: string; sticker_type: StickerType; stickers: Sticker[]; thumbnail?: PhotoSize | undefined; } interface CreateStickerSetOptions { tgs_sticker?: string | Stream | Buffer; webm_sticker?: string | Stream | Buffer; sticker_type?: "regular" | "mask"; mask_position?: MaskPosition; } interface AddStickerToSetOptions { mask_position?: MaskPosition; } interface ForumTopicCreated { name: string; icon_color: number; icon_custom_emoji_id: string; } // eslint-disable-next-line @typescript-eslint/no-empty-interface -- Currently holds no information (https://core.telegram.org/bots/api#forumtopicclosed) interface ForumTopicClosed {} interface ForumTopicEdited { name: string; icon_custom_emoji_id: string; } // eslint-disable-next-line @typescript-eslint/no-empty-interface -- Currently holds no information (https://core.telegram.org/bots/api#forumtopicreopened) interface ForumTopicReopened {} // eslint-disable-next-line @typescript-eslint/no-empty-interface -- Currently holds no information (https://core.telegram.org/bots/api#generalforumtopichidden) interface GeneralForumTopicHidden {} // eslint-disable-next-line @typescript-eslint/no-empty-interface -- Currently holds no information (https://core.telegram.org/bots/api#generalforumtopicunhidden) interface GeneralForumTopicUnhidden {} interface UserShared { request_id: number; user_id: number; } interface ChatShared { request_id: number; chat_id: number; } interface MaskPosition { point: string; x_shift: number; y_shift: number; scale: number; } interface InlineQuery { id: string; from: User; location?: Location | undefined; query: string; offset: string; } interface InlineQueryResultBase { id: string; reply_markup?: InlineKeyboardMarkup | undefined; } interface InlineQueryResultArticle extends InlineQueryResultBase { type: "article"; title: string; input_message_content: InputMessageContent; url?: string | undefined; hide_url?: boolean | undefined; description?: string | undefined; thumb_url?: string | undefined; thumb_width?: number | undefined; thumb_height?: number | undefined; } interface InlineQueryResultPhoto extends InlineQueryResultBase { type: "photo"; photo_url: string; thumb_url: string; photo_width?: number | undefined; photo_height?: number | undefined; title?: string | undefined; description?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultGif extends InlineQueryResultBase { type: "gif"; gif_url: string; gif_width?: number | undefined; gif_height?: number | undefined; gif_duration?: number | undefined; thumb_url?: string | undefined; title?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultMpeg4Gif extends InlineQueryResultBase { type: "mpeg4_gif"; mpeg4_url: string; mpeg4_width?: number | undefined; mpeg4_height?: number | undefined; mpeg4_duration?: number | undefined; thumb_url?: string | undefined; title?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultVideo extends InlineQueryResultBase { type: "video"; video_url: string; mime_type: string; thumb_url: string; title: string; caption?: string | undefined; video_width?: number | undefined; video_height?: number | undefined; video_duration?: number | undefined; description?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultAudio extends InlineQueryResultBase { type: "audio"; audio_url: string; title: string; caption?: string | undefined; performer?: string | undefined; audio_duration?: number | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultVoice extends InlineQueryResultBase { type: "voice"; voice_url: string; title: string; caption?: string | undefined; voice_duration?: number | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultDocument extends InlineQueryResultBase { type: "document"; title: string; caption?: string | undefined; document_url: string; mime_type: string; description?: string | undefined; input_message_content?: InputMessageContent | undefined; thumb_url?: string | undefined; thumb_width?: number | undefined; thumb_height?: number | undefined; } interface InlineQueryResultLocationBase extends InlineQueryResultBase { latitude: number; longitude: number; title: string; input_message_content?: InputMessageContent | undefined; thumb_url?: string | undefined; thumb_width?: number | undefined; thumb_height?: number | undefined; } interface InlineQueryResultLocation extends InlineQueryResultLocationBase { type: "location"; } interface InlineQueryResultVenue extends InlineQueryResultLocationBase { type: "venue"; address: string; foursquare_id?: string | undefined; } interface InlineQueryResultContact extends InlineQueryResultBase { type: "contact"; phone_number: string; first_name: string; last_name?: string | undefined; input_message_content?: InputMessageContent | undefined; thumb_url?: string | undefined; thumb_width?: number | undefined; thumb_height?: number | undefined; } interface InlineQueryResultGame extends InlineQueryResultBase { type: "game"; game_short_name: string; } interface InlineQueryResultCachedPhoto extends InlineQueryResultBase { type: "photo"; photo_file_id: string; title?: string | undefined; description?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedGif extends InlineQueryResultBase { type: "gif"; gif_file_id: string; title?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedMpeg4Gif extends InlineQueryResultBase { type: "mpeg4_gif"; mpeg4_file_id: string; title?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedSticker extends InlineQueryResultBase { type: "sticker"; sticker_file_id: string; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedDocument extends InlineQueryResultBase { type: "document"; title: string; document_file_id: string; description?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedVideo extends InlineQueryResultBase { type: "video"; video_file_id: string; title: string; description?: string | undefined; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedVoice extends InlineQueryResultBase { type: "voice"; voice_file_id: string; title: string; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } interface InlineQueryResultCachedAudio extends InlineQueryResultBase { type: "audio"; audio_file_id: string; caption?: string | undefined; input_message_content?: InputMessageContent | undefined; } type InlineQueryResult = | InlineQueryResultCachedAudio | InlineQueryResultCachedDocument | InlineQueryResultCachedGif | InlineQueryResultCachedMpeg4Gif | InlineQueryResultCachedPhoto | InlineQueryResultCachedSticker | InlineQueryResultCachedVideo | InlineQueryResultCachedVoice | InlineQueryResultArticle | InlineQueryResultAudio | InlineQueryResultContact | InlineQueryResultGame | InlineQueryResultDocument | InlineQueryResultGif | InlineQueryResultLocation | InlineQueryResultMpeg4Gif | InlineQueryResultPhoto | InlineQueryResultVenue | InlineQueryResultVideo | InlineQueryResultVoice; type InputMessageContent = object; interface InputTextMessageContent extends InputMessageContent { message_text: string; parse_mode?: ParseMode | undefined; disable_web_page_preview?: boolean | undefined; } interface InputLocationMessageContent extends InputMessageContent { latitude: number; longitude: number; } interface InputVenueMessageContent extends InputLocationMessageContent { title: string; address: string; foursquare_id?: string | undefined; } interface InputContactMessageContent extends InputMessageContent { phone_number: string; first_name: string; last_name?: string | undefined; } interface ChosenInlineResult { result_id: string; from: User; location?: Location | undefined; inline_message_id?: string | undefined; query: string; } interface ResponseParameters { migrate_to_chat_id?: number | undefined; retry_after?: number | undefined; } interface LabeledPrice { label: string; amount: number; } interface Invoice { title: string; description: string; start_parameter: string; currency: string; total_amount: number; } interface ShippingAddress { country_code: string; state: string; city: string; street_line1: string; street_line2: string; post_code: string; } interface OrderInfo { name?: string | undefined; phone_number?: string | undefined; email?: string | undefined; shipping_address?: ShippingAddress | undefined; } interface ShippingOption { id: string; title: string; prices: LabeledPrice[]; } interface SuccessfulPayment { currency: string; total_amount: number; invoice_payload: string; shipping_option_id?: string | undefined; order_info?: OrderInfo | undefined; telegram_payment_charge_id: string; provider_payment_charge_id: string; } interface ShippingQuery { id: string; from: User; invoice_payload: string; shipping_address: ShippingAddress; } interface PreCheckoutQuery { id: string; from: User; currency: string; total_amount: number; invoice_payload: string; shipping_option_id?: string | undefined; order_info?: OrderInfo | undefined; } interface Game { title: string; description: string; photo: PhotoSize[]; text?: string | undefined; text_entities?: MessageEntity[] | undefined; animation?: Animation | undefined; } interface Animation extends FileBase { width: number; height: number; duration: number; thumb?: PhotoSize | undefined; file_name?: string | undefined; mime_type?: string | undefined; } type CallbackGame = object; interface GameHighScore { position: number; user: User; score: number; } interface Metadata { type?: MessageType | undefined; } interface BotCommand { command: string; description: string; } interface MessageId { message_id: number; } type ChatId = number | string; interface BotCommandScopeDefault { type: "default"; } interface BotCommandScopeAllPrivateChats { type: "all_private_chats"; } interface BotCommandScopeAllGroupChats { type: "all_group_chats"; } interface BotCommandScopeAllChatAdministrators { type: "all_chat_administrators"; } interface BotCommandScopeChat { type: "chat"; chat_id: ChatId; } interface BotCommandScopeChatAdministrators { type: "chat_administrators"; chat_id: ChatId; } interface BotCommandScopeChatMember { type: "chat_member"; chat_id: ChatId; user_id: number; } type BotCommandScope = | BotCommandScopeDefault | BotCommandScopeAllPrivateChats | BotCommandScopeAllGroupChats | BotCommandScopeAllChatAdministrators | BotCommandScopeChat | BotCommandScopeChatAdministrators | BotCommandScopeChatMember; interface WebAppInfo { url: string; } interface WebAppData { data: string; button_text: string; } interface MenuButtonCommands { type: "commands"; } interface MenuButtonWebApp { type: "web_app"; text: string; web_app: WebAppInfo; } interface MenuButtonDefault { type: "default"; } type MenuButton = MenuButtonCommands | MenuButtonWebApp | MenuButtonDefault; interface ChatAdministratorRights { is_anonymous: boolean; can_manage_chat: boolean; can_delete_messages: boolean; can_manage_video_chats: boolean; can_restrict_members: boolean; can_promote_members: boolean; can_change_info: boolean; can_invite_users: boolean; can_post_messages?: boolean; can_edit_messages?: boolean; can_pin_messages?: boolean; can_manage_topics?: boolean; } interface SentWebAppMessage { inline_message_id?: string; } interface TelegramEvents { message: (message: Message, metadata: Metadata) => any; text: (message: Message, metadata: Metadata) => any; animation: (message: Message, metadata: Metadata) => any; audio: (message: Message, metadata: Metadata) => any; channel_chat_created: (message: Message, metadata: Metadata) => any; contact: (message: Message, metadata: Metadata) => any; delete_chat_photo: (message: Message, metadata: Metadata) => any; document: (message: Message, metadata: Metadata) => any; game: (message: Message, metadata: Metadata) => any; group_chat_created: (message: Message, metadata: Metadata) => any; invoice: (message: Message, metadata: Metadata) => any; left_chat_member: (message: Message, metadata: Metadata) => any; location: (message: Message, metadata: Metadata) => any; migrate_from_chat_id: (message: Message, metadata: Metadata) => any; migrate_to_chat_id: (message: Message, metadata: Metadata) => any; new_chat_members: (message: Message, metadata: Metadata) => any; new_chat_photo: (message: Message, metadata: Metadata) => any; new_chat_title: (message: Message, metadata: Metadata) => any; passport_data: (message: Message, metadata: Metadata) => any; photo: (message: Message, metadata: Metadata) => any; pinned_message: (message: Message, metadata: Metadata) => any; sticker: (message: Message, metadata: Metadata) => any; successful_payment: (message: Message, metadata: Metadata) => any; supergroup_chat_created: (message: Message, metadata: Metadata) => any; video: (message: Message, metadata: Metadata) => any; video_note: (message: Message, metadata: Metadata) => any; voice: (message: Message, metadata: Metadata) => any; video_chat_started: (message: Message, metadata: Metadata) => any; video_chat_ended: (message: Message, metadata: Metadata) => any; video_chat_participants_invited: (message: Message, metadata: Metadata) => any; video_chat_scheduled: (message: Message, metadata: Metadata) => any; message_auto_delete_timer_changed: (message: Message, metadata: Metadata) => any; chat_invite_link: (message: Message, metadata: Metadata) => any; chat_member_updated: (message: Message, metadata: Metadata) => any; web_app_data: (message: Message, metadata: Metadata) => any; callback_query: (query: CallbackQuery) => any; inline_query: (query: InlineQuery) => any; poll: (pollObject: Poll) => any; poll_answer: (poll: PollAnswer) => any; chat_member: (member: ChatMemberUpdated) => any; my_chat_member: (member: ChatMemberUpdated) => any; chosen_inline_result: (result: ChosenInlineResult) => any; channel_post: (message: Message) => any; edited_message: (message: Message) => any; edited_message_text: (message: Message) => any; edited_message_caption: (message: Message) => any; edited_channel_post: (message: Message) => any; edited_channel_post_text: (message: Message) => any; edited_channel_post_caption: (message: Message) => any; shipping_query: (query: ShippingQuery) => any; pre_checkout_query: (query: PreCheckoutQuery) => any; polling_error: (error: Error) => any; webhook_error: (error: Error) => any; chat_join_request: (query: ChatJoinRequest) => any; } } declare class TelegramBotEventEmitter<E extends Record<string, any>> { on<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; on<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; off<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; off<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; addListener<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; addListener<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; removeListener<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; removeListener<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; prependListener<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; prependListener<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; prependOnceListener<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; prependOnceListener<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; once<K extends Exclude<keyof E, number>>(event: K, listener: E[K]): TelegramBotEventEmitter<E>; once<K extends string | symbol>( event: Exclude<K, keyof E>, listener: (...args: any[]) => any, ): TelegramBotEventEmitter<E>; removeAllListeners<K extends Exclude<keyof E, number>>(event?: K): TelegramBotEventEmitter<E>; removeAllListeners<K extends string | symbol>(event?: Exclude<K, keyof E>): TelegramBotEventEmitter<E>; emit<K extends Exclude<keyof E, number>>(event: K, ...args: E[K]): boolean; emit<K extends string | symbol>(event: Exclude<K, keyof E>, ...args: any[]): boolean; } declare class TelegramBot extends TelegramBotEventEmitter<TelegramBot.TelegramEvents> { constructor(token: string, options?: TelegramBot.ConstructorOptions); startPolling(options?: TelegramBot.StartPollingOptions): Promise<a