@localzet/xtls-sdk
Version:
TypeScript SDK for XRAY/AURA Core
127 lines • 4.86 kB
TypeScript
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