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 = Omit; /** * * * @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>} * @throws {TDError} - {@link TDError} * @memberof Client */ invoke(method: T, parameters: Parameters<$AsyncApi[T]>[0]): Promise>; /** * 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>} * @throws {TDError} - {@link TDError} * @memberof Client */ static execute(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>} * @throws {TDError} - {@link TDError} * @memberof Client */ execute(method: T, parameters: OmitType[0]>): ReturnType<$SyncApi[T]>; private _running; /** * * * @private * @returns {Promise} * @memberof Client */ private _thread; /** * * @see https://core.telegram.org/tdlib/options * @readonly * @memberof Client */ get tdlibOptions(): TDLibOptions; /** * * * @readonly * @type {Observable} * @memberof Client */ get updates(): Observable; /** * * * @returns {Promise} * @memberof Client */ start(): Promise; /** * * * @returns {this} * @memberof Client */ pause(): Promise; /** * * * @returns {void} * @memberof Client */ destroy(): Promise; } export {};