Skip to content

GramIO API Reference / @gramio/contexts/dist / ChosenInlineResultContext

Class: ChosenInlineResultContext<Bot> ​

Defined in: contexts/index.d.ts:6307

The result of an inline query that was chosen by a user and sent to their chat partner

Extends ​

Type Parameters ​

Type Parameter
Bot extends BotLike

Constructors ​

Constructor ​

new ChosenInlineResultContext<Bot>(options): ChosenInlineResultContext<Bot>

Defined in: contexts/index.d.ts:6310

Parameters ​

ParameterType
optionsChosenInlineResultContextOptions<Bot>

Returns ​

ChosenInlineResultContext<Bot>

Overrides ​

Context.constructor


Constructor ​

new ChosenInlineResultContext(...args): ChosenInlineResultContext

Defined in: contexts/index.d.ts:6307

Parameters ​

ParameterType
...argsany[]

Returns ​

ChosenInlineResultContext

Overrides ​

Context<Bot>.constructor

Properties ​

PropertyModifierTypeDescriptionInherited fromDefined in
botpublicBot-Context.botcontexts/index.d.ts:5240
isTopicMessagepublic() => boolean-SendMixin.isTopicMessagecontexts/index.d.ts:5458
payloadpublicTelegramChosenInlineResultThe raw data that is used for this ContextChosenInlineResult.payloadcontexts/index.d.ts:6309
update?publicTelegramUpdate-Context.updatecontexts/index.d.ts:5242
updateId?publicnumber-Context.updateIdcontexts/index.d.ts:5241
updateTypeprotectedUpdateName-Context.updateTypecontexts/index.d.ts:5243

Accessors ​

[toStringTag] ​

Get Signature ​

get [toStringTag](): string

Defined in: contexts/index.d.ts:5246

MDN

Returns ​

string

Inherited from ​

Context.[toStringTag]


businessConnectionId ​

Get Signature ​

get businessConnectionId(): string

Defined in: contexts/index.d.ts:5455

Returns ​

string

Inherited from ​

SendMixin.businessConnectionId


chatId ​

Get Signature ​

get chatId(): number

Defined in: contexts/index.d.ts:5454

Returns ​

number

Inherited from ​

SendMixin.chatId


from ​

Get Signature ​

get from(): User

Defined in: contexts/index.d.ts:4445

The user that chose the result

Returns ​

User

Inherited from ​

ChosenInlineResult.from


inlineMessageId ​

Get Signature ​

get inlineMessageId(): string

Defined in: contexts/index.d.ts:4455

Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. Will be also received in callback queries and can be used to edit the message.

Returns ​

string

Inherited from ​

ChosenInlineResult.inlineMessageId


location ​

Get Signature ​

get location(): Location

Defined in: contexts/index.d.ts:4449

Sender location, only for bots that require user location

Returns ​

Location

Inherited from ​

ChosenInlineResult.location


query ​

Get Signature ​

get query(): string

Defined in: contexts/index.d.ts:4457

The query that was used to obtain the result

Returns ​

string

Inherited from ​

ChosenInlineResult.query


resultId ​

Get Signature ​

get resultId(): string

Defined in: contexts/index.d.ts:4443

The unique identifier for the result that was chosen

Returns ​

string

Inherited from ​

ChosenInlineResult.resultId


senderId ​

Get Signature ​

get senderId(): number

Defined in: contexts/index.d.ts:4447

Sender ID

Returns ​

number

Inherited from ​

ChosenInlineResult.senderId


threadId ​

Get Signature ​

get threadId(): number

Defined in: contexts/index.d.ts:5457

Returns ​

number

Inherited from ​

SendMixin.threadId

Methods ​

clone() ​

clone(options?): ChosenInlineResultContext

Defined in: contexts/index.d.ts:5935

Parameters ​

ParameterType
options?ChosenInlineResultContextOptions

Returns ​

ChosenInlineResultContext

Inherited from ​

CloneMixin.clone


createActionController() ​

createActionController(action, params?): ChatActionController<Bot>

Defined in: contexts/index.d.ts:5924

Parameters ​

ParameterType
actionSendChatActionAction
params?Pick<SendChatActionParams, "business_connection_id" | "message_thread_id"> & object & CreateActionControllerParams

Returns ​

ChatActionController<Bot>

Deprecated ​

Creates a controller that when start()ed executes sendChatAction(action) every interval milliseconds until stop()ped

Inherited from ​

ChatActionMixin.createActionController


editCaption() ​

editCaption(caption, params?): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6318

Edits a callback query messages caption

Parameters ​

ParameterType
captionNonNullable<string | { toString: string; }>
params?Partial<EditMessageCaptionParams>

Returns ​

Promise<true | TelegramMessage>


editLiveLocation() ​

editLiveLocation(params): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6322

Edits a callback query messages live location

Parameters ​

ParameterType
paramsEditMessageLiveLocationParams

Returns ​

Promise<true | TelegramMessage>


editMedia() ​

editMedia(media, params?): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6320

Edits a callback query messages media

Parameters ​

ParameterType
mediaTelegramInputMedia
params?Partial<EditMessageMediaParams>

Returns ​

Promise<true | TelegramMessage>


editReplyMarkup() ​

editReplyMarkup(replyMarkup, params?): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6326

Edits a callback query messages reply markup

Parameters ​

ParameterType
replyMarkupTelegramInlineKeyboardMarkup | { toJSON: TelegramInlineKeyboardMarkup; }
params?Partial<EditMessageReplyMarkupParams>

Returns ​

Promise<true | TelegramMessage>


editText() ​

editText(text, params?): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6316

Edits a callback query messages text

Parameters ​

ParameterType
textstring | { toString: string; } | RichStringLike
params?Partial<EditMessageTextParams>

Returns ​

Promise<true | TelegramMessage>


getChatBoosts() ​

getChatBoosts(userId): Promise<TelegramUserChatBoosts>

Defined in: contexts/index.d.ts:5586

Returns chat boosts by the user

Parameters ​

ParameterType
userIdnumber

Returns ​

Promise<TelegramUserChatBoosts>

Inherited from ​

SendMixin.getChatBoosts


hasInlineMessageId() ​

hasInlineMessageId(): this is Require<ChosenInlineResultContext<Bot>, "inlineMessageId">

Defined in: contexts/index.d.ts:6314

Checks if the query has inlineMessageId property

Returns ​

this is Require<ChosenInlineResultContext<Bot>, "inlineMessageId">


hasLocation() ​

hasLocation(): this is Require<ChosenInlineResultContext<Bot>, "location">

Defined in: contexts/index.d.ts:6312

Checks if the result has location property

Returns ​

this is Require<ChosenInlineResultContext<Bot>, "location">


is() ​

is<T>(rawTypes): this is InstanceType<ContextsMapping<Bot>[T]> & GetDerives<Bot, T> & (IsAny<Bot["__Derives"]> extends true ? {} : Bot["__Derives"] extends {} ? Bot["__Derives"]["global"] & Bot["__Derives"][T] : {})

Defined in: contexts/index.d.ts:5249

Type Parameters ​

Type Parameter
T extends UpdateName

Parameters ​

ParameterType
rawTypesMaybeArray<SoftString<T>>

Returns ​

this is InstanceType<ContextsMapping<Bot>[T]> & GetDerives<Bot, T> & (IsAny<Bot["__Derives"]> extends true ? {} : Bot["__Derives"] extends {} ? Bot["__Derives"]["global"] & Bot["__Derives"][T] : {})

Inherited from ​

Context.is


send() ​

send(text, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5469

Sends message to current chat.

Pass a branded @gramio/format rich value (Markdown RichString or a native structured block/message from @gramio/format/rich) and it is sent via sendRichMessage instead — bot.api.* stays 1:1; the method is chosen here.

Parameters ​

ParameterType
textstring | { toString: string; } | RichStringLike
params?Optional<SendMessageParams, "text" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.send


sendAnimation() ​

sendAnimation(animation, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5517

Sends animation to current chat

Parameters ​

ParameterType
animationstring | Blob
params?Optional<SendAnimationParams, "animation" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendAnimation


sendAudio() ​

sendAudio(audio, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5513

Sends audio to current chat

Parameters ​

ParameterType
audiostring | Blob
params?Optional<SendAudioParams, "audio" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendAudio


sendChatAction() ​

sendChatAction(action, params?): Promise<true>

Defined in: contexts/index.d.ts:5541

Sends chat action to current chat

Parameters ​

ParameterType
actionSendChatActionAction
params?Optional<SendChatActionParams, "chat_id" | "action">

Returns ​

Promise<true>

Inherited from ​

SendMixin.sendChatAction


sendChecklist() ​

sendChecklist(params): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5533

Sends checklist to current chat

Parameters ​

ParameterType
paramsOptional<SendChecklistParams, "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendChecklist


sendContact() ​

sendContact(params): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5529

Sends contact to current chat

Parameters ​

ParameterType
paramsOptional<SendContactParams, "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendContact


sendDice() ​

sendDice(emoji, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5543

Sends dice

Parameters ​

ParameterType
emojiSendDiceEmoji
params?Partial<SendDiceParams>

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendDice


sendDocument() ​

sendDocument(document, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5511

Sends document to current chat

Parameters ​

ParameterType
documentstring | Blob
params?Optional<SendDocumentParams, "document" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendDocument


sendInvoice() ​

sendInvoice(params): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5525

Sends invoice to current user

Parameters ​

ParameterType
paramsOptional<SendInvoiceParams, "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendInvoice


sendLivePhoto() ​

sendLivePhoto(livePhoto, photo, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5509

Sends live photo to current chat

Parameters ​

ParameterType
livePhotostring | Blob
photostring | Blob
params?Optional<SendLivePhotoParams, "photo" | "live_photo" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendLivePhoto


sendLocation() ​

sendLocation(latitude, longitude, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5523

Sends location to current chat

Parameters ​

ParameterType
latitudenumber
longitudenumber
params?Optional<SendLocationParams, "chat_id" | "latitude" | "longitude">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendLocation


sendMedia() ​

sendMedia<T>(query): ReturnType<T extends "animation" ? (animation, params?) => Promise<MessageContext<Bot>> : T extends "audio" ? (audio, params?) => Promise<MessageContext<Bot>> : T extends "document" ? (document, params?) => Promise<MessageContext<Bot>> : T extends "photo" ? (photo, params?) => Promise<MessageContext<Bot>> : T extends "sticker" ? (sticker, params?) => Promise<MessageContext<Bot>> : T extends "video_note" ? (videoNote, params?) => Promise<MessageContext<Bot>> : T extends "video" ? (video, params?) => Promise<MessageContext<...>> : T extends "voice" ? (voice, params?) => Promise<...> : () => never>

Defined in: contexts/index.d.ts:5560

Automatically uses correct media method to send media

Type Parameters ​

Type Parameter
T extends string

Parameters ​

ParameterType
queryobject & tSendMethods

Returns ​

ReturnType<T extends "animation" ? (animation, params?) => Promise<MessageContext<Bot>> : T extends "audio" ? (audio, params?) => Promise<MessageContext<Bot>> : T extends "document" ? (document, params?) => Promise<MessageContext<Bot>> : T extends "photo" ? (photo, params?) => Promise<MessageContext<Bot>> : T extends "sticker" ? (sticker, params?) => Promise<MessageContext<Bot>> : T extends "video_note" ? (videoNote, params?) => Promise<MessageContext<Bot>> : T extends "video" ? (video, params?) => Promise<MessageContext<...>> : T extends "voice" ? (voice, params?) => Promise<...> : () => never>

Example ​

js
context.sendMedia({
  type: 'photo',
  photo: MediaUpload.path('./image.png'),
  caption: 'good image yes yes'
})

Inherited from ​

SendMixin.sendMedia


sendMediaGroup() ​

sendMediaGroup(mediaGroup, params?): Promise<MessageContext<Bot>[]>

Defined in: contexts/index.d.ts:5547

Sends media group to current chat

Parameters ​

ParameterType
mediaGroup(TelegramInputMediaAudio | TelegramInputMediaDocument | TelegramInputMediaLivePhoto | TelegramInputMediaPhoto | TelegramInputMediaVideo)[]
params?Optional<SendMediaGroupParams, "media" | "chat_id">

Returns ​

Promise<MessageContext<Bot>[]>

Inherited from ​

SendMixin.sendMediaGroup


sendMessageDraft() ​

sendMessageDraft(params): Promise<true>

Defined in: contexts/index.d.ts:5539

Sends a message draft to the current private chat

Parameters ​

ParameterType
paramsOptional<SendMessageDraftParams, "chat_id">

Returns ​

Promise<true>

Inherited from ​

SendMixin.sendMessageDraft


sendPaidMedia() ​

sendPaidMedia(paidMedia, starCount, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5545

Sends paid media to current chat

Parameters ​

ParameterType
paidMediaTelegramInputPaidMedia[]
starCountnumber
params?Optional<SendPaidMediaParams, "media" | "chat_id" | "star_count">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendPaidMedia


sendPhoto() ​

sendPhoto(photo, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5507

Sends photo to current chat

Parameters ​

ParameterType
photostring | Blob
params?Optional<SendPhotoParams, "photo" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendPhoto


sendPoll() ​

sendPoll(params): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5531

Sends poll to current chat

Parameters ​

ParameterType
paramsOptional<SendPollParams, "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendPoll


sendRichMessage() ​

sendRichMessage(richMessage, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5471

Sends rich message to current chat

Parameters ​

ParameterType
richMessageTelegramInputRichMessage
params?Optional<SendRichMessageParams, "chat_id" | "rich_message">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendRichMessage


sendRichMessageDraft() ​

sendRichMessageDraft(richMessage, draftId, params?): Promise<true>

Defined in: contexts/index.d.ts:5478

Streams a partial rich message draft to the current chat. The streamed draft is ephemeral and acts as a temporary 30-second preview — once the output is finalized, you must call sendRichMessage with the complete message to persist it.

Parameters ​

ParameterType
richMessageTelegramInputRichMessage
draftIdnumber
params?Optional<SendRichMessageDraftParams, "chat_id" | "rich_message" | "draft_id">

Returns ​

Promise<true>

Inherited from ​

SendMixin.sendRichMessageDraft


sendSticker() ​

sendSticker(sticker, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5535

Sends sticker

Parameters ​

ParameterType
stickerstring | Blob
params?Optional<SendStickerParams, "sticker" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendSticker


sendVenue() ​

sendVenue(params): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5527

Sends venue to current chat

Parameters ​

ParameterType
paramsOptional<SendVenueParams, "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendVenue


sendVideo() ​

sendVideo(video, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5515

Sends video to current chat

Parameters ​

ParameterType
videostring | Blob
params?Optional<SendVideoParams, "video" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendVideo


sendVideoNote() ​

sendVideoNote(videoNote, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5519

Sends video note to current chat

Parameters ​

ParameterType
videoNotestring | Blob
params?Optional<SendVideoNoteParams, "video_note" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendVideoNote


sendVoice() ​

sendVoice(voice, params?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5521

Sends voice to current chat

Parameters ​

ParameterType
voicestring | Blob
params?Optional<SendVoiceParams, "voice" | "chat_id">

Returns ​

Promise<MessageContext<Bot>>

Inherited from ​

SendMixin.sendVoice


stopLiveLocation() ​

stopLiveLocation(params?): Promise<true | TelegramMessage>

Defined in: contexts/index.d.ts:6324

Stops a callback query messages live location

Parameters ​

ParameterType
params?StopMessageLiveLocationParams

Returns ​

Promise<true | TelegramMessage>


stopPoll() ​

stopPoll(messageId, params?): Promise<Poll>

Defined in: contexts/index.d.ts:5537

Stops poll in current chat

Parameters ​

ParameterType
messageIdnumber
params?Partial<StopPollParams>

Returns ​

Promise<Poll>

Inherited from ​

SendMixin.stopPoll


streamMessage() ​

Call Signature ​

streamMessage(options?): MessageDraft<Bot>

Defined in: contexts/index.d.ts:5583

Streams message drafts to the current chat, finalizing each completed draft as a sent message.

Two forms (mirroring SendMixin.streamRichMessage):

  • Iterable — pass an Iterable/AsyncIterable of MessageDraftPiece; it's drained and the array of sent messages is returned.
  • Handle — call with no iterable to get a MessageDraft: append() pieces and finalize(), or use await using to finalize on scope exit.

Both use sendMessageDraft for live previews and sendMessage to finalize each 4096-char segment.

Parameters ​
ParameterType
options?StreamMessageOptions
Returns ​

MessageDraft<Bot>

Example ​
ts
// iterable form
const messages = await context.streamMessage(llmStream);

// handle form (auto-finalize)
await using draft = context.streamMessage();
for await (const token of llm) draft.append(token);
Inherited from ​

SendMixin.streamMessage

Call Signature ​

streamMessage(stream, options?): Promise<MessageContext<Bot>[]>

Defined in: contexts/index.d.ts:5584

Streams message drafts to the current chat, finalizing each completed draft as a sent message.

Two forms (mirroring SendMixin.streamRichMessage):

  • Iterable — pass an Iterable/AsyncIterable of MessageDraftPiece; it's drained and the array of sent messages is returned.
  • Handle — call with no iterable to get a MessageDraft: append() pieces and finalize(), or use await using to finalize on scope exit.

Both use sendMessageDraft for live previews and sendMessage to finalize each 4096-char segment.

Parameters ​
ParameterType
streamIterable<MessageDraftPiece, any, any> | AsyncIterable<MessageDraftPiece, any, any>
options?StreamMessageOptions
Returns ​

Promise<MessageContext<Bot>[]>

Example ​
ts
// iterable form
const messages = await context.streamMessage(llmStream);

// handle form (auto-finalize)
await using draft = context.streamMessage();
for await (const token of llm) draft.append(token);
Inherited from ​

SendMixin.streamMessage


streamRichMessage() ​

Call Signature ​

streamRichMessage(options?): RichMessageDraft<Bot>

Defined in: contexts/index.d.ts:5504

Stream a rich message to the current chat, draft-first.

The hard part of sendRichMessageDraft is the contract: the draft is an ephemeral ~30-second preview, and you must finalize it with sendRichMessage or the message vanishes. This helper owns that lifecycle (throttled previews, a single finalize), so you can't forget it.

Two forms:

  • Handle — const draft = ctx.streamRichMessage(); draft.append(chunk); … await draft.finalize(). With await using, finalize runs automatically on scope exit.
  • Iterable — pass an (async) iterable of chunks; it's drained, finalized, and the sent message is returned.

A chunk is a @gramio/format RichString or a raw rich-markdown string.

Parameters ​
ParameterType
options?StreamRichMessageOptions
Returns ​

RichMessageDraft<Bot>

Example ​
ts
// handle form (auto-finalize)
await using draft = ctx.streamRichMessage();
for await (const token of llm) draft.append(rich`${token}`);

// iterable form
const message = await ctx.streamRichMessage(llmStream);
Inherited from ​

SendMixin.streamRichMessage

Call Signature ​

streamRichMessage(stream, options?): Promise<MessageContext<Bot>>

Defined in: contexts/index.d.ts:5505

Stream a rich message to the current chat, draft-first.

The hard part of sendRichMessageDraft is the contract: the draft is an ephemeral ~30-second preview, and you must finalize it with sendRichMessage or the message vanishes. This helper owns that lifecycle (throttled previews, a single finalize), so you can't forget it.

Two forms:

  • Handle — const draft = ctx.streamRichMessage(); draft.append(chunk); … await draft.finalize(). With await using, finalize runs automatically on scope exit.
  • Iterable — pass an (async) iterable of chunks; it's drained, finalized, and the sent message is returned.

A chunk is a @gramio/format RichString or a raw rich-markdown string.

Parameters ​
ParameterType
streamIterable<RichChunk, any, any> | AsyncIterable<RichChunk, any, any>
options?StreamRichMessageOptions
Returns ​

Promise<MessageContext<Bot>>

Example ​
ts
// handle form (auto-finalize)
await using draft = ctx.streamRichMessage();
for await (const token of llm) draft.append(rich`${token}`);

// iterable form
const message = await ctx.streamRichMessage(llmStream);
Inherited from ​

SendMixin.streamRichMessage