UNPKG

@tgsnake/core

Version:

Pure Telegram MTProto library for nodejs

84 lines (83 loc) 3.23 kB
import { Semaphore, Buffer } from '../platform.node.js'; import { Raw } from '../raw/index.js'; import { AbstractSession } from '../storage/index.js'; import { SecretChat } from '../session/secretChats/index.js'; import { TCP } from '../connection/connection.js'; import * as _Auth from './Auth.js'; import * as Files from '../file/index.js'; import type { ProxyInterface } from '../connection/connection.js'; import type { Session } from '../session/index.js'; export interface ClientOptions { proxy?: ProxyInterface; testMode?: boolean; ipv6?: boolean; deviceModel?: string; systemVersion?: string; appVersion?: string; systemLangCode?: string; langCode?: string; sleepTreshold?: number; maxRetries?: number; isCdn?: boolean; noUpdates?: boolean; takeout?: boolean; tcp?: TCP; local?: boolean; maxConcurrentTransmissions?: number; maxReconnectRetries?: number; defaultDCId?: number; } export declare class Client { _apiId: number; _apiHash: string; _storage: AbstractSession; _testMode: boolean; _proxy?: ProxyInterface; _ipv6: boolean; _deviceModel: string; _systemVersion: string; _appVersion: string; _systemLangCode: string; _langCode: string; _maxRetries: number; _isCdn: boolean; _sleepTreshold: number; _takeout: boolean; _noUpdates: boolean; _takeoutId: bigint; _dcId: string; _defaultDcId: number; _session: Session; _isConnected: boolean; _connectionMode: number; _local: boolean; _secretChat: SecretChat; _getFileSemaphore: Semaphore; _saveFileSemaphore: Semaphore; _maxReconnectRetries: number; _me?: Raw.users.UserFull; private _handler; constructor(session: AbstractSession, apiHash: string, apiId: number, clientOptions?: ClientOptions); exportSession(): Promise<string>; invoke<T extends Raw.TypesTLRequest>(query: T, retries?: number, timeout?: number, sleepTreshold?: number): Promise<T['__response__']>; logout(): Promise<void>; start(auth?: _Auth.SigInBot | _Auth.SigInUser): Promise<Raw.users.UserFull>; connect(): Promise<void>; handleUpdate(update: Raw.TypeUpdates): Promise<Raw.TypeUpdates>; private _handleSecretChatUpdate; addHandler(callback: { (update: Raw.TypeUpdates): void; }): undefined; fetchPeers(peers: Array<Raw.TypeUser | Raw.TypeChat>): Promise<boolean>; resolvePeer(peerId: bigint | string): Promise<Raw.InputPeerUser | Raw.InputPeerChat | Raw.InputPeerChannel | Raw.InputUserSelf>; startSecretChat(chatId: bigint | string): Promise<Raw.TypeEncryptedChat>; destroySecretChat(chatId: number): Promise<boolean>; saveFile({ source, fileName, fileId, filePart, progress, }: Files.SaveFileParams): Promise<Raw.InputFile | Raw.InputFileBig | undefined>; saveFileStream({ source, fileName, progress, }: Files.SaveFileStreamParams): Promise<Raw.InputFile | Raw.InputFileBig | undefined>; downloadStream({ file, dcId, limit, offset }: Files.DownloadParam): Files.File; download({ file, dcId, limit, offset }: Files.DownloadParam): Promise<Buffer>; toJSON(): { [key: string]: any; }; toString(): string; }