const e=[`ss`,`ssr`,`http`,`socks5`,`vmess`,`vless`,`trojan`,`hysteria2`,`tuic`,`wireguard`,`ssh`,`snell`,`anytls`,`direct`,`reject`,`pass`],t=[`select`,`url-test`,`fallback`,`load-balance`,`relay`,`smart`],n={ss:[`cipher`,`password`,`udp`,`udp-over-tcp`],ssr:[`cipher`,`password`,`obfs`,`protocol`],http:[`username`,`password`,`tls`,`skip-cert-verify`],socks5:[`username`,`password`,`tls`,`udp`],vmess:[`uuid`,`alterId`,`cipher`,`tls`,`network`,`servername`],vless:[`uuid`,`flow`,`tls`,`network`,`servername`],trojan:[`password`,`tls`,`sni`,`skip-cert-verify`],hysteria2:[`password`,`sni`,`skip-cert-verify`,`up`,`down`],tuic:[`uuid`,`password`,`sni`,`skip-cert-verify`],wireguard:[`private-key`,`public-key`,`ip`,`mtu`],ssh:[`username`,`password`,`private-key`,`host-key-algorithms`],snell:[`psk`,`version`,`obfs-opts`],anytls:[`password`,`client-fingerprint`,`sni`,`skip-cert-verify`]},r=new Set([`tls`,`udp`,`skip-cert-verify`,`udp-over-tcp`,`tfo`]),i=new Set([`port`,`interval`,`mtu`,`alterId`]);function a(e,t){return e===`group`?[`name`,`type`,`url`,`interval`]:[`name`,`type`,`server`,`port`,...n[t]??[]]}function o(e){return/password|secret|private-key|psk/i.test(e)}export{e as a,n as i,i as n,o,t as r,a as s,r as t};