/** * MTKruto - Cross-runtime JavaScript library for building Telegram clients * Copyright (C) 2023-2026 Roj * * This file is part of MTKruto. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ import { type Api } from "../2_tl.js"; import type { AvailableReactions, BusinessConnection, CallbackQuery, Chat, ChatActionType, ChatMember, ChatP, ChatPChannel, ChatPGroup, ChatPPrivate, ChatPSupergroup, ChatSettings, ChosenInlineResult, ClaimedGifts, FailedInvitation, FileSource, GuestQuery, ID, InlineQuery, InlineQueryResult, InputChecklistItem, InputMedia, InputPollOption, InputStoryContent, InviteLink, JoinRequest, Message, MessageAnimation, MessageAudio, MessageChecklist, MessageContact, MessageDice, MessageDocument, MessageInvoice, MessageList, MessageLocation, MessagePhoto, MessagePoll, MessageReactionList, MessageSticker, MessageText, MessageVenue, MessageVideo, MessageVideoNote, MessageVoice, Poll, PriceTag, Reaction, SlowModeDuration, Story, Topic, Update, User, VideoChatActive, VideoChatScheduled, VoiceTranscription } from "../3_types.js"; import type { AddChatMemberParams, AddContactParams, AddReactionParams, AnswerCallbackQueryParams, AnswerInlineQueryParams, AnswerPreCheckoutQueryParams, ApproveJoinRequestsParams, BanChatMemberParams, CreateInviteLinkParams, CreateStoryParams, CreateTopicParams, DeclineJoinRequestsParams, DeleteMessagesParams, EditInlineMessageCaptionParams, EditInlineMessageMediaParams, EditInlineMessageTextParams, EditMessageCaptionParams, EditMessageLiveLocationParams, EditMessageMediaParams, EditMessageReplyMarkupParams, EditMessageTextParams, EditTopicParams, EnableSignaturesParams, ForwardMessagesParams, GetChatMembersParams, GetClaimedGiftsParams, GetCreatedInviteLinksParams, GetHistoryParams, GetJoinRequestsParams, GetSavedMessagesParams, PinMessageParams, PromoteChatMemberParams, ReplyParams, ScheduleVideoChatParams, SearchMessagesParams, SendAnimationParams, SendAudioParams, SendChecklistParams, SendContactParams, SendDiceParams, SendDocumentParams, SendGiftParams, SendInvoiceParams, SendLocationParams, SendMediaGroupParams, SendMessageDraftParams, SendMessageParams, SendPhotoParams, SendPollParams, SendStickerParams, SendVenueParams, SendVideoNoteParams, SendVideoParams, SendVoiceParams, SetChatMemberRightsParams, SetChatMemberTagParams, SetChatPhotoParams, SetReactionsParams, StartVideoChatParams, StopPollParams, UpdateChecklistParams } from "./0_params.js"; import type { ClientGeneric } from "./1_client_generic.js"; import { type FilterQuery, type WithChatType, type WithFilter } from "./3_filters.js"; export type ContextCommands = string | RegExp | (string | RegExp)[] | { names: string | RegExp | (string | RegExp)[]; prefixes: string | string[]; }; interface StaticHas { filterQuery(filter: Q): (ctx: C) => ctx is WithFilter; command(commands: ContextCommands, fallbackPrefixes: string | string[] | undefined): (ctx: C) => ctx is WithFilter; callbackQuery(data: string | RegExp | (string | RegExp)[]): (ctx: C) => ctx is WithFilter; inlineQuery(queries: string | RegExp | (string | RegExp)[]): (ctx: C) => ctx is WithFilter; chosenInlineResult(queries: string | RegExp | (string | RegExp)[]): (ctx: C) => ctx is WithFilter; chatType(chatType: T | T[]): (ctx: C) => ctx is WithChatType; } /** * The context object that is passed to the client's update handlers. * * It wraps the {@link Update} type with shortcuts and method aliases. */ export declare class Context { #private; constructor(client: ClientGeneric, me: User | undefined, update: Update); static has: StaticHas; get update(): Update; get me(): User | undefined; get client(): ClientGeneric; get msg(): Message | undefined; get message(): Message | undefined; get editedMessage(): Message | undefined; get guestQuery(): GuestQuery | undefined; get callbackQuery(): CallbackQuery | undefined; get inlineQuery(): InlineQuery | undefined; get chosenInlineResult(): ChosenInlineResult | undefined; get chat(): ChatP | undefined; get chatId(): number | undefined; get from(): User | ChatPGroup | ChatPSupergroup | ChatPChannel | undefined; hasFilterQuery(filter: Q): this is WithFilter; hasCommand(commands: ContextCommands, fallbackPrefixes: string | string[] | undefined): this is WithFilter; hasCallbackQuery(data: string | RegExp | (string | RegExp)[]): this is WithFilter; hasInlineQuery(queries: string | RegExp | (string | RegExp)[]): this is WithFilter; hasChosenInlineResult(queries: string | RegExp | (string | RegExp)[]): this is WithFilter; hasChatType(chatType: T | T[]): this is WithChatType; /** * Returns a representation of the update held in the context that can be converted to JSON. * * @returns A representation of the update in a way that can be converted to JSON. */ toJSON(): Update | { update: Api.Update; }; /** Context-aware alias for {@link Client.addContact}. */ addAsContact(firstName: string, params?: AddContactParams): Promise; /** Context-aware alias for {@link Client.addChatMember}. */ addMember(userId: ID, params?: AddChatMemberParams): Promise; /** Context-aware alias for {@link Client.addChatMembers}. */ addMembers(userIds: ID[]): Promise; /** Context-aware alias for {@link Client.addReaction}. */ addReaction(messageId: number, reaction: Reaction, params?: AddReactionParams): Promise; /** Context-aware alias for {@link Client.addStoriesToHighlights}. */ addStoriesToHighlights(storyIds: number[]): Promise; /** Context-aware alias for {@link Client.addStoryToHighlights}. */ addStoryToHighlights(storyId: number): Promise; /** Context-aware alias for {@link Client.addToChecklist}. */ addToChecklist(messageId: number, items: InputChecklistItem[]): Promise; /** Context-aware alias for {@link Client.answerCallbackQuery}. */ answerCallbackQuery(params?: AnswerCallbackQueryParams): Promise; /** Context-aware alias for {@link Client.answerGuestQuery}. */ answerGuestQuery(result: InlineQueryResult): Promise; /** Context-aware alias for {@link Client.answerInlineQuery}. */ answerInlineQuery(results: InlineQueryResult[], params?: AnswerInlineQueryParams): Promise; /** Context-aware alias for {@link Client.answerPreCheckoutQuery}. */ answerPreCheckoutQuery(ok: boolean, params?: AnswerPreCheckoutQueryParams): Promise; /** Context-aware alias for {@link Client.approveJoinRequest}. */ approveJoinRequest(): Promise; /** Context-aware alias for {@link Client.approveJoinRequests}. */ approveJoinRequests(params?: ApproveJoinRequestsParams): Promise; /** Context-aware alias for {@link Client.archiveChat}. */ archive(): Promise; /** Context-aware alias for {@link Client.banChatMember}. */ banChatMember(memberId: ID, params?: BanChatMemberParams): Promise; /** Context-aware alias for {@link Client.banChatMember}. */ banSender(params?: BanChatMemberParams): Promise; /** Context-aware alias for {@link Client.blockUser}. */ blockUser(): Promise; /** Context-aware alias for {@link Client.checkChecklistItem}. */ checkChecklistItem(messageId: number, item: number): Promise; /** Context-aware alias for {@link Client.checkChecklistItems}. */ checkChecklistItems(messageId: number, items: number[]): Promise; /** Context-aware alias for {@link Client.closeChat}. */ close(): Promise; /** Context-aware alias for {@link Client.closeTopic}. */ closeTopic(topicId: number): Promise; /** Context-aware alias for {@link Client.createInviteLink}. */ createInviteLink(params?: CreateInviteLinkParams): Promise; /** Context-aware alias for {@link Client.createStory}. */ createStory(content: InputStoryContent, params?: CreateStoryParams): Promise; /** Context-aware alias for {@link Client.createTopic}. */ createTopic(title: string, params?: CreateTopicParams): Promise; /** Context-aware alias for {@link Client.declineJoinRequest}. */ declineJoinRequest(): Promise; /** Context-aware alias for {@link Client.declineJoinRequests}. */ declineJoinRequests(params?: DeclineJoinRequestsParams): Promise; /** Context-aware alias for {@link Client.deleteChatPhoto}. */ deleteChatPhoto(): Promise; /** Context-aware alias for {@link Client.deleteMessage}. */ delete(): Promise; /** Context-aware alias for {@link Client.deleteChat}. */ deleteChat(): Promise; /** Context-aware alias for {@link Client.deleteChatMemberMessages}. */ deleteChatMemberMessages(userId: ID): Promise; /** Context-aware alias for {@link Client.deleteChatStickerSet}. */ deleteChatStickerSet(): Promise; /** Context-aware alias for {@link Client.deleteMessage}. */ deleteMessage(messageId: number, params?: DeleteMessagesParams): Promise; /** Context-aware alias for {@link Client.deleteMessages}. */ deleteMessages(messageIds: number[], params?: DeleteMessagesParams): Promise; /** Context-aware alias for {@link Client.deleteScheduledMessage}. */ deleteScheduledMessage(messageId: number): Promise; /** Context-aware alias for {@link Client.deleteScheduledMessages}. */ deleteScheduledMessages(messageIds: number[]): Promise; /** Context-aware alias for {@link Client.deleteStories}. */ deleteStories(storyIds: number[]): Promise; /** Context-aware alias for {@link Client.deleteStory}. */ deleteStory(storyId: number): Promise; /** Context-aware alias for {@link Client.disableAntispam}. */ disableAntispam(): Promise; /** Context-aware alias for {@link Client.disableBusinessBots}. */ disableBusinessBots(): Promise; /** Context-aware alias for {@link Client.disableJoinRequests}. */ disableJoinRequests(): Promise; /** Context-aware alias for {@link Client.disableSharing}. */ disableSharing(): Promise; /** Context-aware alias for {@link Client.disableSignatures}. */ disableSignatures(): Promise; /** Context-aware alias for {@link Client.disableSlowMode}. */ disableSlowMode(): Promise; /** Context-aware alias for {@link Client.disableTopics}. */ disableTopics(): Promise; /** Context-aware alias for {@link Client.editInlineMessageCaption}. */ editInlineMessageCaption(params?: EditInlineMessageCaptionParams): Promise; /** Context-aware alias for {@link Client.editInlineMessageLiveLocation}. */ editInlineMessageLiveLocation(latitude: number, longitude: number, params?: EditMessageLiveLocationParams): Promise; /** Context-aware alias for {@link Client.editInlineMessageMedia}. */ editInlineMessageMedia(media: InputMedia, params?: EditInlineMessageMediaParams): Promise; /** Context-aware alias for {@link Client.editInlineMessageReplyMarkup}. */ editInlineMessageReplyMarkup(params?: EditMessageReplyMarkupParams): Promise; /** Context-aware alias for {@link Client.editInlineMessageText}. */ editInlineMessageText(text: string, params?: EditInlineMessageTextParams): Promise; /** Context-aware alias for {@link Client.editMessageCaption}. */ editMessageCaption(messageId: number, params?: EditMessageCaptionParams): Promise; /** Context-aware alias for {@link Client.editMessageLiveLocation}. */ editMessageLiveLocation(messageId: number, latitude: number, longitude: number, params?: EditMessageLiveLocationParams): Promise; /** Context-aware alias for {@link Client.editMessageMedia}. */ editMessageMedia(messageId: number, media: InputMedia, params?: EditMessageMediaParams): Promise; /** Context-aware alias for {@link Client.editMessageReplyMarkup}. */ editMessageReplyMarkup(messageId: number, params?: EditMessageReplyMarkupParams): Promise; /** Context-aware alias for {@link Client.editMessageText}. */ editMessageText(messageId: number, text: string, params?: EditMessageTextParams): Promise; /** Context-aware alias for {@link Client.editTopic}. */ editTopic(topicId: number, title: string, params?: EditTopicParams): Promise; /** Context-aware alias for {@link Client.enableAntispam}. */ enableAntispam(): Promise; /** Context-aware alias for {@link Client.enableBusinessBots}. */ enableBusinessBots(): Promise; /** Context-aware alias for {@link Client.enableJoinRequests}. */ enableJoinRequests(): Promise; /** Context-aware alias for {@link Client.enableSharing}. */ enableSharing(): Promise; /** Context-aware alias for {@link Client.enableSignatures}. */ enableSignatures(params?: EnableSignaturesParams): Promise; /** Context-aware alias for {@link Client.enableTopics}. */ enableTopics(isShownAsTabs: boolean): Promise; /** Context-aware alias for {@link Client.forwardMessage}. */ forward(to: ID, params?: ForwardMessagesParams): Promise; /** Context-aware alias for {@link Client.forwardMessage}. */ forwardMessage(to: ID, messageId: number, params?: ForwardMessagesParams): Promise; /** Context-aware alias for {@link Client.forwardMessages}. */ forwardMessages(to: ID, messageIds: number[], params?: ForwardMessagesParams): Promise; /** Context-aware alias for {@link Client.getBusinessConnection}. */ getBusinessConnection(): Promise; /** Context-aware alias for {@link Client.getChat}. */ getChat(): Promise; /** Context-aware alias for {@link Client.getChatAdministrators}. */ getChatAdministrators(): Promise; /** Context-aware alias for {@link Client.getChatMember}. */ getChatMember(userId: ID): Promise; /** Context-aware alias for {@link Client.getChatMembers}. */ getChatMembers(params?: GetChatMembersParams): Promise; /** Context-aware alias for {@link Client.getChatSettings}. */ getChatSettings(): Promise; /** Context-aware alias for {@link Client.getClaimedGifts}. */ getClaimedGifts(params?: GetClaimedGiftsParams): Promise; /** Context-aware alias for {@link Client.getChatSettings}. */ getCommonChats(): Promise; /** Context-aware alias for {@link Client.getCreatedInviteLinks}. */ getCreatedInviteLinks(params?: GetCreatedInviteLinksParams): Promise; /** Context-aware alias for {@link Client.getHistory}. */ getHistory(params?: GetHistoryParams): Promise; /** Context-aware alias for {@link Client.getJoinRequests}. */ getJoinRequests(params?: GetJoinRequestsParams): Promise; /** Context-aware alias for {@link Client.getMessage}. */ getMessage(messageId: number): Promise; /** Context-aware alias for {@link Client.getMessageReactions}. */ getMessageReactions(messageId: number): Promise; /** Context-aware alias for {@link Client.getMessages}. */ getMessages(messageIds: number[]): Promise; /** Context-aware alias for {@link Client.getSavedMessages}. */ getSavedMessages(params?: GetSavedMessagesParams): Promise; /** Context-aware alias for {@link Client.getSimilarBots}. */ getSimilarBots(): Promise; /** Context-aware alias for {@link Client.getSimilarChannels}. */ getSimilarChannels(): Promise; /** Context-aware alias for {@link Client.getStories}. */ getStories(storyIds: number[]): Promise; /** Context-aware alias for {@link Client.getStory}. */ getStory(storyId: number): Promise; /** Context-aware alias for {@link Client.sendGift}. */ gift(giftId: string, params?: SendGiftParams): Promise; /** Context-aware alias for {@link Client.hideGeneralTopic}. */ hideGeneralTopic(): Promise; /** Context-aware alias for {@link Client.hideMemberList}. */ hideMemberList(): Promise; /** Context-aware alias for {@link Client.kickChatMember}. */ kickChatMember(memberId: ID): Promise; /** Context-aware alias for {@link Client.kickChatMember}. */ kickSender(): Promise; /** Context-aware alias for {@link Client.leaveChat}. */ leaveChat(): Promise; /** Context-aware alias for {@link Client.openChat}. */ open(): Promise; /** Context-aware alias for {@link Client.pauseBusinessBotConnection}. */ pauseBusinessBotConnection(): Promise; /** Context-aware alias for {@link Client.pinMessage}. */ pin(params?: PinMessageParams): Promise; /** Context-aware alias for {@link Client.pinMessage}. */ pinMessage(messageId: number, params?: PinMessageParams): Promise; /** Context-aware alias for {@link Client.pinTopic}. */ pinTopic(topicId: number): Promise; /** Context-aware alias for {@link Client.promoteChatMember}. */ promoteChatMember(userId: ID, params?: PromoteChatMemberParams): Promise; /** Context-aware alias for {@link Client.setReactions}. */ react(reactions: Reaction[], params?: SetReactionsParams): Promise; /** Context-aware alias for {@link Client.readMessages}. */ read(): Promise; /** Context-aware alias for {@link Client.refundStarPayment}. */ refundStarPayment(telegramPaymentChargeId: string): Promise; /** Context-aware alias for {@link Client.deleteContact}. */ removeAsContact(): Promise; /** Context-aware alias for {@link Client.removeReaction}. */ removeReaction(messageId: number, reaction: Reaction): Promise; /** Context-aware alias for {@link Client.removeUserReaction}. */ removeUserReaction(messageId: number, userId: ID): Promise; /** Context-aware alias for {@link Client.removeUserReactions}. */ removeUserReactions(userId: ID): Promise; /** Context-aware alias for {@link Client.removeStoriesFromHighlights}. */ removeStoriesFromHighlights(storyIds: number[]): Promise; /** Context-aware alias for {@link Client.removeStoryFromHighlights}. */ removeStoryFromHighlights(storyId: number): Promise; /** Context-aware alias for {@link Client.reopenTopic}. */ reopenTopic(topicId: number): Promise; /** Context-aware alias for {@link Client.sendMessage}. */ reply(text: string, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendAnimation}. */ replyAnimation(animation: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendAudio}. */ replyAudio(audio: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendChecklist}. */ replyChecklist(title: string, items: InputChecklistItem[], params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendContact}. */ replyContact(firstName: string, number: string, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendDice}. */ replyDice(params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendDocument}. */ replyDocument(document: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendMessageDraft}. */ replyDraft(draftId: number, text: string, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendInvoice}. */ replyInvoice(title: string, description: string, payload: string, currency: string, prices: PriceTag[], params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendLocation}. */ replyLocation(latitude: number, longitude: number, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendMediaGroup}. */ replyMediaGroup(media: InputMedia[], params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendPhoto}. */ replyPhoto(photo: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendPoll}. */ replyPoll(question: string, options: InputPollOption[], params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendSticker}. */ replySticker(sticker: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendVenue}. */ replyVenue(latitude: number, longitude: number, title: string, address: string, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendVideo}. */ replyVideo(video: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendVideoNote}. */ replyVideoNote(videoNote: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.sendVoice}. */ replyVoice(voice: FileSource, params?: Omit & ReplyParams): Promise; /** Context-aware alias for {@link Client.resumeBusinessBotConnection}. */ resumeBusinessBotConnection(): Promise; /** Context-aware alias for {@link Client.scheduleVideoChat}. */ scheduleVideoChat(startAt: number, params?: ScheduleVideoChatParams): Promise; /** Context-aware alias for {@link Client.searchMessages}. */ searchMessages(params?: Omit): Promise; /** Context-aware alias for {@link Client.sendChatAction}. */ sendChatAction(action: ChatActionType, params?: { messageThreadId?: number; }): Promise; /** Context-aware alias for {@link Client.sendScheduledMessage}. */ sendScheduledMessage(messageId: number): Promise; /** Context-aware alias for {@link Client.setAvailableReactions}. */ setAvailableReactions(availableReactions: AvailableReactions): Promise; /** Context-aware alias for {@link Client.setBoostsRequiredToCircumventRestrictions}. */ setBoostsRequiredToCircumventRestrictions(boosts: number): Promise; /** Context-aware alias for {@link Client.setChatDescription}. */ setChatDescription(description: string): Promise; /** Context-aware alias for {@link Client.setChatMemberRights}. */ setChatMemberRights(memberId: ID, params?: SetChatMemberRightsParams): Promise; /** Context-aware alias for {@link Client.setChatPhoto}. */ setChatPhoto(photo: FileSource, params?: SetChatPhotoParams): Promise; /** Context-aware alias for {@link Client.setChatStickerSet}. */ setChatStickerSet(setName: string): Promise; /** Context-aware alias for {@link Client.setChatTitle}. */ setChatTitle(title: string): Promise; /** Context-aware alias for {@link Client.setDiscussionChat}. */ setDiscussionChat(discussionChatId: ID): Promise; /** Context-aware alias for {@link Client.setChatMemberTag}. */ setMemberTag(params?: SetChatMemberTagParams): Promise; /** Context-aware alias for {@link Client.setMessageTtl}. */ setMessageTtl(messageTtl: number): Promise; /** Context-aware alias for {@link Client.setReactions}. */ setReactions(messageId: number, reactions: Reaction[], params?: SetReactionsParams): Promise; /** Context-aware alias for {@link Client.setChatMemberRights}. */ setSenderRights(params?: SetChatMemberRightsParams): Promise; /** Context-aware alias for {@link Client.setSlowMode}. */ setSlowMode(duration: SlowModeDuration): Promise; /** Context-aware alias for {@link Client.showGeneralTopic}. */ showGeneralTopic(): Promise; /** Context-aware alias for {@link Client.showMemberList}. */ showMemberList(): Promise; /** Context-aware alias for {@link Client.startVideoChat}. */ startVideoChat(params?: StartVideoChatParams): Promise; /** Context-aware alias for {@link Client.stopPoll}. */ stopPoll(messageId: number, params?: StopPollParams): Promise; /** Context-aware alias for {@link Client.transcribeVoice}. */ transcribeVoice(messageId: number): Promise; /** Context-aware alias for {@link Client.transferChatOwnership}. */ transferOwnership(userId: ID, password: string): Promise; /** Context-aware alias for {@link Client.unarchiveChat}. */ unarchive(): Promise; /** Context-aware alias for {@link Client.unbanChatMember}. */ unbanChatMember(memberId: ID): Promise; /** Context-aware alias for {@link Client.unblockUser}. */ unblockUser(): Promise; /** Context-aware alias for {@link Client.uncheckChecklistItem}. */ uncheckChecklistItem(messageId: number, item: number): Promise; /** Context-aware alias for {@link Client.uncheckChecklistItems}. */ uncheckChecklistItems(messageId: number, items: number[]): Promise; /** Context-aware alias for {@link Client.unpinMessage}. */ unpin(): Promise; /** Context-aware alias for {@link Client.unpinMessage}. */ unpinMessage(messageId: number): Promise; /** Context-aware alias for {@link Client.unpinMessages}. */ unpinMessages(): Promise; /** Context-aware alias for {@link Client.unpinTopic}. */ unpinTopic(topicId: number): Promise; /** Context-aware alias for {@link Client.updateChecklist}. */ updateChecklist(messageId: number, params?: UpdateChecklistParams): Promise; } export {}; //# sourceMappingURL=4_context.d.ts.map