import { BinaryReader, BinaryWriter } from '@bufbuild/protobuf/wire';
export declare const protobufPackage = "xray.app.reverse";
export interface Control {
    $type: 'xray.app.reverse.Control';
    state: Control_State;
    random: Uint8Array;
}
export declare enum Control_State {
    ACTIVE = 0,
    DRAIN = 1,
    UNRECOGNIZED = -1
}
export declare function control_StateFromJSON(object: any): Control_State;
export declare function control_StateToJSON(object: Control_State): string;
export interface BridgeConfig {
    $type: 'xray.app.reverse.BridgeConfig';
    tag: string;
    domain: string;
}
export interface PortalConfig {
    $type: 'xray.app.reverse.PortalConfig';
    tag: string;
    domain: string;
}
export interface Config {
    $type: 'xray.app.reverse.Config';
    bridgeConfig: BridgeConfig[];
    portalConfig: PortalConfig[];
}
export declare const Control: MessageFns<Control, 'xray.app.reverse.Control'>;
export declare const BridgeConfig: MessageFns<BridgeConfig, 'xray.app.reverse.BridgeConfig'>;
export declare const PortalConfig: MessageFns<PortalConfig, 'xray.app.reverse.PortalConfig'>;
export declare const Config: MessageFns<Config, 'xray.app.reverse.Config'>;
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