import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { TypedMessage } from "../../../common/serial/typed_message"; export declare const protobufPackage = "xray.transport.internet.kcp"; /** Maximum Transmission Unit, in bytes. */ export interface MTU { $type: "xray.transport.internet.kcp.MTU"; value: number; } /** Transmission Time Interview, in milli-sec. */ export interface TTI { $type: "xray.transport.internet.kcp.TTI"; value: number; } /** Uplink capacity, in MB. */ export interface UplinkCapacity { $type: "xray.transport.internet.kcp.UplinkCapacity"; value: number; } /** Downlink capacity, in MB. */ export interface DownlinkCapacity { $type: "xray.transport.internet.kcp.DownlinkCapacity"; value: number; } export interface WriteBuffer { $type: "xray.transport.internet.kcp.WriteBuffer"; /** Buffer size in bytes. */ size: number; } export interface ReadBuffer { $type: "xray.transport.internet.kcp.ReadBuffer"; /** Buffer size in bytes. */ size: number; } export interface ConnectionReuse { $type: "xray.transport.internet.kcp.ConnectionReuse"; enable: boolean; } /** * Pre-shared secret between client and server. It is used for traffic obfuscation. * Note that if seed is absent in the config, the traffic will still be obfuscated, * but by a predefined algorithm. */ export interface EncryptionSeed { $type: "xray.transport.internet.kcp.EncryptionSeed"; seed: string; } export interface Config { $type: "xray.transport.internet.kcp.Config"; mtu: MTU | undefined; tti: TTI | undefined; uplinkCapacity: UplinkCapacity | undefined; downlinkCapacity: DownlinkCapacity | undefined; congestion: boolean; writeBuffer: WriteBuffer | undefined; readBuffer: ReadBuffer | undefined; headerConfig: TypedMessage | undefined; seed: EncryptionSeed | undefined; } export declare const MTU: MessageFns; export declare const TTI: MessageFns; export declare const UplinkCapacity: MessageFns; export declare const DownlinkCapacity: MessageFns; export declare const WriteBuffer: MessageFns; export declare const ReadBuffer: MessageFns; export declare const ConnectionReuse: MessageFns; export declare const EncryptionSeed: MessageFns; export declare const Config: MessageFns; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in Exclude]?: DeepPartial; } : Partial; export interface MessageFns { 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; fromPartial(object: DeepPartial): T; } export {};