export type SocketType =
  | 'SOCK_DGRAM'
  | 'SOCK_STREAM'
  | 'SOCK_RAW'
  | 'SOCK_SEQPACKET'
  | 'SOCK_RDM';

export type SendFlag =
  | 'MSG_DONTWAIT'
  | 'MSG_WAITFORONE'
  | 'MSG_NOSIGNAL'
  | 'MSG_TRUNC'
  | 'MSG_CMSG_CLOEXEC'
  | 'MSG_WAITALL'
  | 'MSG_CTRUNC'
  | 'MSG_CONFIRM'
  | 'MSG_EOR'
  | 'MSG_TRYHARD'
  | 'MSG_SYN'
  | 'MSG_PROXY'
  | 'MSG_FASTOPEN'
  | 'MSG_RST'
  | 'MSG_MORE'
  | 'MSG_DONTROUTE'
  | 'MSG_ERRQUEUE'
  | 'MSG_OOB'
  | 'MSG_PEEK'
  | 'MSG_FIN';

export type DomainFamily =
  | 'AF_LOCAL'
  | 'AF_ATMPVC'
  | 'AF_AX25'
  | 'PF_AX25'
  | 'AF_APPLETALK'
  | 'PF_INET6'
  | 'PF_INET'
  | 'PF_LOCAL'
  | 'AF_INET6'
  | 'PF_ATMPVC'
  | 'PF_NETLINK'
  | 'PF_PACKET'
  | 'PF_APPLETALK'
  | 'AF_UNIX'
  | 'AF_PACKET'
  | 'AF_INET'
  | 'PF_X25'
  | 'AF_X25'
  | 'AF_IPX'
  | 'PF_IPX'
  | 'AF_NETLINK'
  | 'PF_UNIX';

export type AIFlag =
  | 'AI_IDN'
  | 'AI_PASSIVE'
  | 'AI_NUMERICSERV'
  | 'AI_NUMERICHOST'
  | 'AI_ALL'
  | 'AI_V4MAPPED'
  | 'AI_CANONIDN'
  | 'AI_ADDRCONFIG'
  | 'AI_CANONNAME';

export type Protocol = 'tcp' | 'ip' | 'udp';

export type SocketFlag =
  | 'SO_ACCEPTCONN'
  | 'SO_BINDTODEVICE'
  | 'SO_BROADCAST'
  | 'SO_DEBUG'
  | 'SO_DOMAIN'
  | 'SO_ERROR'
  | 'SO_DONTROUTE'
  | 'SO_KEEPALIVE'
  | 'SO_MARK'
  | 'SO_OOBINLINE'
  | 'SO_PASSCRED'
  | 'SO_PEERCRED'
  | 'SO_PRIORITY'
  | 'SO_PROTOCOL'
  | 'SO_RCVBUF'
  | 'SO_RCVBUFFORCE'
  | 'SO_RCVLOWAT'
  | 'SO_SNDLOWAT'
  | 'SO_RCVTIMEO'
  | 'SO_SNDTIMEO'
  | 'SO_REUSEADDR'
  | 'SO_SNDBUF'
  | 'SO_SNDBUFFORCE'
  | 'SO_TIMESTAMP'
  | 'SO_TYPE';
