@tgsnake/core
Version:
Pure Telegram MTProto library for nodejs
84 lines (83 loc) • 3.23 kB
TypeScript
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;
}