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 { UpstreamChunkResultExtensionFields } from "./extensions/upstream";
import { UpstreamMetadataAckExtensionFields } from "./extensions/upstream";
import { UpstreamMetadataExtensionFields } from "./extensions/upstream";
import { BaseTime } from "./metadata";
import { UpstreamChunkAckExtensionFields } from "./extensions/upstream";
import { UpstreamChunkExtensionFields } from "./extensions/upstream";
import { StreamChunk } from "./common";
import { UpstreamCloseResponseExtensionFields } from "./extensions/upstream";
import { UpstreamCloseRequestExtensionFields } from "./extensions/upstream";
import { UpstreamResumeResponseExtensionFields } from "./extensions/upstream";
import { UpstreamResumeRequestExtensionFields } from "./extensions/upstream";
import { UpstreamOpenResponseExtensionFields } from "./extensions/upstream";
import { ResultCode } from "./result_code";
import { UpstreamOpenRequestExtensionFields } from "./extensions/upstream";
import { QoS } from "./common";
import { DataID } from "./common";
/**
 * @generated from protobuf message iscp2.UpstreamOpenRequest
 */
export interface UpstreamOpenRequest {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: string session_id = 2;
     */
    sessionId: string;
    /**
     * @generated from protobuf field: uint32 ack_interval = 3;
     */
    ackInterval: number;
    /**
     * @generated from protobuf field: uint32 expiry_interval = 5;
     */
    expiryInterval: number;
    /**
     * @generated from protobuf field: repeated iscp2.DataID data_ids = 6;
     */
    dataIds: DataID[];
    /**
     * @generated from protobuf field: iscp2.QoS qos = 7;
     */
    qos: QoS;
    /**
     * @generated from protobuf field: iscp2.UpstreamOpenRequestExtensionFields extension_fields = 8;
     */
    extensionFields?: UpstreamOpenRequestExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamOpenResponse
 */
export interface UpstreamOpenResponse {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: bytes assigned_stream_id = 2;
     */
    assignedStreamId: Uint8Array;
    /**
     * @generated from protobuf field: uint32 assigned_stream_id_alias = 3;
     */
    assignedStreamIdAlias: number;
    /**
     * @generated from protobuf field: map<uint32, iscp2.DataID> data_id_aliases = 4;
     */
    dataIdAliases: {
        [key: number]: DataID;
    };
    /**
     * @generated from protobuf field: sint64 server_time = 5;
     */
    serverTime: bigint;
    /**
     * @generated from protobuf field: iscp2.ResultCode result_code = 6;
     */
    resultCode: ResultCode;
    /**
     * @generated from protobuf field: string result_string = 7;
     */
    resultString: string;
    /**
     * @generated from protobuf field: iscp2.UpstreamOpenResponseExtensionFields extension_fields = 8;
     */
    extensionFields?: UpstreamOpenResponseExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamResumeRequest
 */
export interface UpstreamResumeRequest {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: bytes stream_id = 2;
     */
    streamId: Uint8Array;
    /**
     * @generated from protobuf field: iscp2.UpstreamResumeRequestExtensionFields extension_fields = 3;
     */
    extensionFields?: UpstreamResumeRequestExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamResumeResponse
 */
export interface UpstreamResumeResponse {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: uint32 assigned_stream_id_alias = 2;
     */
    assignedStreamIdAlias: number;
    /**
     * @generated from protobuf field: iscp2.ResultCode result_code = 3;
     */
    resultCode: ResultCode;
    /**
     * @generated from protobuf field: string result_string = 4;
     */
    resultString: string;
    /**
     * @generated from protobuf field: iscp2.UpstreamResumeResponseExtensionFields extension_fields = 5;
     */
    extensionFields?: UpstreamResumeResponseExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamCloseRequest
 */
export interface UpstreamCloseRequest {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: bytes stream_id = 2;
     */
    streamId: Uint8Array;
    /**
     * @generated from protobuf field: uint64 total_data_points = 3;
     */
    totalDataPoints: bigint;
    /**
     * @generated from protobuf field: uint32 final_sequence_number = 4;
     */
    finalSequenceNumber: number;
    /**
     * @generated from protobuf field: iscp2.UpstreamCloseRequestExtensionFields extension_fields = 5;
     */
    extensionFields?: UpstreamCloseRequestExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamCloseResponse
 */
export interface UpstreamCloseResponse {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: iscp2.ResultCode result_code = 2;
     */
    resultCode: ResultCode;
    /**
     * @generated from protobuf field: string result_string = 3;
     */
    resultString: string;
    /**
     * @generated from protobuf field: iscp2.UpstreamCloseResponseExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamCloseResponseExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamChunk
 */
export interface UpstreamChunk {
    /**
     * @generated from protobuf field: uint32 stream_id_alias = 1;
     */
    streamIdAlias: number;
    /**
     * @generated from protobuf field: iscp2.StreamChunk stream_chunk = 2;
     */
    streamChunk?: StreamChunk;
    /**
     * @generated from protobuf field: repeated iscp2.DataID data_ids = 3;
     */
    dataIds: DataID[];
    /**
     * @generated from protobuf field: iscp2.UpstreamChunkExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamChunkExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamChunkAck
 */
export interface UpstreamChunkAck {
    /**
     * @generated from protobuf field: uint32 stream_id_alias = 1;
     */
    streamIdAlias: number;
    /**
     * @generated from protobuf field: repeated iscp2.UpstreamChunkResult results = 2;
     */
    results: UpstreamChunkResult[];
    /**
     * @generated from protobuf field: map<uint32, iscp2.DataID> data_id_aliases = 3;
     */
    dataIdAliases: {
        [key: number]: DataID;
    };
    /**
     * @generated from protobuf field: iscp2.UpstreamChunkAckExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamChunkAckExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamMetadata
 */
export interface UpstreamMetadata {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf oneof: metadata
     */
    metadata: {
        oneofKind: "baseTime";
        /**
         * @generated from protobuf field: iscp2.BaseTime base_time = 2;
         */
        baseTime: BaseTime;
    } | {
        oneofKind: undefined;
    };
    /**
     * @generated from protobuf field: iscp2.UpstreamMetadataExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamMetadataExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamMetadataAck
 */
export interface UpstreamMetadataAck {
    /**
     * @generated from protobuf field: uint32 request_id = 1;
     */
    requestId: number;
    /**
     * @generated from protobuf field: iscp2.ResultCode result_code = 2;
     */
    resultCode: ResultCode;
    /**
     * @generated from protobuf field: string result_string = 3;
     */
    resultString: string;
    /**
     * @generated from protobuf field: iscp2.UpstreamMetadataAckExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamMetadataAckExtensionFields;
}
/**
 * @generated from protobuf message iscp2.UpstreamChunkResult
 */
export interface UpstreamChunkResult {
    /**
     * @generated from protobuf field: uint32 sequence_number = 1;
     */
    sequenceNumber: number;
    /**
     * @generated from protobuf field: iscp2.ResultCode result_code = 2;
     */
    resultCode: ResultCode;
    /**
     * @generated from protobuf field: string result_string = 3;
     */
    resultString: string;
    /**
     * @generated from protobuf field: iscp2.UpstreamChunkResultExtensionFields extension_fields = 4;
     */
    extensionFields?: UpstreamChunkResultExtensionFields;
}
declare class UpstreamOpenRequest$Type extends MessageType<UpstreamOpenRequest> {
    constructor();
    create(value?: PartialMessage<UpstreamOpenRequest>): UpstreamOpenRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamOpenRequest): UpstreamOpenRequest;
    internalBinaryWrite(message: UpstreamOpenRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamOpenRequest
 */
export declare const UpstreamOpenRequest: UpstreamOpenRequest$Type;
declare class UpstreamOpenResponse$Type extends MessageType<UpstreamOpenResponse> {
    constructor();
    create(value?: PartialMessage<UpstreamOpenResponse>): UpstreamOpenResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamOpenResponse): UpstreamOpenResponse;
    private binaryReadMap4;
    internalBinaryWrite(message: UpstreamOpenResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamOpenResponse
 */
export declare const UpstreamOpenResponse: UpstreamOpenResponse$Type;
declare class UpstreamResumeRequest$Type extends MessageType<UpstreamResumeRequest> {
    constructor();
    create(value?: PartialMessage<UpstreamResumeRequest>): UpstreamResumeRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamResumeRequest): UpstreamResumeRequest;
    internalBinaryWrite(message: UpstreamResumeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamResumeRequest
 */
export declare const UpstreamResumeRequest: UpstreamResumeRequest$Type;
declare class UpstreamResumeResponse$Type extends MessageType<UpstreamResumeResponse> {
    constructor();
    create(value?: PartialMessage<UpstreamResumeResponse>): UpstreamResumeResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamResumeResponse): UpstreamResumeResponse;
    internalBinaryWrite(message: UpstreamResumeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamResumeResponse
 */
export declare const UpstreamResumeResponse: UpstreamResumeResponse$Type;
declare class UpstreamCloseRequest$Type extends MessageType<UpstreamCloseRequest> {
    constructor();
    create(value?: PartialMessage<UpstreamCloseRequest>): UpstreamCloseRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamCloseRequest): UpstreamCloseRequest;
    internalBinaryWrite(message: UpstreamCloseRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamCloseRequest
 */
export declare const UpstreamCloseRequest: UpstreamCloseRequest$Type;
declare class UpstreamCloseResponse$Type extends MessageType<UpstreamCloseResponse> {
    constructor();
    create(value?: PartialMessage<UpstreamCloseResponse>): UpstreamCloseResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamCloseResponse): UpstreamCloseResponse;
    internalBinaryWrite(message: UpstreamCloseResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamCloseResponse
 */
export declare const UpstreamCloseResponse: UpstreamCloseResponse$Type;
declare class UpstreamChunk$Type extends MessageType<UpstreamChunk> {
    constructor();
    create(value?: PartialMessage<UpstreamChunk>): UpstreamChunk;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamChunk): UpstreamChunk;
    internalBinaryWrite(message: UpstreamChunk, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamChunk
 */
export declare const UpstreamChunk: UpstreamChunk$Type;
declare class UpstreamChunkAck$Type extends MessageType<UpstreamChunkAck> {
    constructor();
    create(value?: PartialMessage<UpstreamChunkAck>): UpstreamChunkAck;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamChunkAck): UpstreamChunkAck;
    private binaryReadMap3;
    internalBinaryWrite(message: UpstreamChunkAck, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamChunkAck
 */
export declare const UpstreamChunkAck: UpstreamChunkAck$Type;
declare class UpstreamMetadata$Type extends MessageType<UpstreamMetadata> {
    constructor();
    create(value?: PartialMessage<UpstreamMetadata>): UpstreamMetadata;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamMetadata): UpstreamMetadata;
    internalBinaryWrite(message: UpstreamMetadata, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamMetadata
 */
export declare const UpstreamMetadata: UpstreamMetadata$Type;
declare class UpstreamMetadataAck$Type extends MessageType<UpstreamMetadataAck> {
    constructor();
    create(value?: PartialMessage<UpstreamMetadataAck>): UpstreamMetadataAck;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamMetadataAck): UpstreamMetadataAck;
    internalBinaryWrite(message: UpstreamMetadataAck, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamMetadataAck
 */
export declare const UpstreamMetadataAck: UpstreamMetadataAck$Type;
declare class UpstreamChunkResult$Type extends MessageType<UpstreamChunkResult> {
    constructor();
    create(value?: PartialMessage<UpstreamChunkResult>): UpstreamChunkResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpstreamChunkResult): UpstreamChunkResult;
    internalBinaryWrite(message: UpstreamChunkResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message iscp2.UpstreamChunkResult
 */
export declare const UpstreamChunkResult: UpstreamChunkResult$Type;
export {};
