tgsnake
Version:
Telegram MTProto framework for nodejs.
49 lines (48 loc) • 1.87 kB
TypeScript
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;
}