import { Int32Range } from '../transport/common'; /** * Freedom outbound proxy configuration (direct connection). * * @see https://xtls.github.io/en/config/outbounds/freedom.html */ export interface FreedomOutboundConfig { /** Target strategy. */ targetStrategy?: string; /** Domain resolution strategy. */ domainStrategy?: FreedomDomainStrategy; /** Override destination address (format: "addr:port"). */ redirect?: string; /** User level for policy. */ userLevel?: number; /** Packet fragmentation settings for anti-censorship. */ fragment?: FragmentConfig; /** Single noise configuration (legacy). */ noise?: NoiseConfig; /** Multiple noise configurations. */ noises?: NoiseConfig[]; /** Send PROXY protocol header to destination (0 = disabled, 1 or 2). */ proxyProtocol?: number; } export interface FragmentConfig { /** Which packets to fragment ("tlshello", "1-3", etc.). */ packets?: string; /** Fragment length range in bytes (e.g. "100-200"). */ length?: Int32Range; /** Interval between fragments in ms (e.g. "10-20"). */ interval?: Int32Range; /** Maximum number of splits (e.g. "1-3"). */ maxSplit?: Int32Range; } export interface NoiseConfig { /** Noise packet type (e.g. "rand", "str", "base64"). */ type?: NoiseType; /** Noise packet content/pattern. */ packet?: string; /** Delay range in ms before sending noise (e.g. "10-50"). */ delay?: Int32Range; /** When to apply noise (e.g. "pre", "post", "both"). */ applyTo?: string; } export type NoiseType = 'rand' | 'str' | 'base64'; export type FreedomDomainStrategy = 'AsIs' | 'UseIP' | 'UseIPv4' | 'UseIPv6' | 'UseIPv4v6' | 'UseIPv6v4' | 'ForceIP' | 'ForceIPv4' | 'ForceIPv6' | 'ForceIPv4v6' | 'ForceIPv6v4'; //# sourceMappingURL=freedom.d.ts.map