import Net from 'node:net';
export declare interface SocksProxy {
  host: string
  port: number
  type: 4 | 5
  userId?: string
  password?: string
}
export declare interface SocksDestination {
  host: string
  port: number
}
export declare interface SocksClientOptions {
  proxy: SocksProxy
  command: 'connect' | 'bind' | 'associate'
  destination: SocksDestination
}
export declare interface SocksClientEstablishedEvent {
  socket: Net.Socket
  remoteHost?: string
  remotePort?: number
}
/**
 * Native SOCKS client implementation
 */
export declare class SocksClient {
  constructor(options: SocksClientOptions);
  static createConnection(options: SocksClientOptions, callback: (err: Error | null, info?: SocksClientEstablishedEvent) => void): void;
}
export declare enum SocksVersion {
  SOCKS4 = 4,
  SOCKS5 = 5,
}
