UNPKG

tgsnake

Version:

Telegram MTProto framework for nodejs.

49 lines (48 loc) 1.87 kB
import { type Raw } from '../platform.node.js'; import type { Snake } from '../Client/Snake.js'; import type { Update } from '../TL/Updates/Update.js'; export interface Props { client: Snake; update?: Raw.TypeUpdates; } export type CallbackFn = (props: Props) => any | Promise<any>; export type CallbackFnLogin = (props: Props) => Raw.users.UserFull | Promise<Raw.users.UserFull>; export type CallbackFnUpdate = (props: Props) => Array<Update | Raw.TypeUpdates> | Promise<Array<Update | Raw.TypeUpdates>>; export type PluginApiFn = (PluginApi: TgsnakeApi) => any | Promise<any>; export type PluginApiObj = { init: PluginApiFn; }; export interface ListGetterEventHandler { beforeStart: ReadonlyArray<CallbackFn>; afterStart: ReadonlyArray<CallbackFn>; onLogin: ReadonlyArray<CallbackFnLogin>; gracefullyStop: ReadonlyArray<CallbackFn>; beforeParseUpdate: ReadonlyArray<CallbackFn>; onParseUpdate: ReadonlyArray<CallbackFnUpdate>; afterParseUpdate: ReadonlyArray<CallbackFn>; } export interface ListSetterEventHandler { beforeStart: CallbackFn; afterStart: CallbackFn; onLogin: CallbackFnLogin; gracefullyStop: CallbackFn; beforeParseUpdate: CallbackFn; onParseUpdate: CallbackFnUpdate; afterParseUpdate: CallbackFn; } export declare class TgsnakeApi { private _beforeStartHandler; private _afterStartHandler; private _onLoginHandler; private _gracefullyStopHandler; private _beforeParseUpdateHandler; private _onParseUpdateHandler; private _afterParseUpdateHandler; constructor(); addEventHandler<K extends keyof ListSetterEventHandler>(filter: K, func: ListSetterEventHandler[K]): void; getEventHandler<K extends keyof ListGetterEventHandler>(filter: K): ListGetterEventHandler[K]; toJSON(): { [key: string]: any; }; toString(): string; }