/// import net = require('../net/net.types'); export declare var VERSION5: number; export declare enum Auth { NOAUTH = 0, GSSAPI = 1, USERPASS = 2, NONE = 255, } export declare enum Command { TCP_CONNECT = 1, TCP_BIND = 2, UDP_ASSOCIATE = 3, } export declare enum AddressType { IP_V4 = 1, DNS = 3, IP_V6 = 4, } export declare enum Reply { SUCCEEDED = 0, FAILURE = 1, NOT_ALLOWED = 2, NETWORK_UNREACHABLE = 3, HOST_UNREACHABLE = 4, CONNECTION_REFUSED = 5, TTL_EXPIRED = 6, UNSUPPORTED_COMMAND = 7, ADDRESS_TYPE = 8, RESERVED = 9, } export interface Destination { addressType: AddressType; endpoint: net.Endpoint; addressByteLength: number; } export interface Request { command: Command; endpoint: net.Endpoint; } export declare function isValidRequest(r: any): boolean; export interface Response { reply: Reply; endpoint?: net.Endpoint; } export declare function isValidResponse(r: any): boolean; export interface UdpMessage { frag: number; destination: Destination; data: Uint8Array; } export declare function interpretAuthHandshakeBuffer(buffer: ArrayBuffer): Auth[]; export declare function composeAuthHandshakeBuffer(auths: Auth[]): ArrayBuffer; export declare function composeAuthResponse(authType: Auth): ArrayBuffer; export declare function interpretAuthResponse(buffer: ArrayBuffer): Auth; export declare function interpretRequestBuffer(buffer: ArrayBuffer): Request; export declare function interpretRequest(byteArray: Uint8Array): Request; export declare function composeRequestBuffer(request: Request): ArrayBuffer; export declare function interpretUdpMessage(byteArray: Uint8Array): UdpMessage; export declare function interpretDestination(byteArray: Uint8Array): Destination; export declare function interpretIpv6Address(byteArray: Uint8Array): string; export declare function composeDestination(destination: Destination): Uint8Array; export declare function composeResponseBuffer(response: Response): ArrayBuffer; export declare function interpretResponseBuffer(buffer: ArrayBuffer): Response;