///
import * as net from 'net';
import { IProxyConnection } from '../interfaces/proxy-connection';
import { ISOCKS5Response } from '../socks5/socks5-response';
import { SOCKS5GreetingRequest } from '../socks5/socks5-greeting-request';
import { SOCKS5GreetingResponse } from '../socks5/socks5-greeting-response';
import { SOCKS5ConnectionRequest } from '../socks5/socks5-connection-request';
import { SOCKS5ConnectionResponse } from '../socks5/socks5-connection-response';
import { SOCKS5AuthenticationRequest } from '../socks5/socks5-authentication-request';
import { SOCKS5AuthenticationResponse } from '../socks5/socks5-authentication-response';
import { ISocketBuilder } from '../interfaces/socket-builder';
export declare class SOCKS5ProxyConnection implements IProxyConnection {
protected sourceSocket: net.Socket;
protected socketBuilder: ISocketBuilder;
protected destinationSocket: net.Socket;
protected greetingRequest: SOCKS5GreetingRequest;
protected greetingResponse: SOCKS5GreetingResponse;
protected authenticationRequest: SOCKS5AuthenticationRequest;
protected authenticationResponse: SOCKS5AuthenticationResponse;
protected connectionRequest: SOCKS5ConnectionRequest;
protected connectionResponse: SOCKS5ConnectionResponse;
constructor(sourceSocket: net.Socket, socketBuilder: ISocketBuilder);
close(): Promise;
onData(buffer: Buffer): Promise;
protected handleGreetingRequest(buffer: Buffer): void;
protected handleAuthenticationRequest(buffer: Buffer): void;
protected handleConnectionRequest(buffer: Buffer): Promise;
protected sendResponse(response: ISOCKS5Response): void;
}