telegraf
Version:
Modern Telegram Bot Framework
52 lines (45 loc) • 1.52 kB
text/typescript
import { Typegram } from 'typegram'
// internal type provisions
export * from 'typegram/api'
export * from 'typegram/callback'
export * from 'typegram/inline'
export * from 'typegram/manage'
export * from 'typegram/message'
export * from 'typegram/passport'
export * from 'typegram/payment'
export * from 'typegram/update'
// telegraf input file definition
interface InputFileByPath {
source: string
}
interface InputFileByReadableStream {
source: NodeJS.ReadableStream
}
interface InputFileByBuffer {
source: Buffer
}
interface InputFileByURL {
url: string
filename?: string
}
export type InputFile =
| InputFileByPath
| InputFileByReadableStream
| InputFileByBuffer
| InputFileByURL
// typegram proxy type setup
type TelegrafTypegram = Typegram<InputFile>
export type Telegram = TelegrafTypegram['Telegram']
export type Opts<M extends keyof Telegram> = TelegrafTypegram['Opts'][M]
export type InputMedia = TelegrafTypegram['InputMedia']
export type InputMediaPhoto = TelegrafTypegram['InputMediaPhoto']
export type InputMediaVideo = TelegrafTypegram['InputMediaVideo']
export type InputMediaAnimation = TelegrafTypegram['InputMediaAnimation']
export type InputMediaAudio = TelegrafTypegram['InputMediaAudio']
export type InputMediaDocument = TelegrafTypegram['InputMediaDocument']
// tiny helper types
export type ChatAction = Opts<'sendChatAction'>['action']
/**
* Sending video notes by a URL is currently unsupported
*/
export type InputFileVideoNote = Exclude<InputFile, InputFileByURL>