tdlib-native
Version:
🚀 Telegram TDLib native nodejs wrapper
159 lines (158 loc) • 3.8 kB
TypeScript
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 {};