@mtcute/dispatcher 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +26 -0
  3. package/cjs/callback-data-builder.d.ts +43 -0
  4. package/cjs/callback-data-builder.js +99 -0
  5. package/cjs/callback-data-builder.js.map +1 -0
  6. package/cjs/context/base.d.ts +8 -0
  7. package/cjs/context/base.js +3 -0
  8. package/cjs/context/base.js.map +1 -0
  9. package/cjs/context/callback-query.d.ts +27 -0
  10. package/cjs/context/callback-query.js +56 -0
  11. package/cjs/context/callback-query.js.map +1 -0
  12. package/cjs/context/chat-join-request.d.ts +16 -0
  13. package/cjs/context/chat-join-request.js +34 -0
  14. package/cjs/context/chat-join-request.js.map +1 -0
  15. package/cjs/context/chosen-inline-result.d.ts +21 -0
  16. package/cjs/context/chosen-inline-result.js +35 -0
  17. package/cjs/context/chosen-inline-result.js.map +1 -0
  18. package/cjs/context/index.d.ts +8 -0
  19. package/cjs/context/index.js +24 -0
  20. package/cjs/context/index.js.map +1 -0
  21. package/cjs/context/inline-query.d.ts +14 -0
  22. package/cjs/context/inline-query.js +22 -0
  23. package/cjs/context/inline-query.js.map +1 -0
  24. package/cjs/context/message.d.ts +72 -0
  25. package/cjs/context/message.js +142 -0
  26. package/cjs/context/message.js.map +1 -0
  27. package/cjs/context/parse.d.ts +1 -0
  28. package/cjs/context/parse.js +34 -0
  29. package/cjs/context/parse.js.map +1 -0
  30. package/cjs/context/pre-checkout-query.d.ts +16 -0
  31. package/cjs/context/pre-checkout-query.js +26 -0
  32. package/cjs/context/pre-checkout-query.js.map +1 -0
  33. package/cjs/dispatcher.d.ts +641 -0
  34. package/cjs/dispatcher.js +765 -0
  35. package/cjs/dispatcher.js.map +1 -0
  36. package/cjs/filters/bots.d.ts +70 -0
  37. package/cjs/filters/bots.js +129 -0
  38. package/cjs/filters/bots.js.map +1 -0
  39. package/cjs/filters/bundle.d.ts +10 -0
  40. package/cjs/filters/bundle.js +27 -0
  41. package/cjs/filters/bundle.js.map +1 -0
  42. package/cjs/filters/chat.d.ts +27 -0
  43. package/cjs/filters/chat.js +55 -0
  44. package/cjs/filters/chat.js.map +1 -0
  45. package/cjs/filters/group.d.ts +25 -0
  46. package/cjs/filters/group.js +72 -0
  47. package/cjs/filters/group.js.map +1 -0
  48. package/cjs/filters/index.d.ts +3 -0
  49. package/cjs/filters/index.js +29 -0
  50. package/cjs/filters/index.js.map +1 -0
  51. package/cjs/filters/logic.d.ts +29 -0
  52. package/cjs/filters/logic.js +114 -0
  53. package/cjs/filters/logic.js.map +1 -0
  54. package/cjs/filters/message.d.ts +295 -0
  55. package/cjs/filters/message.js +150 -0
  56. package/cjs/filters/message.js.map +1 -0
  57. package/cjs/filters/state.d.ts +15 -0
  58. package/cjs/filters/state.js +32 -0
  59. package/cjs/filters/state.js.map +1 -0
  60. package/cjs/filters/text.d.ts +64 -0
  61. package/cjs/filters/text.js +132 -0
  62. package/cjs/filters/text.js.map +1 -0
  63. package/cjs/filters/types.d.ts +91 -0
  64. package/cjs/filters/types.js +6 -0
  65. package/cjs/filters/types.js.map +1 -0
  66. package/cjs/filters/updates.d.ts +46 -0
  67. package/cjs/filters/updates.js +46 -0
  68. package/cjs/filters/updates.js.map +1 -0
  69. package/cjs/filters/user.d.ts +24 -0
  70. package/cjs/filters/user.js +76 -0
  71. package/cjs/filters/user.js.map +1 -0
  72. package/cjs/handler.d.ts +31 -0
  73. package/cjs/handler.js +4 -0
  74. package/cjs/handler.js.map +1 -0
  75. package/cjs/index.d.ts +8 -0
  76. package/cjs/index.js +25 -0
  77. package/cjs/index.js.map +1 -0
  78. package/cjs/package.json +3 -0
  79. package/cjs/propagation.d.ts +21 -0
  80. package/cjs/propagation.js +26 -0
  81. package/cjs/propagation.js.map +1 -0
  82. package/cjs/state/index.d.ts +3 -0
  83. package/cjs/state/index.js +20 -0
  84. package/cjs/state/index.js.map +1 -0
  85. package/cjs/state/key.d.ts +23 -0
  86. package/cjs/state/key.js +45 -0
  87. package/cjs/state/key.js.map +1 -0
  88. package/cjs/state/storage.d.ts +75 -0
  89. package/cjs/state/storage.js +17 -0
  90. package/cjs/state/storage.js.map +1 -0
  91. package/cjs/state/update-state.d.ts +151 -0
  92. package/cjs/state/update-state.js +211 -0
  93. package/cjs/state/update-state.js.map +1 -0
  94. package/cjs/wizard.d.ts +60 -0
  95. package/cjs/wizard.js +103 -0
  96. package/cjs/wizard.js.map +1 -0
  97. package/esm/callback-data-builder.d.ts +43 -0
  98. package/esm/callback-data-builder.js +95 -0
  99. package/esm/callback-data-builder.js.map +1 -0
  100. package/esm/context/base.d.ts +8 -0
  101. package/esm/context/base.js +2 -0
  102. package/esm/context/base.js.map +1 -0
  103. package/esm/context/callback-query.d.ts +27 -0
  104. package/esm/context/callback-query.js +52 -0
  105. package/esm/context/callback-query.js.map +1 -0
  106. package/esm/context/chat-join-request.d.ts +16 -0
  107. package/esm/context/chat-join-request.js +30 -0
  108. package/esm/context/chat-join-request.js.map +1 -0
  109. package/esm/context/chosen-inline-result.d.ts +21 -0
  110. package/esm/context/chosen-inline-result.js +31 -0
  111. package/esm/context/chosen-inline-result.js.map +1 -0
  112. package/esm/context/index.d.ts +8 -0
  113. package/esm/context/index.js +8 -0
  114. package/esm/context/index.js.map +1 -0
  115. package/esm/context/inline-query.d.ts +14 -0
  116. package/esm/context/inline-query.js +18 -0
  117. package/esm/context/inline-query.js.map +1 -0
  118. package/esm/context/message.d.ts +72 -0
  119. package/esm/context/message.js +138 -0
  120. package/esm/context/message.js.map +1 -0
  121. package/esm/context/parse.d.ts +1 -0
  122. package/esm/context/parse.js +30 -0
  123. package/esm/context/parse.js.map +1 -0
  124. package/esm/context/pre-checkout-query.d.ts +16 -0
  125. package/esm/context/pre-checkout-query.js +22 -0
  126. package/esm/context/pre-checkout-query.js.map +1 -0
  127. package/esm/dispatcher.d.ts +641 -0
  128. package/esm/dispatcher.js +761 -0
  129. package/esm/dispatcher.js.map +1 -0
  130. package/esm/filters/bots.d.ts +70 -0
  131. package/esm/filters/bots.js +125 -0
  132. package/esm/filters/bots.js.map +1 -0
  133. package/esm/filters/bundle.d.ts +10 -0
  134. package/esm/filters/bundle.js +11 -0
  135. package/esm/filters/bundle.js.map +1 -0
  136. package/esm/filters/chat.d.ts +27 -0
  137. package/esm/filters/chat.js +50 -0
  138. package/esm/filters/chat.js.map +1 -0
  139. package/esm/filters/group.d.ts +25 -0
  140. package/esm/filters/group.js +67 -0
  141. package/esm/filters/group.js.map +1 -0
  142. package/esm/filters/index.d.ts +3 -0
  143. package/esm/filters/index.js +3 -0
  144. package/esm/filters/index.js.map +1 -0
  145. package/esm/filters/logic.d.ts +29 -0
  146. package/esm/filters/logic.js +107 -0
  147. package/esm/filters/logic.js.map +1 -0
  148. package/esm/filters/message.d.ts +295 -0
  149. package/esm/filters/message.js +130 -0
  150. package/esm/filters/message.js.map +1 -0
  151. package/esm/filters/state.d.ts +15 -0
  152. package/esm/filters/state.js +27 -0
  153. package/esm/filters/state.js.map +1 -0
  154. package/esm/filters/text.d.ts +64 -0
  155. package/esm/filters/text.js +124 -0
  156. package/esm/filters/text.js.map +1 -0
  157. package/esm/filters/types.d.ts +91 -0
  158. package/esm/filters/types.js +5 -0
  159. package/esm/filters/types.js.map +1 -0
  160. package/esm/filters/updates.d.ts +46 -0
  161. package/esm/filters/updates.js +39 -0
  162. package/esm/filters/updates.js.map +1 -0
  163. package/esm/filters/user.d.ts +24 -0
  164. package/esm/filters/user.js +70 -0
  165. package/esm/filters/user.js.map +1 -0
  166. package/esm/handler.d.ts +31 -0
  167. package/esm/handler.js +3 -0
  168. package/esm/handler.js.map +1 -0
  169. package/esm/index.d.ts +8 -0
  170. package/esm/index.js +9 -0
  171. package/esm/index.js.map +1 -0
  172. package/esm/propagation.d.ts +21 -0
  173. package/esm/propagation.js +23 -0
  174. package/esm/propagation.js.map +1 -0
  175. package/esm/state/index.d.ts +3 -0
  176. package/esm/state/index.js +4 -0
  177. package/esm/state/index.js.map +1 -0
  178. package/esm/state/key.d.ts +23 -0
  179. package/esm/state/key.js +41 -0
  180. package/esm/state/key.js.map +1 -0
  181. package/esm/state/storage.d.ts +75 -0
  182. package/esm/state/storage.js +13 -0
  183. package/esm/state/storage.js.map +1 -0
  184. package/esm/state/update-state.d.ts +151 -0
  185. package/esm/state/update-state.js +206 -0
  186. package/esm/state/update-state.js.map +1 -0
  187. package/esm/wizard.d.ts +60 -0
  188. package/esm/wizard.js +99 -0
  189. package/esm/wizard.js.map +1 -0
  190. package/package.json +21 -0
@@ -0,0 +1,641 @@
1
+ import { BotStoppedUpdate, ChatJoinRequestUpdate, ChatMemberUpdate, DeleteMessageUpdate, DeleteStoryUpdate, HistoryReadUpdate, MaybeAsync, ParsedUpdate, PeersIndex, PollUpdate, PollVoteUpdate, StoryUpdate, TelegramClient, tl, UserStatusUpdate, UserTypingUpdate } from '@mtcute/client';
2
+ import { UpdateContext } from './context/base.js';
3
+ import { CallbackQueryContext, ChatJoinRequestUpdateContext, ChosenInlineResultContext, InlineQueryContext, MessageContext, PreCheckoutQueryContext } from './context/index.js';
4
+ import { filters, UpdateFilter } from './filters/index.js';
5
+ import { BotChatJoinRequestHandler, BotStoppedHandler, CallbackQueryHandler, ChatJoinRequestHandler, ChatMemberUpdateHandler, ChosenInlineResultHandler, DeleteMessageHandler, DeleteStoryHandler, EditMessageHandler, HistoryReadHandler, InlineQueryHandler, MessageGroupHandler, NewMessageHandler, PollUpdateHandler, PollVoteHandler, PreCheckoutQueryHandler, RawUpdateHandler, StoryUpdateHandler, UpdateHandler, UserStatusUpdateHandler, UserTypingHandler } from './handler.js';
6
+ import { PropagationAction } from './propagation.js';
7
+ import { IStateStorage, StateKeyDelegate, UpdateState } from './state/index.js';
8
+ export interface DispatcherParams {
9
+ /**
10
+ * If this dispatcher can be used as a scene, its unique name.
11
+ *
12
+ * Should not be set manually, use {@link Dispatcher.scene} instead
13
+ */
14
+ sceneName?: string;
15
+ /**
16
+ * Custom storage for the dispatcher.
17
+ *
18
+ * @default Client's storage
19
+ */
20
+ storage?: IStateStorage;
21
+ /**
22
+ * Custom key delegate for the dispatcher.
23
+ */
24
+ key?: StateKeyDelegate;
25
+ }
26
+ /**
27
+ * Updates dispatcher
28
+ */
29
+ export declare class Dispatcher<State extends object = never> {
30
+ private _groups;
31
+ private _groupsOrder;
32
+ private _client?;
33
+ private _parent?;
34
+ private _children;
35
+ private _scenes?;
36
+ private _scene?;
37
+ private _sceneScoped?;
38
+ private _storage?;
39
+ private _stateKeyDelegate?;
40
+ private _customStateKeyDelegate?;
41
+ private _customStorage?;
42
+ private _errorHandler?;
43
+ private _preUpdateHandler?;
44
+ private _postUpdateHandler?;
45
+ protected constructor(client?: TelegramClient, params?: DispatcherParams);
46
+ /**
47
+ * Create a new dispatcher and bind it to the client.
48
+ */
49
+ static for<State extends object = never>(client: TelegramClient, params?: DispatcherParams): Dispatcher<State>;
50
+ /**
51
+ * Create a new child dispatcher.
52
+ */
53
+ static child<State extends object = never>(params?: DispatcherParams): Dispatcher<State>;
54
+ /**
55
+ * Create a new scene dispatcher
56
+ */
57
+ static scene<State extends object = Record<never, never>>(name: string, params?: Omit<DispatcherParams, 'sceneName'>): Dispatcher<State>;
58
+ /** For scene dispatchers, name of the scene */
59
+ get sceneName(): string | undefined;
60
+ /**
61
+ * Bind the dispatcher to the client.
62
+ * Called by the constructor automatically if
63
+ * `client` was passed.
64
+ *
65
+ * Under the hood, this replaces client's `dispatchUpdate`
66
+ * function, meaning you can't bind two different
67
+ * dispatchers to the same client at the same time.
68
+ * Instead, use {@link extend}, {@link addChild}
69
+ * or {@link addScene} on the existing, already bound dispatcher.
70
+ *
71
+ * Dispatcher also uses bound client to throw errors
72
+ */
73
+ bindToClient(client: TelegramClient): void;
74
+ /**
75
+ * Unbind a dispatcher from the client.
76
+ *
77
+ * This will replace client's dispatchUpdate with a no-op.
78
+ * If this dispatcher is not bound, nothing will happen.
79
+ */
80
+ unbind(): void;
81
+ /**
82
+ * Process a raw update with this dispatcher.
83
+ * Calling this method without bound client will not work.
84
+ *
85
+ * Under the hood asynchronously calls {@link dispatchRawUpdateNow}
86
+ * with error handler set to client's one.
87
+ *
88
+ * @param update Update to process
89
+ * @param peers Peers index
90
+ */
91
+ dispatchRawUpdate(update: tl.TypeUpdate | tl.TypeMessage, peers: PeersIndex): void;
92
+ /**
93
+ * Process a raw update right now in the current stack.
94
+ *
95
+ * Unlike {@link dispatchRawUpdate}, this does not schedule
96
+ * the update to be dispatched, but dispatches it immediately,
97
+ * and after `await`ing this method you can be certain that the update
98
+ * was fully processed by all the registered handlers, including children.
99
+ *
100
+ * @param update Update to process
101
+ * @param peers Peers map
102
+ * @returns Whether the update was handled
103
+ */
104
+ dispatchRawUpdateNow(update: tl.TypeUpdate | tl.TypeMessage, peers: PeersIndex): Promise<boolean>;
105
+ /**
106
+ * Process an update with this dispatcher.
107
+ * Calling this method without bound client will not work.
108
+ *
109
+ * Under the hood asynchronously calls {@link dispatchUpdateNow}
110
+ * with error handler set to client's one.
111
+ *
112
+ * @param update Update to process
113
+ */
114
+ dispatchUpdate(update: ParsedUpdate): void;
115
+ /**
116
+ * Process an update right now in the current stack.
117
+ *
118
+ * Unlike {@link dispatchUpdate}, this does not schedule
119
+ * the update to be dispatched, but dispatches it immediately,
120
+ * and after `await`ing this method you can be certain that the update
121
+ * was fully processed by all the registered handlers, including children.
122
+ *
123
+ * @param update Update to process
124
+ * @returns Whether the update was handled
125
+ */
126
+ dispatchUpdateNow(update: ParsedUpdate): Promise<boolean>;
127
+ private _dispatchUpdateNowImpl;
128
+ /**
129
+ * Add an update handler to a given handlers group
130
+ *
131
+ * @param handler Update handler
132
+ * @param group Handler group index
133
+ */
134
+ addUpdateHandler(handler: UpdateHandler, group?: number): void;
135
+ /**
136
+ * Remove an update handler (or handlers) from a given
137
+ * handler group.
138
+ *
139
+ * @param handler Update handler to remove, its name or `'all'` to remove all
140
+ * @param group Handler group index (-1 to affect all groups)
141
+ */
142
+ removeUpdateHandler(handler: UpdateHandler | UpdateHandler['name'] | 'all', group?: number): void;
143
+ /**
144
+ * Register an error handler.
145
+ *
146
+ * This is used locally within this dispatcher
147
+ * (does not affect children/parent) whenever
148
+ * an error is thrown inside an update handler.
149
+ * Not used for raw update handlers
150
+ *
151
+ * When an error is thrown, but there is no error
152
+ * handler, it is propagated to `TelegramClient`.
153
+ *
154
+ * There can be at most one error handler.
155
+ * Pass `null` to remove it.
156
+ *
157
+ * @param handler Error handler
158
+ */
159
+ onError<T = {}>(handler: ((err: Error, update: ParsedUpdate & T, state?: UpdateState<State>) => MaybeAsync<boolean>) | null): void;
160
+ /**
161
+ * Register pre-update middleware.
162
+ *
163
+ * This is used locally within this dispatcher
164
+ * (does not affect children/parent) before processing
165
+ * an update, and can be used to skip this update.
166
+ *
167
+ * There can be at most one pre-update middleware.
168
+ * Pass `null` to remove it.
169
+ *
170
+ * @param handler Pre-update middleware
171
+ */
172
+ onPreUpdate<T = {}>(handler: ((update: ParsedUpdate & T, state?: UpdateState<State>) => MaybeAsync<PropagationAction | void>) | null): void;
173
+ /**
174
+ * Register post-update middleware.
175
+ *
176
+ * This is used locally within this dispatcher
177
+ * (does not affect children/parent) after successfully
178
+ * processing an update, and can be used for stats.
179
+ *
180
+ * There can be at most one post-update middleware.
181
+ * Pass `null` to remove it.
182
+ *
183
+ * @param handler Pre-update middleware
184
+ */
185
+ onPostUpdate<T = {}>(handler: ((handled: boolean, update: ParsedUpdate & T, state?: UpdateState<State>) => MaybeAsync<void>) | null): void;
186
+ /**
187
+ * Set error handler that will propagate
188
+ * the error to the parent dispatcher
189
+ */
190
+ propagateErrorToParent(err: Error, update: ParsedUpdate, state?: UpdateState<State>): MaybeAsync<boolean>;
191
+ /**
192
+ * Get parent dispatcher if current dispatcher is a child.
193
+ * Otherwise, return `null`
194
+ */
195
+ get parent(): Dispatcher<any> | null;
196
+ private _prepareChild;
197
+ /**
198
+ * Add a child dispatcher.
199
+ *
200
+ * Child dispatchers are called when dispatching updates
201
+ * just like normal, except they can be controlled
202
+ * externally. Additionally, child dispatcher have their own
203
+ * independent handler grouping that does not interfere with parent's,
204
+ * including `StopPropagation` (i.e. returning `StopPropagation` will
205
+ * still call children. To entirely stop, use `StopChildrenPropagation`)
206
+ *
207
+ * Note that child dispatchers share the same TelegramClient and
208
+ * storage binding as the parent, don't bind them manually.
209
+ *
210
+ * @param child Other dispatcher
211
+ */
212
+ addChild(child: Dispatcher<State>): void;
213
+ /**
214
+ * Add a dispatcher as a scene with a non-scoped state.
215
+ *
216
+ * Scoped storage for a scene means that the scene will
217
+ * have its own storage, that is only available within
218
+ * the scene and does not interfere with global state.
219
+ * Non-scoped, on the other hand, is the same state as
220
+ * the one used for the root dispatcher
221
+ *
222
+ * @param uid UID of the scene
223
+ * @param scene Dispatcher representing the scene
224
+ * @param scoped Whether to use scoped FSM storage for the scene
225
+ */
226
+ addScene(scene: Dispatcher<State>, scoped: false): void;
227
+ /**
228
+ * Add a dispatcher as a scene with a scoped state
229
+ *
230
+ * Scoped storage for a scene means that the scene will
231
+ * have its own storage, that is only available within
232
+ * the scene and does not interfere with global state.
233
+ * Non-scoped, on the other hand, is the same state as
234
+ * the one used for the root dispatcher
235
+ *
236
+ * @param uid UID of the scene
237
+ * @param scene Dispatcher representing the scene
238
+ * @param scoped Whether to use scoped FSM storage for the scene (defaults to `true`)
239
+ */
240
+ addScene(scene: Dispatcher<any>, scoped?: true): void;
241
+ /**
242
+ * Remove a child dispatcher.
243
+ *
244
+ * Removing child dispatcher will also remove
245
+ * child dispatcher's client binding.
246
+ *
247
+ * If the provided dispatcher is not a child of current,
248
+ * this function will silently fail.
249
+ *
250
+ * @param child Other dispatcher
251
+ */
252
+ removeChild(child: Dispatcher<any>): void;
253
+ private _unparent;
254
+ /**
255
+ * Extend current dispatcher by copying other dispatcher's
256
+ * handlers and children to the current.
257
+ *
258
+ * This might be more efficient for simple cases, but do note that the handler
259
+ * groups, children and scenes will get merged (unlike {@link addChild},
260
+ * where they are independent). Also note that unlike with children,
261
+ * when adding handlers to `other` *after* you extended
262
+ * the current dispatcher, changes will not be applied.
263
+ *
264
+ * @param other Other dispatcher
265
+ */
266
+ extend(other: Dispatcher<State>): void;
267
+ /**
268
+ * Create a clone of this dispatcher, that has the same handlers,
269
+ * but is not bound to a client or to a parent dispatcher.
270
+ *
271
+ * Custom Storage and key delegate are copied too.
272
+ *
273
+ * By default, child dispatchers (and scenes) are ignored, since
274
+ * that requires cloning every single one of them recursively
275
+ * and then binding them back.
276
+ *
277
+ * @param children Whether to also clone children and scenes
278
+ */
279
+ clone(children?: boolean): Dispatcher<State>;
280
+ /**
281
+ * Get update state object for the given key.
282
+ *
283
+ * For custom keys, use prefix starting with `$` to avoid
284
+ * clashing with other keys (scene name can't start with `$`)
285
+ *
286
+ * @param key State storage key
287
+ * @template S State type, defaults to dispatcher's state type. Only checked at compile-time
288
+ */
289
+ getState<S extends object = State>(key: string): UpdateState<S>;
290
+ /**
291
+ * Get update state object for the given object.
292
+ *
293
+ * Equivalent to `getState(string)`, but derives
294
+ * the key with the registered {@link StateKeyDelegate},
295
+ * and since it could be async, this method is async too.
296
+ *
297
+ * @param object Object for which the state should be fetched
298
+ * @template S State type, defaults to dispatcher's state type. Only checked at compile-time
299
+ */
300
+ getState<S extends object = State>(object: Parameters<StateKeyDelegate>[0]): Promise<UpdateState<S>>;
301
+ /**
302
+ * Get global state.
303
+ *
304
+ * This will load the state for the given object
305
+ * ignoring local custom storage, key delegate and scene scope.
306
+ */
307
+ getGlobalState<T extends object>(object: Parameters<StateKeyDelegate>[0]): Promise<UpdateState<T>>;
308
+ private _addKnownHandler;
309
+ /**
310
+ * Register a raw update handler without any filters
311
+ *
312
+ * @param handler Raw update handler
313
+ * @param group Handler group index
314
+ */
315
+ onRawUpdate(handler: RawUpdateHandler['callback'], group?: number): void;
316
+ /**
317
+ * Register a raw update handler without any filters
318
+ *
319
+ * @param filter Update filter
320
+ * @param handler Raw update handler
321
+ * @param group Handler group index
322
+ */
323
+ onRawUpdate(filter: RawUpdateHandler['check'], handler: RawUpdateHandler['callback'], group?: number): void;
324
+ /**
325
+ * Register a new message handler without any filters
326
+ *
327
+ * @param handler New message handler
328
+ * @param group Handler group index
329
+ */
330
+ onNewMessage(handler: NewMessageHandler<MessageContext, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
331
+ /**
332
+ * Register a new message handler with a filter
333
+ *
334
+ * @param filter Update filter
335
+ * @param handler New message handler
336
+ * @param group Handler group index
337
+ */
338
+ onNewMessage<Mod>(filter: UpdateFilter<MessageContext, Mod, State>, handler: NewMessageHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
339
+ /**
340
+ * Register a new message handler with a filter
341
+ *
342
+ * @param filter Update filter
343
+ * @param handler New message handler
344
+ * @param group Handler group index
345
+ */
346
+ onNewMessage<Mod>(filter: UpdateFilter<MessageContext, Mod>, handler: NewMessageHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
347
+ /**
348
+ * Register an edit message handler without any filters
349
+ *
350
+ * @param handler Edit message handler
351
+ * @param group Handler group index
352
+ */
353
+ onEditMessage(handler: EditMessageHandler<MessageContext, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
354
+ /**
355
+ * Register an edit message handler with a filter
356
+ *
357
+ * @param filter Update filter
358
+ * @param handler Edit message handler
359
+ * @param group Handler group index
360
+ */
361
+ onEditMessage<Mod>(filter: UpdateFilter<MessageContext, Mod, State>, handler: EditMessageHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
362
+ /**
363
+ * Register an edit message handler with a filter
364
+ *
365
+ * @param filter Update filter
366
+ * @param handler Edit message handler
367
+ * @param group Handler group index
368
+ */
369
+ onEditMessage<Mod>(filter: UpdateFilter<MessageContext, Mod>, handler: EditMessageHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
370
+ /**
371
+ * Register a message group handler without any filters
372
+ *
373
+ * @param handler Message group handler
374
+ * @param group Handler group index
375
+ */
376
+ onMessageGroup(handler: MessageGroupHandler<MessageContext, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
377
+ /**
378
+ * Register a message group handler with a filter
379
+ *
380
+ * @param filter Update filter
381
+ * @param handler Message group handler
382
+ * @param group Handler group index
383
+ */
384
+ onMessageGroup<Mod>(filter: UpdateFilter<MessageContext, Mod, State>, handler: MessageGroupHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
385
+ /**
386
+ * Register a message group handler with a filter
387
+ *
388
+ * @param filter Update filter
389
+ * @param handler Message group handler
390
+ * @param group Handler group index
391
+ */
392
+ onMessageGroup<Mod>(filter: UpdateFilter<MessageContext, Mod>, handler: MessageGroupHandler<filters.Modify<MessageContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
393
+ /**
394
+ * Register a delete message handler without any filters
395
+ *
396
+ * @param handler Delete message handler
397
+ * @param group Handler group index
398
+ */
399
+ onDeleteMessage(handler: DeleteMessageHandler['callback'], group?: number): void;
400
+ /**
401
+ * Register a delete message handler with a filter
402
+ *
403
+ * @param filter Update filter
404
+ * @param handler Delete message handler
405
+ * @param group Handler group index
406
+ */
407
+ onDeleteMessage<Mod>(filter: UpdateFilter<UpdateContext<DeleteMessageUpdate>, Mod>, handler: DeleteMessageHandler<filters.Modify<UpdateContext<DeleteMessageUpdate>, Mod>>['callback'], group?: number): void;
408
+ /**
409
+ * Register a chat member update handler without any filters
410
+ *
411
+ * @param handler Chat member update handler
412
+ * @param group Handler group index
413
+ */
414
+ onChatMemberUpdate(handler: ChatMemberUpdateHandler['callback'], group?: number): void;
415
+ /**
416
+ * Register a chat member update handler with a filter
417
+ *
418
+ * @param filter Update filter
419
+ * @param handler Chat member update handler
420
+ * @param group Handler group index
421
+ */
422
+ onChatMemberUpdate<Mod>(filter: UpdateFilter<UpdateContext<ChatMemberUpdate>, Mod>, handler: ChatMemberUpdateHandler<filters.Modify<UpdateContext<ChatMemberUpdate>, Mod>>['callback'], group?: number): void;
423
+ /**
424
+ * Register an inline query handler without any filters
425
+ *
426
+ * @param handler Inline query handler
427
+ * @param group Handler group index
428
+ */
429
+ onInlineQuery(handler: InlineQueryHandler['callback'], group?: number): void;
430
+ /**
431
+ * Register an inline query handler with a filter
432
+ *
433
+ * @param filter Update filter
434
+ * @param handler Inline query handler
435
+ * @param group Handler group index
436
+ */
437
+ onInlineQuery<Mod>(filter: UpdateFilter<InlineQueryContext, Mod>, handler: InlineQueryHandler<filters.Modify<InlineQueryContext, Mod>>['callback'], group?: number): void;
438
+ /**
439
+ * Register a chosen inline result handler without any filters
440
+ *
441
+ * @param handler Chosen inline result handler
442
+ * @param group Handler group index
443
+ */
444
+ onChosenInlineResult(handler: ChosenInlineResultHandler['callback'], group?: number): void;
445
+ /**
446
+ * Register a chosen inline result handler with a filter
447
+ *
448
+ * @param filter Update filter
449
+ * @param handler Chosen inline result handler
450
+ * @param group Handler group index
451
+ */
452
+ onChosenInlineResult<Mod>(filter: UpdateFilter<ChosenInlineResultContext, Mod>, handler: ChosenInlineResultHandler<filters.Modify<ChosenInlineResultContext, Mod>>['callback'], group?: number): void;
453
+ /**
454
+ * Register a callback query handler without any filters
455
+ *
456
+ * @param handler Callback query handler
457
+ * @param group Handler group index
458
+ */
459
+ onCallbackQuery(handler: CallbackQueryHandler<CallbackQueryContext, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
460
+ /**
461
+ * Register a callback query handler with a filter
462
+ *
463
+ * @param filter Update filter
464
+ * @param handler Callback query handler
465
+ * @param group Handler group index
466
+ */
467
+ onCallbackQuery<Mod>(filter: UpdateFilter<CallbackQueryContext, Mod, State>, handler: CallbackQueryHandler<filters.Modify<CallbackQueryContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
468
+ /**
469
+ * Register a callback query handler with a filter
470
+ *
471
+ * @param filter Update filter
472
+ * @param handler Callback query handler
473
+ * @param group Handler group index
474
+ */
475
+ onCallbackQuery<Mod>(filter: UpdateFilter<CallbackQueryContext, Mod>, handler: CallbackQueryHandler<filters.Modify<CallbackQueryContext, Mod>, State extends never ? never : UpdateState<State>>['callback'], group?: number): void;
476
+ /**
477
+ * Register a poll update handler without any filters
478
+ *
479
+ * @param handler Poll update handler
480
+ * @param group Handler group index
481
+ */
482
+ onPollUpdate(handler: PollUpdateHandler['callback'], group?: number): void;
483
+ /**
484
+ * Register a poll update handler with a filter
485
+ *
486
+ * @param filter Update filter
487
+ * @param handler Poll update handler
488
+ * @param group Handler group index
489
+ */
490
+ onPollUpdate<Mod>(filter: UpdateFilter<UpdateContext<PollUpdate>, Mod>, handler: PollUpdateHandler<filters.Modify<UpdateContext<PollUpdate>, Mod>>['callback'], group?: number): void;
491
+ /**
492
+ * Register a poll vote handler without any filters
493
+ *
494
+ * @param handler Poll vote handler
495
+ * @param group Handler group index
496
+ */
497
+ onPollVote(handler: PollVoteHandler['callback'], group?: number): void;
498
+ /**
499
+ * Register a poll vote handler with a filter
500
+ *
501
+ * @param filter Update filter
502
+ * @param handler Poll vote handler
503
+ * @param group Handler group index
504
+ */
505
+ onPollVote<Mod>(filter: UpdateFilter<UpdateContext<PollVoteUpdate>, Mod>, handler: PollVoteHandler<filters.Modify<UpdateContext<PollVoteUpdate>, Mod>>['callback'], group?: number): void;
506
+ /**
507
+ * Register an user status update handler without any filters
508
+ *
509
+ * @param handler User status update handler
510
+ * @param group Handler group index
511
+ */
512
+ onUserStatusUpdate(handler: UserStatusUpdateHandler['callback'], group?: number): void;
513
+ /**
514
+ * Register an user status update handler with a filter
515
+ *
516
+ * @param filter Update filter
517
+ * @param handler User status update handler
518
+ * @param group Handler group index
519
+ */
520
+ onUserStatusUpdate<Mod>(filter: UpdateFilter<UpdateContext<UserStatusUpdate>, Mod>, handler: UserStatusUpdateHandler<filters.Modify<UpdateContext<UserStatusUpdate>, Mod>>['callback'], group?: number): void;
521
+ /**
522
+ * Register an user typing handler without any filters
523
+ *
524
+ * @param handler User typing handler
525
+ * @param group Handler group index
526
+ */
527
+ onUserTyping(handler: UserTypingHandler['callback'], group?: number): void;
528
+ /**
529
+ * Register an user typing handler with a filter
530
+ *
531
+ * @param filter Update filter
532
+ * @param handler User typing handler
533
+ * @param group Handler group index
534
+ */
535
+ onUserTyping<Mod>(filter: UpdateFilter<UpdateContext<UserTypingUpdate>, Mod>, handler: UserTypingHandler<filters.Modify<UpdateContext<UserTypingUpdate>, Mod>>['callback'], group?: number): void;
536
+ /**
537
+ * Register a history read handler without any filters
538
+ *
539
+ * @param handler History read handler
540
+ * @param group Handler group index
541
+ */
542
+ onHistoryRead(handler: HistoryReadHandler['callback'], group?: number): void;
543
+ /**
544
+ * Register a history read handler with a filter
545
+ *
546
+ * @param filter Update filter
547
+ * @param handler History read handler
548
+ * @param group Handler group index
549
+ */
550
+ onHistoryRead<Mod>(filter: UpdateFilter<UpdateContext<HistoryReadUpdate>, Mod>, handler: HistoryReadHandler<filters.Modify<UpdateContext<HistoryReadUpdate>, Mod>>['callback'], group?: number): void;
551
+ /**
552
+ * Register a bot stopped handler without any filters
553
+ *
554
+ * @param handler Bot stopped handler
555
+ * @param group Handler group index
556
+ */
557
+ onBotStopped(handler: BotStoppedHandler['callback'], group?: number): void;
558
+ /**
559
+ * Register a bot stopped handler with a filter
560
+ *
561
+ * @param filter Update filter
562
+ * @param handler Bot stopped handler
563
+ * @param group Handler group index
564
+ */
565
+ onBotStopped<Mod>(filter: UpdateFilter<UpdateContext<BotStoppedUpdate>, Mod>, handler: BotStoppedHandler<filters.Modify<UpdateContext<BotStoppedUpdate>, Mod>>['callback'], group?: number): void;
566
+ /**
567
+ * Register a bot chat join request handler without any filters
568
+ *
569
+ * @param handler Bot chat join request handler
570
+ * @param group Handler group index
571
+ */
572
+ onBotChatJoinRequest(handler: BotChatJoinRequestHandler['callback'], group?: number): void;
573
+ /**
574
+ * Register a bot chat join request handler with a filter
575
+ *
576
+ * @param filter Update filter
577
+ * @param handler Bot chat join request handler
578
+ * @param group Handler group index
579
+ */
580
+ onBotChatJoinRequest<Mod>(filter: UpdateFilter<ChatJoinRequestUpdateContext, Mod>, handler: BotChatJoinRequestHandler<filters.Modify<ChatJoinRequestUpdateContext, Mod>>['callback'], group?: number): void;
581
+ /**
582
+ * Register a chat join request handler without any filters
583
+ *
584
+ * @param handler Chat join request handler
585
+ * @param group Handler group index
586
+ */
587
+ onChatJoinRequest(handler: ChatJoinRequestHandler['callback'], group?: number): void;
588
+ /**
589
+ * Register a chat join request handler with a filter
590
+ *
591
+ * @param filter Update filter
592
+ * @param handler Chat join request handler
593
+ * @param group Handler group index
594
+ */
595
+ onChatJoinRequest<Mod>(filter: UpdateFilter<UpdateContext<ChatJoinRequestUpdate>, Mod>, handler: ChatJoinRequestHandler<filters.Modify<UpdateContext<ChatJoinRequestUpdate>, Mod>>['callback'], group?: number): void;
596
+ /**
597
+ * Register a pre checkout query handler without any filters
598
+ *
599
+ * @param handler Pre checkout query handler
600
+ * @param group Handler group index
601
+ */
602
+ onPreCheckoutQuery(handler: PreCheckoutQueryHandler['callback'], group?: number): void;
603
+ /**
604
+ * Register a pre checkout query handler with a filter
605
+ *
606
+ * @param filter Update filter
607
+ * @param handler Pre checkout query handler
608
+ * @param group Handler group index
609
+ */
610
+ onPreCheckoutQuery<Mod>(filter: UpdateFilter<PreCheckoutQueryContext, Mod>, handler: PreCheckoutQueryHandler<filters.Modify<PreCheckoutQueryContext, Mod>>['callback'], group?: number): void;
611
+ /**
612
+ * Register a story update handler without any filters
613
+ *
614
+ * @param handler Story update handler
615
+ * @param group Handler group index
616
+ */
617
+ onStoryUpdate(handler: StoryUpdateHandler['callback'], group?: number): void;
618
+ /**
619
+ * Register a story update handler with a filter
620
+ *
621
+ * @param filter Update filter
622
+ * @param handler Story update handler
623
+ * @param group Handler group index
624
+ */
625
+ onStoryUpdate<Mod>(filter: UpdateFilter<UpdateContext<StoryUpdate>, Mod>, handler: StoryUpdateHandler<filters.Modify<UpdateContext<StoryUpdate>, Mod>>['callback'], group?: number): void;
626
+ /**
627
+ * Register a delete story handler without any filters
628
+ *
629
+ * @param handler Delete story handler
630
+ * @param group Handler group index
631
+ */
632
+ onDeleteStory(handler: DeleteStoryHandler['callback'], group?: number): void;
633
+ /**
634
+ * Register a delete story handler with a filter
635
+ *
636
+ * @param filter Update filter
637
+ * @param handler Delete story handler
638
+ * @param group Handler group index
639
+ */
640
+ onDeleteStory<Mod>(filter: UpdateFilter<UpdateContext<DeleteStoryUpdate>, Mod>, handler: DeleteStoryHandler<filters.Modify<UpdateContext<DeleteStoryUpdate>, Mod>>['callback'], group?: number): void;
641
+ }