File size: 2,632 Bytes
76777b5 2d01c57 76777b5 2d01c57 76777b5 ceeca02 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | import type { TelegramConfig } from '../../utils/config.js'
export const TELEGRAM_CHANNEL_SERVER = 'telegram'
export type TelegramRuntimeConfig = {
botToken: string
allowedUserIds: string[]
}
export type TelegramServiceStatus = 'stopped' | 'starting' | 'running'
export type TelegramServiceState = {
status: TelegramServiceStatus
botUsername?: string
botDisplayName?: string
lastError?: string
startedAt?: string
activeChatId?: string
activeUserId?: string
}
export type TelegramInboundEvent = {
kind: 'inbound-message'
chatId: string
userId: string
text: string
messageId: number
updateId: number
}
export type TelegramUpdate = {
update_id: number
message?: {
message_id: number
text?: string
chat?: {
id?: number
type?: string
}
from?: {
id?: number
is_bot?: boolean
}
}
callback_query?: {
id: string
data?: string
from?: {
id?: number
is_bot?: boolean
}
message?: {
message_id: number
chat?: {
id?: number
type?: string
}
text?: string
}
}
}
export type TelegramGetMeResponse = {
ok: boolean
description?: string
result?: {
id: number
is_bot: boolean
first_name?: string
username?: string
}
}
export type TelegramGetUpdatesResponse = {
ok: boolean
description?: string
result?: TelegramUpdate[]
}
export type TelegramSendMessageResponse = {
ok: boolean
description?: string
result?: {
message_id: number
}
}
export type TelegramSetMyCommandsResponse = {
ok: boolean
description?: string
}
export type TelegramEditMessageResponse = {
ok: boolean
description?: string
}
export type TelegramAnswerCallbackQueryResponse = {
ok: boolean
description?: string
}
export type TelegramBotCommand = {
command: string
description: string
}
export type TelegramInlineKeyboardButton = {
text: string
callback_data: string
}
export type TelegramInlineKeyboardMarkup = {
inline_keyboard: TelegramInlineKeyboardButton[][]
}
export type TelegramCallbackEvent = {
kind: 'callback-query'
callbackQueryId: string
chatId: string
userId: string
messageId: number
data: string
}
export type TelegramConfigDraft = Partial<TelegramConfig>
export type TelegramChatAction =
| 'typing'
| 'upload_photo'
| 'record_video'
| 'upload_video'
| 'record_voice'
| 'upload_voice'
| 'upload_document'
| 'choose_sticker'
| 'find_location'
| 'record_video_note'
| 'upload_video_note'
export type TelegramSendChatActionResponse = {
ok: boolean
description?: string
result?: boolean
}
|