UNPKG

tdlib-native

Version:

🚀 Telegram TDLib native nodejs wrapper

159 lines (158 loc) • 3.8 kB
import { TDLib } from './shared/client'; import { error, Update, $AsyncApi, $SyncApi, $MethodsDict, typename } from './generated/types'; import { Observable } from './event-bus'; import { TDLibOptions } from './options'; type OmitType<T extends { [typename]: string; }> = Omit<T, typename>; /** * * * @export * @class TDError * @extends {Error} * @implements {error} */ export declare class TDError extends Error implements error { readonly [typename] = "error"; readonly code: number; readonly method: string; readonly parameters: unknown; name: string; /** * Creates an instance of TDError. * @param {string} message * @param {*} [options={}] * @memberof TDError */ constructor(message: string, { code, method, parameters }?: { code?: number | undefined; method?: string | undefined; parameters?: unknown; }); /** * * * @returns {object} * @memberof TDError */ toJSON(): { _: string; name: string; message: string; code: number; method: string; parameters: unknown; }; } /** * * * @export * @class Client */ export declare class Client { private readonly _client; private readonly _requests; private readonly _updates; private readonly _adapter; private _state; /** * Creates an instance of Client. * @param {TDLib} adapter * @memberof Client */ constructor(adapter: TDLib); readonly api: $AsyncApi; readonly syncApi: $SyncApi; readonly _tdlibOptions: TDLibOptions; /** * * * @template {keyof $AsyncApi} T * @param {T} method * @param {object} parameters * @returns {object} {Promise<ReturnType<$AsyncApi[T]>>} * @throws {TDError} - {@link TDError} * @memberof Client */ invoke<T extends keyof $AsyncApi>(method: T, parameters: Parameters<$AsyncApi[T]>[0]): Promise<ReturnType<$MethodsDict[T]>>; /** * Disables logging of TDLib instance * * @static * @param {TDLib} lib * @memberof Client * @returns {void} */ static disableLogs(lib: TDLib): void; /** * * * @template {keyof $SyncApi} T * @param {TDLib|Client} executor * @param {T} method * @param {object} parameters * @returns {object} {Promise<ReturnType<$SyncMethodsDict[T]>>} * @throws {TDError} - {@link TDError} * @memberof Client */ static execute<T extends keyof $SyncApi>(executor: TDLib | Client, method: T, parameters: Parameters<$SyncApi[T]>[0]): ReturnType<$SyncApi[T]>; /** * * * @template {keyof $SyncApi} T * @param {T} method * @param {object} parameters * @returns {object} {Promise<ReturnType<$SyncApi[T]>>} * @throws {TDError} - {@link TDError} * @memberof Client */ execute<T extends keyof $SyncApi>(method: T, parameters: OmitType<Parameters<$MethodsDict[T]>[0]>): ReturnType<$SyncApi[T]>; private _running; /** * * * @private * @returns {Promise<void>} * @memberof Client */ private _thread; /** * * @see https://core.telegram.org/tdlib/options * @readonly * @memberof Client */ get tdlibOptions(): TDLibOptions; /** * * * @readonly * @type {Observable<Update>} * @memberof Client */ get updates(): Observable<Update>; /** * * * @returns {Promise<void>} * @memberof Client */ start(): Promise<void>; /** * * * @returns {this} * @memberof Client */ pause(): Promise<void>; /** * * * @returns {void} * @memberof Client */ destroy(): Promise<void>; } export {};