/// import { Logger, PromisedNetSockets, PromisedWebSockets } from "../../extensions"; import { AbridgedPacketCodec } from "./TCPAbridged"; import { FullPacketCodec } from "./TCPFull"; import { ProxyInterface } from "./TCPMTProxy"; interface ConnectionInterfaceParams { ip: string; port: number; dcId: number; loggers: Logger; proxy?: ProxyInterface; socket: typeof PromisedNetSockets | typeof PromisedWebSockets; testServers: boolean; } /** * The `Connection` class is a wrapper around ``asyncio.open_connection``. * * Subclasses will implement different transport modes as atomic operations, * which this class eases doing since the exposed interface simply puts and * gets complete data payloads to and from queues. * * The only error that will raise from send and receive methods is * ``ConnectionError``, which will raise when attempting to send if * the client is disconnected (includes remote disconnections). */ declare class Connection { PacketCodecClass?: typeof AbridgedPacketCodec | typeof FullPacketCodec; readonly _ip: string; readonly _port: number; _dcId: number; _log: Logger; _proxy?: ProxyInterface; private _connected; private _sendTask?; private _recvTask?; protected _codec: any; protected _obfuscation: any; private readonly _sendArray; private _recvArray; socket: PromisedNetSockets | PromisedWebSockets; _testServers: boolean; constructor({ ip, port, dcId, loggers, proxy, socket, testServers, }: ConnectionInterfaceParams); _connect(): Promise; connect(): Promise; disconnect(): Promise; send(data: Buffer): Promise; recv(): Promise; _sendLoop(): Promise; _recvLoop(): Promise; _initConn(): Promise; _send(data: Buffer): Promise; _recv(): Promise; toString(): string; } declare class ObfuscatedConnection extends Connection { ObfuscatedIO: any; _initConn(): Promise; _send(data: Buffer): Promise; _recv(): Promise; } declare class PacketCodec { private _conn; constructor(connection: Buffer); encodePacket(data: Buffer): void; readPacket(reader: PromisedNetSockets | PromisedWebSockets): Promise; } export { Connection, PacketCodec, ObfuscatedConnection };