UNPKG

@remnawave/xtls-sdk

Version:

A Typescript SDK for XRAY (XTLS) Core GRPC Api

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