import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { TypedMessage } from "../common/serial/typed_message"; export declare const protobufPackage = "xray.core"; /** * Config is the master config of Xray. Xray takes this config as input and * functions accordingly. */ export interface Config { $type: "xray.core.Config"; /** Inbound handler configurations. Must have at least one item. */ inbound: InboundHandlerConfig[]; /** * Outbound handler configurations. Must have at least one item. The first * item is used as default for routing. */ outbound: OutboundHandlerConfig[]; /** * App is for configurations of all features in Xray. A feature must * implement the Feature interface, and its config type must be registered * through common.RegisterConfig. */ app: TypedMessage[]; /** * Configuration for extensions. The config may not work if corresponding * extension is not loaded into Xray. Xray will ignore such config during * initialization. */ extension: TypedMessage[]; } /** InboundHandlerConfig is the configuration for inbound handler. */ export interface InboundHandlerConfig { $type: "xray.core.InboundHandlerConfig"; /** * Tag of the inbound handler. The tag must be unique among all inbound * handlers */ tag: string; /** Settings for how this inbound proxy is handled. */ receiverSettings: TypedMessage | undefined; /** Settings for inbound proxy. Must be one of the inbound proxies. */ proxySettings: TypedMessage | undefined; } /** OutboundHandlerConfig is the configuration for outbound handler. */ export interface OutboundHandlerConfig { $type: "xray.core.OutboundHandlerConfig"; /** Tag of this outbound handler. */ tag: string; /** Settings for how to dial connection for this outbound handler. */ senderSettings: TypedMessage | undefined; /** Settings for this outbound proxy. Must be one of the outbound proxies. */ proxySettings: TypedMessage | undefined; /** If not zero, this outbound will be expired in seconds. Not used for now. */ expire: number; /** Comment of this outbound handler. Not used for now. */ comment: string; } export declare const Config: MessageFns; export declare const InboundHandlerConfig: MessageFns; export declare const OutboundHandlerConfig: 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 {}; //# sourceMappingURL=config.d.ts.map