import { BotChatJoinRequestUpdate, BotStoppedUpdate, CallbackQuery, ChatJoinRequestUpdate, ChatMemberUpdate, ChosenInlineResult, DeleteMessageUpdate, HistoryReadUpdate, InlineQuery, MaybeAsync, Message, PeersIndex, PollUpdate, PollVoteUpdate, PreCheckoutQuery, TelegramClient, UserStatusUpdate, UserTypingUpdate, } from '@mtcute/client' import { tl } from '@mtcute/tl' import { PropagationAction } from './propagation' export interface BaseUpdateHandler { name: Name callback: Handler check?: Checker } export type ParsedUpdateHandler< Name, Update, State = never > = BaseUpdateHandler< Name, (update: Update, state: State) => MaybeAsync, (update: Update, state: State) => MaybeAsync > export type RawUpdateHandler = BaseUpdateHandler< 'raw', ( client: TelegramClient, update: tl.TypeUpdate | tl.TypeMessage, peers: PeersIndex ) => MaybeAsync, ( client: TelegramClient, update: tl.TypeUpdate | tl.TypeMessage, peers: PeersIndex ) => MaybeAsync > // begin-codegen export type NewMessageHandler = ParsedUpdateHandler< 'new_message', T, S > export type EditMessageHandler = ParsedUpdateHandler< 'edit_message', T, S > export type DeleteMessageHandler = ParsedUpdateHandler< 'delete_message', T > export type ChatMemberUpdateHandler = ParsedUpdateHandler< 'chat_member', T > export type InlineQueryHandler = ParsedUpdateHandler< 'inline_query', T > export type ChosenInlineResultHandler = ParsedUpdateHandler<'chosen_inline_result', T> export type CallbackQueryHandler< T = CallbackQuery, S = never > = ParsedUpdateHandler<'callback_query', T, S> export type PollUpdateHandler = ParsedUpdateHandler<'poll', T> export type PollVoteHandler = ParsedUpdateHandler< 'poll_vote', T > export type UserStatusUpdateHandler = ParsedUpdateHandler< 'user_status', T > export type UserTypingHandler = ParsedUpdateHandler< 'user_typing', T > export type HistoryReadHandler = ParsedUpdateHandler< 'history_read', T > export type BotStoppedHandler = ParsedUpdateHandler< 'bot_stopped', T > export type BotChatJoinRequestHandler = ParsedUpdateHandler<'bot_chat_join_request', T> export type ChatJoinRequestHandler = ParsedUpdateHandler<'chat_join_request', T> export type PreCheckoutQueryHandler = ParsedUpdateHandler< 'pre_checkout_query', T > export type UpdateHandler = | RawUpdateHandler | NewMessageHandler | EditMessageHandler | DeleteMessageHandler | ChatMemberUpdateHandler | InlineQueryHandler | ChosenInlineResultHandler | CallbackQueryHandler | PollUpdateHandler | PollVoteHandler | UserStatusUpdateHandler | UserTypingHandler | HistoryReadHandler | BotStoppedHandler | BotChatJoinRequestHandler | ChatJoinRequestHandler | PreCheckoutQueryHandler // end-codegen