UNPKG

koishi-plugin-adapter-telegram-ex

Version:
677 lines (676 loc) 19.3 kB
export declare type ChatType = 'private' | 'group' | 'supergroup' | 'channel'; export declare type ChatAction = 'typing' | 'upload_photo' | 'record_video' | 'upload_video' | 'record_audio' | 'upload_audio' | 'upload_document' | 'find_location' | 'record_video_note' | 'upload_video_note'; export declare type ChatMemberStatus = 'creator' | 'administrator' | 'member' | 'restricted' | 'left' | 'kicked'; export declare type DocumentMimeType = 'application/pdf' | 'application/zip'; export declare 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'; export declare type MessageEntityType = 'mention' | 'hashtag' | 'bot_command' | 'url' | 'email' | 'bold' | 'italic' | 'code' | 'pre' | 'text_link' | 'text_mention'; export declare type ParseMode = 'Markdown' | 'MarkdownV2' | 'HTML'; export interface PassportFile { fileId: string; fileSize: number; fileDate: number; } export interface EncryptedPassportElement { type: string; data?: string; phoneNumber?: string; email?: string; files?: PassportFile[]; frontSide?: PassportFile; reverseSide?: PassportFile; selfie?: PassportFile; translation?: PassportFile[]; hash: string; } export interface EncryptedCredentials { data: string; hash: string; secret: string; } export interface PassportData { data: EncryptedPassportElement[]; credentials: EncryptedCredentials; } export interface Update { updateId: number; message?: Message; editedMessage?: Message; channelPost?: Message; editedChannelPost?: Message; inlineQuery?: InlineQuery; chosenInlineResult?: ChosenInlineResult; callbackQuery?: CallbackQuery; shippingQuery?: ShippingQuery; preCheckoutQuery?: PreCheckoutQuery; chatJoinRequest?: ChatJoinRequest; } export interface WebhookInfo { url: string; hasCustomCertificate: boolean; pendingUpdateCount: number; lastErrorDate?: number; lastErrorMessage?: string; maxConnections?: number; allowedUpdates?: string[]; } export interface User { id: number; isBot: boolean; firstName: string; lastName?: string; username?: string; languageCode?: string; } export interface Chat { id: number; type: ChatType; title?: string; username?: string; firstName?: string; lastName?: string; photo?: ChatPhoto; description?: string; inviteLink?: string; pinnedMessage?: Message; permissions?: ChatPermissions; canSetStickerSet?: boolean; stickerSetName?: string; /** * @deprecated since version Telegram Bot API 4.4 - July 29, 2019 */ allMembersAreAdministrators?: boolean; } export interface Message { messageId: number; from?: User; date: number; chat: Chat; forwardFrom?: User; forwardFromChat?: Chat; forwardFromMessageId?: number; forwardSignature?: string; forwardSenderName?: string; forwardDate?: number; replyToMessage?: Message; editDate?: number; mediaGroupId?: string; authorSignature?: string; text?: string; entities?: MessageEntity[]; captionEntities?: MessageEntity[]; audio?: Audio; document?: Document; animation?: Animation; game?: Game; photo?: PhotoSize[]; sticker?: Sticker; video?: Video; voice?: Voice; videoNote?: VideoNote; caption?: string; contact?: Contact; location?: Location; venue?: Venue; poll?: Poll; newChatMembers?: User[]; leftChatMember?: User; newChatTitle?: string; newChatPhoto?: PhotoSize[]; deleteChatPhoto?: boolean; groupChatCreated?: boolean; supergroupChatCreated?: boolean; channelChatCreated?: boolean; migrateToChatId?: number; migrateFromChatId?: number; pinnedMessage?: Message; invoice?: Invoice; successfulPayment?: SuccessfulPayment; connectedWebsite?: string; passportData?: PassportData; replyMarkup?: InlineKeyboardMarkup; } export interface MessageEntity { type: MessageEntityType; offset: number; length: number; url?: string; user?: User; } export interface FileBase { fileId: string; fileSize?: number; } export interface PhotoSize extends FileBase { width: number; height: number; } export interface Audio extends FileBase { duration: number; performer?: string; title?: string; mimeType?: string; thumb?: PhotoSize; } export interface Document extends FileBase { thumb?: PhotoSize; fileName?: string; mimeType?: string; } export interface Video extends FileBase { width: number; height: number; duration: number; thumb?: PhotoSize; mimeType?: string; } export interface Voice extends FileBase { duration: number; mimeType?: string; } export interface InputMediaBase { media: string; caption?: string; parseMode?: ParseMode; } export interface InputMediaPhoto extends InputMediaBase { type: 'photo'; } export interface InputMediaVideo extends InputMediaBase { type: 'video'; width?: number; height?: number; duration?: number; supportsStreaming?: boolean; } export declare type InputMedia = InputMediaPhoto | InputMediaVideo; export interface VideoNote extends FileBase { length: number; duration: number; thumb?: PhotoSize; } export interface Contact { phoneNumber: string; firstName: string; lastName?: string; userId?: number; vcard?: string; } export interface Location { longitude: number; latitude: number; } export interface Venue { location: Location; title: string; address: string; foursquareId?: string; foursquareType?: string; } export declare type PollType = 'regular' | 'quiz'; export interface PollAnswer { pollId: string; user: User; optionIds: number[]; } export interface PollOption { text: string; voterCount: number; } export interface Poll { id: string; question: string; options: PollOption[]; isClosed: boolean; isAnonymous: boolean; allowsMultipleAnswers: boolean; type: PollType; totalVoterCount: number; } export interface UserProfilePhotos { totalCount: number; photos: PhotoSize[][]; } export interface File extends FileBase { filePath?: string; } export interface ReplyKeyboardMarkup { keyboard: KeyboardButton[][]; resizeKeyboard?: boolean; oneTimeKeyboard?: boolean; selective?: boolean; } export interface KeyboardButton { text: string; requestContact?: boolean; requestLocation?: boolean; } export interface ReplyKeyboardRemove { removeKeyboard: boolean; selective?: boolean; } export interface InlineKeyboardMarkup { inlineKeyboard: InlineKeyboardButton[][]; } export interface InlineKeyboardButton { text: string; url?: string; loginUrl?: LoginUrl; callbackData?: string; switchInlineQuery?: string; switchInlineQueryCurrentChat?: string; callbackGame?: CallbackGame; pay?: boolean; } export interface LoginUrl { url: string; forwardText?: string; botUsername?: string; requestWriteAcces?: boolean; } export interface CallbackQuery { id: string; from: User; message?: Message; inlineMessageId?: string; chatInstance: string; data?: string; gameShortName?: string; } export interface ForceReply { forceReply: boolean; selective?: boolean; } export interface ChatPhoto { smallFileId: string; bigFileId: string; } export interface ChatMember { user: User; status: ChatMemberStatus; untilDate?: number; canBeEdited?: boolean; canPostMessages?: boolean; canEditMessages?: boolean; canDeleteMessages?: boolean; canRestrictMembers?: boolean; canPromoteMembers?: boolean; canChangeInfo?: boolean; canInviteUsers?: boolean; canPinMessages?: boolean; isMember?: boolean; canSendMessages?: boolean; canSendMediaMessages?: boolean; canSendPolls: boolean; canSendOtherMessages?: boolean; canAddWebPagePreviews?: boolean; } export interface ChatPermissions { canSendMessages?: boolean; canSendMediaMessages?: boolean; canSendPolls?: boolean; canSendOtherMessages?: boolean; canAddWebPagePreviews?: boolean; canChangeInfo?: boolean; canInviteUsers?: boolean; canPinMessages?: boolean; } export interface Sticker { fileId: string; fileUniqueId: string; isAnimated: boolean; width: number; height: number; thumb?: PhotoSize; emoji?: string; setName?: string; maskPosition?: MaskPosition; fileSize?: number; } export interface StickerSet { name: string; title: string; containsMasks: boolean; stickers: Sticker[]; } export interface MaskPosition { point: string; xShift: number; yShift: number; scale: number; } export interface InlineQuery { id: string; from: User; location?: Location; query: string; offset: string; } export interface InlineQueryResultBase { id: string; replyMarkup?: InlineKeyboardMarkup; } export interface InlineQueryResultArticle extends InlineQueryResultBase { type: 'article'; title: string; inputMessageContent: InputMessageContent; url?: string; hideUrl?: boolean; description?: string; thumbUrl?: string; thumbWidth?: number; thumbHeight?: number; } export interface InlineQueryResultPhoto extends InlineQueryResultBase { type: 'photo'; photoUrl: string; thumbUrl: string; photoWidth?: number; photoHeight?: number; title?: string; description?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultGif extends InlineQueryResultBase { type: 'gif'; gifUrl: string; gifWidth?: number; gifHeight?: number; gifDuration?: number; thumbUrl?: string; title?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultMpeg4Gif extends InlineQueryResultBase { type: 'mpeg4_gif'; mpeg4Url: string; mpeg4Width?: number; mpeg4Height?: number; mpeg4Duration?: number; thumbUrl?: string; title?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultVideo extends InlineQueryResultBase { type: 'video'; videoUrl: string; mimeType: string; thumbUrl: string; title: string; caption?: string; videoWidth?: number; videoHeight?: number; videoDuration?: number; description?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultAudio extends InlineQueryResultBase { type: 'audio'; audioUrl: string; title: string; caption?: string; performer?: string; audioDuration?: number; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultVoice extends InlineQueryResultBase { type: 'voice'; voiceUrl: string; title: string; caption?: string; voiceDuration?: number; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultDocument extends InlineQueryResultBase { type: 'document'; title: string; caption?: string; documentUrl: string; mimeType: string; description?: string; inputMessageContent?: InputMessageContent; thumbUrl?: string; thumbWidth?: number; thumbHeight?: number; } export interface InlineQueryResultLocationBase extends InlineQueryResultBase { latitude: number; longitude: number; title: string; inputMessageContent?: InputMessageContent; thumbUrl?: string; thumbWidth?: number; thumbHeight?: number; } export interface InlineQueryResultLocation extends InlineQueryResultLocationBase { type: 'location'; } export interface InlineQueryResultVenue extends InlineQueryResultLocationBase { type: 'venue'; address: string; foursquareId?: string; } export interface InlineQueryResultContact extends InlineQueryResultBase { type: 'contact'; phoneNumber: string; firstName: string; lastName?: string; inputMessageContent?: InputMessageContent; thumbUrl?: string; thumbWidth?: number; thumbHeight?: number; } export interface InlineQueryResultGame extends InlineQueryResultBase { type: 'game'; gameShortName: string; } export interface InlineQueryResultCachedPhoto extends InlineQueryResultBase { type: 'photo'; photoFileId: string; title?: string; description?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedGif extends InlineQueryResultBase { type: 'gif'; gifFileId: string; title?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedMpeg4Gif extends InlineQueryResultBase { type: 'mpeg4_gif'; mpeg4FileId: string; title?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedSticker extends InlineQueryResultBase { type: 'sticker'; stickerFileId: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedDocument extends InlineQueryResultBase { type: 'document'; title: string; documentFileId: string; description?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedVideo extends InlineQueryResultBase { type: 'video'; videoFileId: string; title: string; description?: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedVoice extends InlineQueryResultBase { type: 'voice'; voiceFileId: string; title: string; caption?: string; inputMessageContent?: InputMessageContent; } export interface InlineQueryResultCachedAudio extends InlineQueryResultBase { type: 'audio'; audioFileId: string; caption?: string; inputMessageContent?: InputMessageContent; } export declare type InlineQueryResult = InlineQueryResultCachedAudio | InlineQueryResultCachedDocument | InlineQueryResultCachedGif | InlineQueryResultCachedMpeg4Gif | InlineQueryResultCachedPhoto | InlineQueryResultCachedSticker | InlineQueryResultCachedVideo | InlineQueryResultCachedVoice | InlineQueryResultArticle | InlineQueryResultAudio | InlineQueryResultContact | InlineQueryResultGame | InlineQueryResultDocument | InlineQueryResultGif | InlineQueryResultLocation | InlineQueryResultMpeg4Gif | InlineQueryResultPhoto | InlineQueryResultVenue | InlineQueryResultVideo | InlineQueryResultVoice; export declare type InputMessageContent = object; export interface InputTextMessageContent extends InputMessageContent { messageText: string; parseMode?: ParseMode; disableWebPagePreview?: boolean; } export interface InputLocationMessageContent extends InputMessageContent { latitude: number; longitude: number; } export interface InputVenueMessageContent extends InputLocationMessageContent { title: string; address: string; foursquareId?: string; } export interface InputContactMessageContent extends InputMessageContent { phoneNumber: string; firstName: string; lastName?: string; } export interface ChosenInlineResult { resultId: string; from: User; location?: Location; inlineMessageId?: string; query: string; } export interface ResponseParameters { migrateToChatId?: number; retryAfter?: number; } export interface LabeledPrice { label: string; amount: number; } export interface Invoice { title: string; description: string; startParameter: string; currency: string; totalAmount: number; } export interface ShippingAddress { countryCode: string; state: string; city: string; streetLine1: string; streetLine2: string; postCode: string; } export interface OrderInfo { name?: string; phoneNumber?: string; email?: string; shippingAddress?: ShippingAddress; } export interface ShippingOption { id: string; title: string; prices: LabeledPrice[]; } export interface SuccessfulPayment { currency: string; totalAmount: number; invoicePayload: string; shippingOptionId?: string; orderInfo?: OrderInfo; telegramPaymentChargeId: string; providerPaymentChargeId: string; } export interface ShippingQuery { id: string; from: User; invoicePayload: string; shippingAddress: ShippingAddress; } export interface PreCheckoutQuery { id: string; from: User; currency: string; totalAmount: number; invoicePayload: string; shippingOptionId?: string; orderInfo?: OrderInfo; } export interface Game { title: string; description: string; photo: PhotoSize[]; text?: string; textEntities?: MessageEntity[]; animation?: Animation; } export interface Animation extends FileBase { width: number; height: number; duration: number; thumb?: PhotoSize; fileName?: string; mimeType?: string; } export declare type CallbackGame = object; export interface GameHighScore { position: number; user: User; score: number; } export interface Metadata { type?: MessageType; } export interface BotCommand { command: string; description: string; } /** Represents a join request sent to a chat. */ export interface ChatJoinRequest { /** Chat to which the request was sent */ chat: Chat; /** User that sent the join request */ from: User; /** Date the request was sent in Unix time */ date: number; /** Optional. Bio of the user. */ bio?: string; /** Optional. Chat invite link that was used by the user to send the join request */ inviteLink?: ChatInviteLink; } /** 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 “…”. */ inviteLink: string; /** Creator of the link */ creator: User; /** True, if users joining the chat via the link need to be approved by chat administrators */ createsJoinRequest: boolean; /** True, if the link is primary */ isPrimary: boolean; /** True, if the link is revoked */ isRevoked: boolean; /** Optional. Invite link name */ name: string; /** Optional. Point in time (Unix timestamp) when the link will expire or has been expired */ expireDate: number; /** Optional. Maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 */ memberLimit: number; /** Optional. Number of pending join requests created using this link */ pendingJoinRequestCount: number; }