import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { DownstreamCall } from "./e2e_call";
import { UpstreamCallAck } from "./e2e_call";
import { UpstreamCall } from "./e2e_call";
import { Pong } from "./ping_pong";
import { Ping } from "./ping_pong";
import { DownstreamMetadataAck } from "./downstream";
import { DownstreamMetadata } from "./downstream";
import { DownstreamChunkAckComplete } from "./downstream";
import { DownstreamChunkAck } from "./downstream";
import { DownstreamChunk } from "./downstream";
import { DownstreamCloseResponse } from "./downstream";
import { DownstreamCloseRequest } from "./downstream";
import { DownstreamResumeResponse } from "./downstream";
import { DownstreamResumeRequest } from "./downstream";
import { DownstreamOpenResponse } from "./downstream";
import { DownstreamOpenRequest } from "./downstream";
import { UpstreamMetadataAck } from "./upstream";
import { UpstreamMetadata } from "./upstream";
import { UpstreamChunkAck } from "./upstream";
import { UpstreamChunk } from "./upstream";
import { UpstreamCloseResponse } from "./upstream";
import { UpstreamCloseRequest } from "./upstream";
import { UpstreamResumeResponse } from "./upstream";
import { UpstreamResumeRequest } from "./upstream";
import { UpstreamOpenResponse } from "./upstream";
import { UpstreamOpenRequest } from "./upstream";
import { Disconnect } from "./connection";
import { ConnectResponse } from "./connection";
import { ConnectRequest } from "./connection";
/**
 * @generated from protobuf message iscp2.Message
 */
export interface Message {
    /**
     * @generated from protobuf oneof: message
     */
    message: {
        oneofKind: "connectRequest";
        /**
         * Connect
         *
         * @generated from protobuf field: iscp2.ConnectRequest connect_request = 1;
         */
        connectRequest: ConnectRequest;
    } | {
        oneofKind: "connectResponse";
        /**
         * @generated from protobuf field: iscp2.ConnectResponse connect_response = 2;
         */
        connectResponse: ConnectResponse;
    } | {
        oneofKind: "disconnect";
        /**
         * @generated from protobuf field: iscp2.Disconnect disconnect = 3;
         */
        disconnect: Disconnect;
    } | {
        oneofKind: "upstreamOpenRequest";
        /**
         * Upstream
         *
         * @generated from protobuf field: iscp2.UpstreamOpenRequest upstream_open_request = 64;
         */
        upstreamOpenRequest: UpstreamOpenRequest;
    } | {
        oneofKind: "upstreamOpenResponse";
        /**
         * @generated from protobuf field: iscp2.UpstreamOpenResponse upstream_open_response = 65;
         */
        upstreamOpenResponse: UpstreamOpenResponse;
    } | {
        oneofKind: "upstreamResumeRequest";
        /**
         * @generated from protobuf field: iscp2.UpstreamResumeRequest upstream_resume_request = 66;
         */
        upstreamResumeRequest: UpstreamResumeRequest;
    } | {
        oneofKind: "upstreamResumeResponse";
        /**
         * @generated from protobuf field: iscp2.UpstreamResumeResponse upstream_resume_response = 67;
         */
        upstreamResumeResponse: UpstreamResumeResponse;
    } | {
        oneofKind: "upstreamCloseRequest";
        /**
         * @generated from protobuf field: iscp2.UpstreamCloseRequest upstream_close_request = 68;
         */
        upstreamCloseRequest: UpstreamCloseRequest;
    } | {
        oneofKind: "upstreamCloseResponse";
        /**
         * @generated from protobuf field: iscp2.UpstreamCloseResponse upstream_close_response = 69;
         */
        upstreamCloseResponse: UpstreamCloseResponse;
    } | {
        oneofKind: "upstreamChunk";
        /**
         * @generated from protobuf field: iscp2.UpstreamChunk upstream_chunk = 70;
         */
        upstreamChunk: UpstreamChunk;
    } | {
        oneofKind: "upstreamChunkAck";
        /**
         * @generated from protobuf field: iscp2.UpstreamChunkAck upstream_chunk_ack = 71;
         */
        upstreamChunkAck: UpstreamChunkAck;
    } | {
        oneofKind: "upstreamMetadata";
        /**
         * @generated from protobuf field: iscp2.UpstreamMetadata upstream_metadata = 72;
         */
        upstreamMetadata: UpstreamMetadata;
    } | {
        oneofKind: "upstreamMetadataAck";
        /**
         * @generated from protobuf field: iscp2.UpstreamMetadataAck upstream_metadata_ack = 73;
         */
        upstreamMetadataAck: UpstreamMetadataAck;
    } | {
        oneofKind: "downstreamOpenRequest";
        /**
         * Downstream
         *
         * @generated from protobuf field: iscp2.DownstreamOpenRequest downstream_open_request = 128;
         */
        downstreamOpenRequest: DownstreamOpenRequest;
    } | {
        oneofKind: "downstreamOpenResponse";
        /**
         * @generated from protobuf field: iscp2.DownstreamOpenResponse downstream_open_response = 129;
         */
        downstreamOpenResponse: DownstreamOpenResponse;
    } | {
        oneofKind: "downstreamResumeRequest";
        /**
         * @generated from protobuf field: iscp2.DownstreamResumeRequest downstream_resume_request = 130;
         */
        downstreamResumeRequest: DownstreamResumeRequest;
    } | {
        oneofKind: "downstreamResumeResponse";
        /**
         * @generated from protobuf field: iscp2.DownstreamResumeResponse downstream_resume_response = 131;
         */
        downstreamResumeResponse: DownstreamResumeResponse;
    } | {
        oneofKind: "downstreamCloseRequest";
        /**
         * @generated from protobuf field: iscp2.DownstreamCloseRequest downstream_close_request = 132;
         */
        downstreamCloseRequest: DownstreamCloseRequest;
    } | {
        oneofKind: "downstreamCloseResponse";
        /**
         * @generated from protobuf field: iscp2.DownstreamCloseResponse downstream_close_response = 133;
         */
        downstreamCloseResponse: DownstreamCloseResponse;
    } | {
        oneofKind: "downstreamChunk";
        /**
         * @generated from protobuf field: iscp2.DownstreamChunk downstream_chunk = 134;
         */
        downstreamChunk: DownstreamChunk;
    } | {
        oneofKind: "downstreamChunkAck";
        /**
         * @generated from protobuf field: iscp2.DownstreamChunkAck downstream_chunk_ack = 135;
         */
        downstreamChunkAck: DownstreamChunkAck;
    } | {
        oneofKind: "downstreamChunkAckComplete";
        /**
         * @generated from protobuf field: iscp2.DownstreamChunkAckComplete downstream_chunk_ack_complete = 136;
         */
        downstreamChunkAckComplete: DownstreamChunkAckComplete;
    } | {
        oneofKind: "downstreamMetadata";
        /**
         * @generated from protobuf field: iscp2.DownstreamMetadata downstream_metadata = 137;
         */
        downstreamMetadata: DownstreamMetadata;
    } | {
        oneofKind: "downstreamMetadataAck";
        /**
         * @generated from protobuf field: iscp2.DownstreamMetadataAck downstream_metadata_ack = 138;
         */
        downstreamMetadataAck: DownstreamMetadataAck;
    } | {
        oneofKind: "ping";
        /**
         * Ping/Pong
         *
         * @generated from protobuf field: iscp2.Ping ping = 192;
         */
        ping: Ping;
    } | {
        oneofKind: "pong";
        /**
         * @generated from protobuf field: iscp2.Pong pong = 193;
         */
        pong: Pong;
    } | {
        oneofKind: "upstreamCall";
        /**
         * E2E Call
         *
         * @generated from protobuf field: iscp2.UpstreamCall upstream_call = 256;
         */
        upstreamCall: UpstreamCall;
    } | {
        oneofKind: "upstreamCallAck";
        /**
         * @generated from protobuf field: iscp2.UpstreamCallAck upstream_call_ack = 257;
         */
        upstreamCallAck: UpstreamCallAck;
    } | {
        oneofKind: "downstreamCall";
        /**
         * @generated from protobuf field: iscp2.DownstreamCall downstream_call = 258;
         */
        downstreamCall: DownstreamCall;
    } | {
        oneofKind: undefined;
    };
}
declare class Message$Type extends MessageType<Message> {
    constructor();
    create(value?: PartialMessage<Message>): Message;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Message): Message;
    internalBinaryWrite(message: Message, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.Message
 */
export declare const Message: Message$Type;
export {};
