import { HttpProxySettings as FumanHttpProxySettings, ITcpConnection, SocksProxySettings, TcpEndpoint } from '@fuman/net'; import { ITelegramConnection, TelegramTransport, BaseMtProxyTransport, IntermediatePacketCodec } from '@mtcute/core'; import { BasicDcOption } from '@mtcute/core/utils.js'; export type { SocksProxySettings } from '@fuman/net'; export { HttpProxyConnectionError, SocksProxyConnectionError } from '@fuman/net'; export type { MtProxySettings } from '@mtcute/core'; export interface HttpProxySettings extends FumanHttpProxySettings { /** * Whether this is a HTTPS proxy (by default it is regular HTTP). */ tls?: boolean; } export declare class HttpProxyTcpTransport implements TelegramTransport { readonly proxy: HttpProxySettings; constructor(proxy: HttpProxySettings); connect(dc: BasicDcOption, abortSignal: AbortSignal): Promise; packetCodec(): IntermediatePacketCodec; } export declare class SocksProxyTcpTransport implements TelegramTransport { readonly proxy: SocksProxySettings; constructor(proxy: SocksProxySettings); connect(dc: BasicDcOption, abortSignal: AbortSignal): Promise; packetCodec(): IntermediatePacketCodec; } export declare class MtProxyTcpTransport extends BaseMtProxyTransport { _connectTcp(endpoint: TcpEndpoint, abortSignal: AbortSignal): Promise; } /** * Create a proxy transport based on an url. * * Supported URLs (self-explanatory): * - `socks4://user:pass@1.2.3.4:80` * - `socks5://user:pass@1.2.3.4:80` * - `http://user:pass@1.2.3.4:80` * - `https://user:pass@1.2.3.4:443` * - `https://t.me/proxy?server=example.com&port=443&secret=3dpBFlW2hP6Hq_WOwiNeKBY` * @returns Transport for that proxy */ export declare const proxyTransportFromUrl: (url: string) => TelegramTransport;