UNPKG

@botocrat/telegram

Version:

Simple, light-weight Telegram Bot Client for Node.js.

123 lines (120 loc) 4.42 kB
import {ETDiceEmoji, ITMessage, ITMessageEntity} from '.' import { ITReplyMarkup } from "./reply_markup" import { ITInvoiceProposal} from "../payment" import { ITChatId, TTChatIdType } from "../chat" import { ITLocationBasic, ITLiveLocation, ITVenueBase } from "../objects/location" import { ITEditMethods } from "./edit" import { ITPoll, ITQuiz } from '../objects/poll' import { ITInputMedia } from "../objects/media"; import { TTAttachment } from "../objects/file" import { JSON } from '..' type TTLocation = ITLocationBasic | ITLiveLocation declare enum ETParseMode { Markdown='Markdown', MarkdownV2=' MarkdownV2', HTML=' HTML', } export interface ITMediaCommon { thumb?: TTAttachment duration?: number } interface ITSendParameters extends ITChatId { disable_notification?: boolean protect_content?: boolean reply_to_message_id?: number allow_sending_without_reply?: boolean reply_markup?: JSON<ITReplyMarkup> } export interface ITCaption { caption?: string captionEntities?: JSON<ITMessageEntity[]> parse_mode?: ETParseMode } export interface ITText { text: string entities?: JSON<ITMessageEntity[]> parse_mode?: ETParseMode disable_web_page_preview?: boolean } interface ITContact { phone_number: string first_name: string last_name?: string user_id?: number vcard?: string } interface ITForwardMessageParams extends ITChatId { from_chat_id: number | string disable_notification?: boolean protect_content?: boolean message_id: number } export interface ITVideoParams{ height?: number width?: number title?: string supports_streaming?: boolean } export interface ITAudioParams { performer?: string title?: string } export type ITCopyMessageParams = ITSendParams["Message"] & {from_chat_id: TTChatIdType, message_id: number} export interface ITSendParams { Message: ITSendParameters & ITText Dice: ITSendParameters & { emoji: ETDiceEmoji } Game: ITSendParameters & { game_short_name: string } Photo: ITSendParameters & ITCaption & {photo: TTAttachment} Sticker: ITSendParameters & {sticker: TTAttachment} Animation: ITSendParameters & ITCaption & {animation: TTAttachment} Audio: ITSendParameters & ITCaption & ITMediaCommon & ITAudioParams & { audio: TTAttachment } Voice: ITSendParameters & ITCaption & { voice: TTAttachment duration?: number } Video: ITSendParameters & ITCaption & ITMediaCommon & ITVideoParams & { video: TTAttachment } VideoNote: ITSendParameters & ITMediaCommon & { video_note: TTAttachment length?: number } Document: ITSendParameters & ITCaption & { document: TTAttachment disable_content_type_detection?: boolean thumb?: TTAttachment } Invoice: ITSendParameters & ITInvoiceProposal Location: ITSendParameters & ITLiveLocation & { live_period?: number } Venue: ITSendParameters & ITVenueBase Contact: ITSendParameters & ITContact Poll: ITSendParameters & Omit<(ITPoll | ITQuiz), "id"> MediaGroup: ITSendParameters & { media: ITInputMedia } } export interface ITMessageMethods extends ITEditMethods { sendMessage: (params: ITSendParams["Message"]) => Promise<ITMessage> forwardMessage: (params: ITForwardMessageParams) => Promise<ITMessage> copyMessage: (params: ITCopyMessageParams) => Promise<ITMessage> sendPhoto: (params: ITSendParams["Photo"]) => Promise<ITMessage> sendAudio: (params: ITSendParams["Audio"]) => Promise<ITMessage> sendDocument: (params: ITSendParams["Document"]) => Promise<ITMessage> sendVideo: (params: ITSendParams["Video"]) => Promise<ITMessage> sendAnimation: (params: ITSendParams["Animation"]) => Promise<ITMessage> sendVoice: (params: ITSendParams["Voice"]) => Promise<ITMessage> sendVideoNote: (params: ITSendParams["VideoNote"]) => Promise<ITMessage> sendMediaGroup: (params: ITSendParams["MediaGroup"]) => Promise<ITMessage[]> sendLocation: (params: ITSendParams["Location"]) => Promise<ITMessage> sendVenue: (params: ITSendParams["Venue"]) => Promise<ITMessage> sendContact: (params: ITSendParams["Contact"]) => Promise<ITMessage> sendPoll: (params: ITSendParams["Poll"]) => Promise<ITMessage> sendDice: (params: ITSendParams["Dice"]) => Promise<ITMessage> sendSticker: (params: ITSendParams["Sticker"]) => Promise<ITMessage> sendInvoice: (params: ITSendParams["Invoice"]) => Promise<ITMessage> sendGame: (params: ITSendParams["Game"]) => Promise<ITMessage> }