import type { Formattable, TelegramInputMediaAnimation, TelegramInputMediaAudio, TelegramInputMediaDocument, TelegramInputMediaPhoto, TelegramInputMediaVideo } from '@puregram/api'; import type { MediaInput } from '../media-source/index.js'; import { type Camelize } from './camelize.js'; import type { InputMediaSticker, InputMediaVideoNote, InputMediaVoice } from './types.js'; type Media = MediaInput | string; type WithFormattableCaption = 'caption' extends keyof T ? Omit & { caption?: string | Formattable; } : T; type PhotoExtras = WithFormattableCaption>>; type VideoExtras = WithFormattableCaption>>; type DocumentExtras = WithFormattableCaption>>; type AnimationExtras = WithFormattableCaption>>; type AudioExtras = WithFormattableCaption>>; type StickerExtras = WithFormattableCaption>>; type VideoNoteExtras = WithFormattableCaption>>; type VoiceExtras = WithFormattableCaption>>; /** * static factories for `InputMedia*` payloads with v2-style positional `media` * arg. real bot api variants (photo/video/document/animation/audio) work with * `sendMediaGroup`; synthetic sticker/video_note/voice variants are accepted * only by `tg.sendMedia(...)` polymorphic dispatch * * @example * ```ts * tg.api.sendMediaGroup({ * chat_id, * media: [ * InputMedia.photo(MediaSource.path('a.png')), * InputMedia.photo(MediaSource.path('b.png'), { caption: 'b', parseMode: 'HTML' }) * ] * }) * * tg.sendMedia(chat, InputMedia.sticker(MediaSource.path('cat.webp'))) * ``` */ export declare class InputMedia { /** photo variant for `sendMediaGroup` / `editMessageMedia` */ static photo(media: Media, params?: PhotoExtras): TelegramInputMediaPhoto; /** video variant for `sendMediaGroup` / `editMessageMedia` */ static video(media: Media, params?: VideoExtras): TelegramInputMediaVideo; /** document variant for `sendMediaGroup` / `editMessageMedia` */ static document(media: Media, params?: DocumentExtras): TelegramInputMediaDocument; /** animation variant for `editMessageMedia` (cannot be in a media group) */ static animation(media: Media, params?: AnimationExtras): TelegramInputMediaAnimation; /** audio variant for `sendMediaGroup` / `editMessageMedia` */ static audio(media: Media, params?: AudioExtras): TelegramInputMediaAudio; /** sticker variant — only valid as input to `tg.sendMedia(...)` */ static sticker(media: Media, params?: StickerExtras): InputMediaSticker; /** video_note variant — only valid as input to `tg.sendMedia(...)` */ static videoNote(media: Media, params?: VideoNoteExtras): InputMediaVideoNote; /** voice variant — only valid as input to `tg.sendMedia(...)` */ static voice(media: Media, params?: VoiceExtras): InputMediaVoice; } export {}; //# sourceMappingURL=input-media.d.ts.map