UNPKG

@localzet/xtls-sdk

Version:

TypeScript SDK for XRAY/AURA Core

127 lines 4.86 kB
import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire'; import { IPOrDomain } from '../../common/net/address'; import { TypedMessage } from '../../common/serial/typed_message'; export declare const protobufPackage = "xray.transport.internet"; export declare enum DomainStrategy { AS_IS = 0, USE_IP = 1, USE_IP4 = 2, USE_IP6 = 3, USE_IP46 = 4, USE_IP64 = 5, FORCE_IP = 6, FORCE_IP4 = 7, FORCE_IP6 = 8, FORCE_IP46 = 9, FORCE_IP64 = 10, UNRECOGNIZED = -1 } export declare function domainStrategyFromJSON(object: any): DomainStrategy; export declare function domainStrategyToJSON(object: DomainStrategy): string; export declare enum AddressPortStrategy { None = 0, SrvPortOnly = 1, SrvAddressOnly = 2, SrvPortAndAddress = 3, TxtPortOnly = 4, TxtAddressOnly = 5, TxtPortAndAddress = 6, UNRECOGNIZED = -1 } export declare function addressPortStrategyFromJSON(object: any): AddressPortStrategy; export declare function addressPortStrategyToJSON(object: AddressPortStrategy): string; export interface TransportConfig { $type: 'xray.transport.internet.TransportConfig'; /** Transport protocol name. */ protocolName: string; /** Specific transport protocol settings. */ settings: TypedMessage | undefined; } export interface StreamConfig { $type: 'xray.transport.internet.StreamConfig'; address: IPOrDomain | undefined; port: number; /** Effective network. */ protocolName: string; transportSettings: TransportConfig[]; /** Type of security. Must be a message name of the settings proto. */ securityType: string; /** Transport security settings. They can be either TLS or REALITY. */ securitySettings: TypedMessage[]; socketSettings: SocketConfig | undefined; } export interface ProxyConfig { $type: 'xray.transport.internet.ProxyConfig'; tag: string; transportLayerProxy: boolean; } export interface CustomSockopt { $type: 'xray.transport.internet.CustomSockopt'; level: string; opt: string; value: string; type: string; } /** SocketConfig is options to be applied on network sockets. */ export interface SocketConfig { $type: 'xray.transport.internet.SocketConfig'; /** Mark of the connection. If non-zero, the value will be set to SO_MARK. */ mark: number; /** TFO is the state of TFO settings. */ tfo: number; /** TProxy is for enabling TProxy socket option. */ tproxy: SocketConfig_TProxyMode; /** * ReceiveOriginalDestAddress is for enabling IP_RECVORIGDSTADDR socket * option. This option is for UDP only. */ receiveOriginalDestAddress: boolean; bindAddress: Uint8Array; bindPort: number; acceptProxyProtocol: boolean; domainStrategy: DomainStrategy; dialerProxy: string; tcpKeepAliveInterval: number; tcpKeepAliveIdle: number; tcpCongestion: string; interface: string; v6only: boolean; tcpWindowClamp: number; tcpUserTimeout: number; tcpMaxSeg: number; penetrate: boolean; tcpMptcp: boolean; customSockopt: CustomSockopt[]; addressPortStrategy: AddressPortStrategy; } export declare enum SocketConfig_TProxyMode { /** Off - TProxy is off. */ Off = 0, /** TProxy - TProxy mode. */ TProxy = 1, /** Redirect - Redirect mode. */ Redirect = 2, UNRECOGNIZED = -1 } export declare function socketConfig_TProxyModeFromJSON(object: any): SocketConfig_TProxyMode; export declare function socketConfig_TProxyModeToJSON(object: SocketConfig_TProxyMode): string; export declare const TransportConfig: MessageFns<TransportConfig, 'xray.transport.internet.TransportConfig'>; export declare const StreamConfig: MessageFns<StreamConfig, 'xray.transport.internet.StreamConfig'>; export declare const ProxyConfig: MessageFns<ProxyConfig, 'xray.transport.internet.ProxyConfig'>; export declare const CustomSockopt: MessageFns<CustomSockopt, 'xray.transport.internet.CustomSockopt'>; export declare const SocketConfig: MessageFns<SocketConfig, 'xray.transport.internet.SocketConfig'>; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in Exclude<keyof T, '$type'>]?: DeepPartial<T[K]>; } : Partial<T>; export interface MessageFns<T, V extends string> { readonly $type: V; encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create(base?: DeepPartial<T>): T; fromPartial(object: DeepPartial<T>): T; } export {}; //# sourceMappingURL=config.d.ts.map