/// import * as net from 'net'; import * as tls from 'tls'; import { IProxyServer } from './interfaces/proxy-server'; import { OnPreConnectionDataResult } from './models/on-pre-connection-data-result'; export declare abstract class ProxyServer implements IProxyServer { protected hostname: string; protected port: number; protected server: T; constructor(hostname: string, port: number); listen(): void; protected closeSocket(socket: net.Socket | tls.TLSSocket): void; protected connectToDestinationSocket(sourceSocket: net.Socket | tls.TLSSocket, destinationHostname: string, destinationPort: number): net.Socket | tls.TLSSocket; protected abstract createServer(onConnectionFn: (socket: net.Socket | tls.TLSSocket) => void): T; protected abstract createDestinationSocket(destinationHostname: string, destinationPort: number, sourceSocket: net.Socket | tls.TLSSocket): net.Socket | tls.TLSSocket; protected handleSocketConnection(sourceSocket: net.Socket | tls.TLSSocket): void; protected handleSocketError(error: Error, socket: net.Socket | tls.TLSSocket): void; protected abstract onPreConnectionData(data: Buffer, destinationSocket: net.Socket | tls.TLSSocket, sourceSocket: net.Socket | tls.TLSSocket): OnPreConnectionDataResult; }