import type { TelegramInputMediaAnimation, TelegramInputMediaAudio, TelegramInputMediaDocument, TelegramInputMediaPhoto, TelegramInputMediaVideo, TelegramMessage } from '@puregram/api'; import type { InputMediaSticker, InputMediaVideoNote, InputMediaVoice } from '../factories/index.js'; import type { Telegram } from '../telegram.js'; /** * polymorphic media query for `tg.sendMedia(chat, media)` — dispatches to * `tg.api.sendX` based on `type`. real bot-api `InputMedia*` variants carry * `media`; synthetic sticker/video_note/voice variants reuse the same field name */ export type SendMediaQuery = TelegramInputMediaPhoto | TelegramInputMediaVideo | TelegramInputMediaDocument | TelegramInputMediaAnimation | TelegramInputMediaAudio | InputMediaSticker | InputMediaVideoNote | InputMediaVoice; /** declarations for the handcrafted shortcuts that aren't in the codegen'd `TelegramShortcuts` */ export interface ManualShortcuts { /** * polymorphic shortcut — dispatches to `sendPhoto`/`sendVideo`/`sendSticker`/… * based on `type`. accepts both real `InputMedia*` shapes and synthetic * sticker/video_note/voice shapes from `InputMedia.{sticker,videoNote,voice}(...)` * * @example * ```ts * tg.sendMedia(chat, InputMedia.photo({ media: MediaSource.path('cat.png'), caption: 'cat' })) * tg.sendMedia(chat, InputMedia.sticker({ media: MediaSource.fileId(stickerId) })) * ``` */ sendMedia: (chat: number | string, media: SendMediaQuery, params?: Record) => Promise; } export declare function installShortcuts(tg: Telegram): void; //# sourceMappingURL=shortcuts.d.ts.map