@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
746 lines (745 loc) • 28.1 kB
TypeScript
import { z } from 'zod';
import { NodeTypeEnum } from '../types';
export declare const TuicNodeV5ConfigValidator: z.ZodObject<{
nodeName: z.ZodString;
enable: z.ZodOptional<z.ZodBoolean>;
tfo: z.ZodOptional<z.ZodBoolean>;
mptcp: z.ZodOptional<z.ZodBoolean>;
ecn: z.ZodOptional<z.ZodBoolean>;
shadowTls: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>>;
password: z.ZodString;
sni: z.ZodString;
}, "strip", z.ZodTypeAny, {
password: string;
sni: string;
version?: string | number | undefined;
}, {
password: string;
sni: string;
version?: string | number | undefined;
}>>;
blockQuic: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodLiteral<"on">, z.ZodLiteral<"off">]>>;
portHopping: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
portHoppingInterval: z.ZodOptional<z.ZodNumber>;
underlyingProxy: z.ZodOptional<z.ZodString>;
testUrl: z.ZodOptional<z.ZodString>;
testTimeout: z.ZodOptional<z.ZodNumber>;
surgeConfig: z.ZodOptional<z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>>;
surfboardConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
quantumultXConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
clashConfig: z.ZodOptional<z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>>;
hostnameIp: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString, "many">>>;
binPath: z.ZodOptional<z.ZodString>;
localPort: z.ZodOptional<z.ZodNumber>;
interfaceName: z.ZodOptional<z.ZodString>;
ipVersion: z.ZodOptional<z.ZodString>;
hostname: z.ZodString;
port: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
tls13: z.ZodOptional<z.ZodBoolean>;
skipCertVerify: z.ZodOptional<z.ZodBoolean>;
sni: z.ZodOptional<z.ZodString>;
alpn: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
serverCertFingerprintSha256: z.ZodOptional<z.ZodString>;
clientFingerprint: z.ZodOptional<z.ZodString>;
} & {
type: z.ZodLiteral<NodeTypeEnum.Tuic>;
password: z.ZodString;
uuid: z.ZodString;
version: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
}, "strip", z.ZodTypeAny, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
version: string | number;
password: string;
hostname: string;
uuid: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
version: string | number;
password: string;
hostname: string;
uuid: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}>;
export declare const TuicNodeV4ConfigValidator: z.ZodObject<{
nodeName: z.ZodString;
enable: z.ZodOptional<z.ZodBoolean>;
tfo: z.ZodOptional<z.ZodBoolean>;
mptcp: z.ZodOptional<z.ZodBoolean>;
ecn: z.ZodOptional<z.ZodBoolean>;
shadowTls: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>>;
password: z.ZodString;
sni: z.ZodString;
}, "strip", z.ZodTypeAny, {
password: string;
sni: string;
version?: string | number | undefined;
}, {
password: string;
sni: string;
version?: string | number | undefined;
}>>;
blockQuic: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodLiteral<"on">, z.ZodLiteral<"off">]>>;
portHopping: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
portHoppingInterval: z.ZodOptional<z.ZodNumber>;
underlyingProxy: z.ZodOptional<z.ZodString>;
testUrl: z.ZodOptional<z.ZodString>;
testTimeout: z.ZodOptional<z.ZodNumber>;
surgeConfig: z.ZodOptional<z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>>;
surfboardConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
quantumultXConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
clashConfig: z.ZodOptional<z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>>;
hostnameIp: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString, "many">>>;
binPath: z.ZodOptional<z.ZodString>;
localPort: z.ZodOptional<z.ZodNumber>;
interfaceName: z.ZodOptional<z.ZodString>;
ipVersion: z.ZodOptional<z.ZodString>;
hostname: z.ZodString;
port: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
tls13: z.ZodOptional<z.ZodBoolean>;
skipCertVerify: z.ZodOptional<z.ZodBoolean>;
sni: z.ZodOptional<z.ZodString>;
alpn: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
serverCertFingerprintSha256: z.ZodOptional<z.ZodString>;
clientFingerprint: z.ZodOptional<z.ZodString>;
} & {
type: z.ZodLiteral<NodeTypeEnum.Tuic>;
token: z.ZodString;
}, "strip", z.ZodTypeAny, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
hostname: string;
token: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
hostname: string;
token: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}>;
export declare const TuicNodeConfigValidator: z.ZodUnion<[z.ZodObject<{
nodeName: z.ZodString;
enable: z.ZodOptional<z.ZodBoolean>;
tfo: z.ZodOptional<z.ZodBoolean>;
mptcp: z.ZodOptional<z.ZodBoolean>;
ecn: z.ZodOptional<z.ZodBoolean>;
shadowTls: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>>;
password: z.ZodString;
sni: z.ZodString;
}, "strip", z.ZodTypeAny, {
password: string;
sni: string;
version?: string | number | undefined;
}, {
password: string;
sni: string;
version?: string | number | undefined;
}>>;
blockQuic: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodLiteral<"on">, z.ZodLiteral<"off">]>>;
portHopping: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
portHoppingInterval: z.ZodOptional<z.ZodNumber>;
underlyingProxy: z.ZodOptional<z.ZodString>;
testUrl: z.ZodOptional<z.ZodString>;
testTimeout: z.ZodOptional<z.ZodNumber>;
surgeConfig: z.ZodOptional<z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>>;
surfboardConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
quantumultXConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
clashConfig: z.ZodOptional<z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>>;
hostnameIp: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString, "many">>>;
binPath: z.ZodOptional<z.ZodString>;
localPort: z.ZodOptional<z.ZodNumber>;
interfaceName: z.ZodOptional<z.ZodString>;
ipVersion: z.ZodOptional<z.ZodString>;
hostname: z.ZodString;
port: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
tls13: z.ZodOptional<z.ZodBoolean>;
skipCertVerify: z.ZodOptional<z.ZodBoolean>;
sni: z.ZodOptional<z.ZodString>;
alpn: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
serverCertFingerprintSha256: z.ZodOptional<z.ZodString>;
clientFingerprint: z.ZodOptional<z.ZodString>;
} & {
type: z.ZodLiteral<NodeTypeEnum.Tuic>;
token: z.ZodString;
}, "strip", z.ZodTypeAny, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
hostname: string;
token: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
hostname: string;
token: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}>, z.ZodObject<{
nodeName: z.ZodString;
enable: z.ZodOptional<z.ZodBoolean>;
tfo: z.ZodOptional<z.ZodBoolean>;
mptcp: z.ZodOptional<z.ZodBoolean>;
ecn: z.ZodOptional<z.ZodBoolean>;
shadowTls: z.ZodOptional<z.ZodObject<{
version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>>;
password: z.ZodString;
sni: z.ZodString;
}, "strip", z.ZodTypeAny, {
password: string;
sni: string;
version?: string | number | undefined;
}, {
password: string;
sni: string;
version?: string | number | undefined;
}>>;
blockQuic: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"auto">, z.ZodLiteral<"on">, z.ZodLiteral<"off">]>>;
portHopping: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
portHoppingInterval: z.ZodOptional<z.ZodNumber>;
underlyingProxy: z.ZodOptional<z.ZodString>;
testUrl: z.ZodOptional<z.ZodString>;
testTimeout: z.ZodOptional<z.ZodNumber>;
surgeConfig: z.ZodOptional<z.ZodObject<{
resolveHostname: z.ZodOptional<z.ZodBoolean>;
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}, {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
}>>;
surfboardConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
quantumultXConfig: z.ZodOptional<z.ZodObject<{
vmessAEAD: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
vmessAEAD?: boolean | undefined;
}, {
vmessAEAD?: boolean | undefined;
}>>;
clashConfig: z.ZodOptional<z.ZodObject<{
enableTuic: z.ZodOptional<z.ZodBoolean>;
enableShadowTls: z.ZodOptional<z.ZodBoolean>;
enableHysteria2: z.ZodOptional<z.ZodBoolean>;
enableVless: z.ZodOptional<z.ZodBoolean>;
clashCore: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"clash">, z.ZodLiteral<"clash.meta">, z.ZodLiteral<"stash">]>>;
}, "strip", z.ZodTypeAny, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}, {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
}>>;
hostnameIp: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString, "many">>>;
binPath: z.ZodOptional<z.ZodString>;
localPort: z.ZodOptional<z.ZodNumber>;
interfaceName: z.ZodOptional<z.ZodString>;
ipVersion: z.ZodOptional<z.ZodString>;
hostname: z.ZodString;
port: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
tls13: z.ZodOptional<z.ZodBoolean>;
skipCertVerify: z.ZodOptional<z.ZodBoolean>;
sni: z.ZodOptional<z.ZodString>;
alpn: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
serverCertFingerprintSha256: z.ZodOptional<z.ZodString>;
clientFingerprint: z.ZodOptional<z.ZodString>;
} & {
type: z.ZodLiteral<NodeTypeEnum.Tuic>;
password: z.ZodString;
uuid: z.ZodString;
version: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
}, "strip", z.ZodTypeAny, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
version: string | number;
password: string;
hostname: string;
uuid: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}, {
port: string | number;
type: NodeTypeEnum.Tuic;
nodeName: string;
version: string | number;
password: string;
hostname: string;
uuid: string;
enable?: boolean | undefined;
tfo?: boolean | undefined;
mptcp?: boolean | undefined;
ecn?: boolean | undefined;
sni?: string | undefined;
shadowTls?: {
password: string;
sni: string;
version?: string | number | undefined;
} | undefined;
blockQuic?: "auto" | "on" | "off" | undefined;
portHopping?: string | undefined;
portHoppingInterval?: number | undefined;
underlyingProxy?: string | undefined;
testUrl?: string | undefined;
testTimeout?: number | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
hostnameIp?: readonly string[] | undefined;
binPath?: string | undefined;
localPort?: number | undefined;
interfaceName?: string | undefined;
ipVersion?: string | undefined;
tls13?: boolean | undefined;
skipCertVerify?: boolean | undefined;
alpn?: [string, ...string[]] | undefined;
serverCertFingerprintSha256?: string | undefined;
clientFingerprint?: string | undefined;
}>]>;