// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "itemInput.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { ItemInputAPI } from "./itemInput";
import type { ItemAttachmentRemovedResponse } from "./itemInput";
import type { ItemAttachmentRemovedRequest } from "./itemInput";
import type { ItemAttachmentAddedResponse } from "./itemInput";
import type { ItemAttachmentAddedRequest } from "./itemInput";
import type { ItemDescriptionUpdatedResponse } from "./itemInput";
import type { ItemDescriptionUpdatedRequest } from "./itemInput";
import type { ItemDeletedResponse } from "./itemInput";
import type { ItemDeletedRequest } from "./itemInput";
import type { ItemMetaDataUpdatedResponse } from "./itemInput";
import type { ItemMetaDataUpdatedRequest } from "./itemInput";
import type { ItemLogisticVariantRemovedResponse } from "./itemInput";
import type { ItemLogisticVariantRemovedRequest } from "./itemInput";
import type { ItemLogisticVariantUpdatedResponse } from "./itemInput";
import type { ItemLogisticVariantUpdatedRequest } from "./itemInput";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { ItemCreatedResponse } from "./itemInput";
import type { ItemCreatedRequest } from "./itemInput";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
// 
// ClaimAdded : this message tells that a claim is added for the Item

// 
// message ItemClaimAddedPayload
// {
// option (payload) = true;
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Event";
// repeated ClaimSummary Claims = 1
// [
// (aggKey) = "ClaimTypeID", 
// (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
// description: "Number of claims added per type"}
// ];
// }
// message ItemClaimAddedEvent
// {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Event";
// option (preAggMethods) = "addClaim"; // Here are listed the pre aggregation methods to call before event message is aggregated
// EventHeader Header = 1
// [
// (validate.rules).message.required = true
// ];
// EntityID ID = 2
// [
// (validate.rules).message.required = true
// ];
// ItemClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message ItemClaimAddedRequest {
// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
// json_schema: {
// required: ["Header", "ID", "Payload"]
// }
// };
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Request";
// RequestProjectHeader Header = 1
// [
// (validate.rules).message.required = true
// ];
// EntityID ID = 2
// [
// (validate.rules).message.required = true
// ];
// ItemClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message ItemClaimAddedResponse {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Response";
// ResponseHeader Header = 1;
// EntityID ID = 2;
// }

/**
 *
 * API-server services
 *
 * @generated from protobuf service api.ItemInputAPI
 */
export interface IItemInputAPIClient {
    /**
     * @generated from protobuf rpc: Created(api.ItemCreatedRequest) returns (api.ItemCreatedResponse);
     */
    created(input: ItemCreatedRequest, options?: RpcOptions): UnaryCall<ItemCreatedRequest, ItemCreatedResponse>;
    /**
     * @generated from protobuf rpc: LogisticVariantUpdated(api.ItemLogisticVariantUpdatedRequest) returns (api.ItemLogisticVariantUpdatedResponse);
     */
    logisticVariantUpdated(input: ItemLogisticVariantUpdatedRequest, options?: RpcOptions): UnaryCall<ItemLogisticVariantUpdatedRequest, ItemLogisticVariantUpdatedResponse>;
    /**
     * @generated from protobuf rpc: LogisticVariantRemoved(api.ItemLogisticVariantRemovedRequest) returns (api.ItemLogisticVariantRemovedResponse);
     */
    logisticVariantRemoved(input: ItemLogisticVariantRemovedRequest, options?: RpcOptions): UnaryCall<ItemLogisticVariantRemovedRequest, ItemLogisticVariantRemovedResponse>;
    /**
     * @generated from protobuf rpc: MetaDataUpdated(api.ItemMetaDataUpdatedRequest) returns (api.ItemMetaDataUpdatedResponse);
     */
    metaDataUpdated(input: ItemMetaDataUpdatedRequest, options?: RpcOptions): UnaryCall<ItemMetaDataUpdatedRequest, ItemMetaDataUpdatedResponse>;
    /**
     * @generated from protobuf rpc: Deleted(api.ItemDeletedRequest) returns (api.ItemDeletedResponse);
     */
    deleted(input: ItemDeletedRequest, options?: RpcOptions): UnaryCall<ItemDeletedRequest, ItemDeletedResponse>;
    /**
     * @generated from protobuf rpc: DescriptionUpdated(api.ItemDescriptionUpdatedRequest) returns (api.ItemDescriptionUpdatedResponse);
     */
    descriptionUpdated(input: ItemDescriptionUpdatedRequest, options?: RpcOptions): UnaryCall<ItemDescriptionUpdatedRequest, ItemDescriptionUpdatedResponse>;
    /**
     * @generated from protobuf rpc: AttachmentAdded(api.ItemAttachmentAddedRequest) returns (api.ItemAttachmentAddedResponse);
     */
    attachmentAdded(input: ItemAttachmentAddedRequest, options?: RpcOptions): UnaryCall<ItemAttachmentAddedRequest, ItemAttachmentAddedResponse>;
    /**
     * @generated from protobuf rpc: AttachmentRemoved(api.ItemAttachmentRemovedRequest) returns (api.ItemAttachmentRemovedResponse);
     */
    attachmentRemoved(input: ItemAttachmentRemovedRequest, options?: RpcOptions): UnaryCall<ItemAttachmentRemovedRequest, ItemAttachmentRemovedResponse>;
}
// 
// ClaimAdded : this message tells that a claim is added for the Item

// 
// message ItemClaimAddedPayload
// {
// option (payload) = true;
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Event";
// repeated ClaimSummary Claims = 1
// [
// (aggKey) = "ClaimTypeID", 
// (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {
// description: "Number of claims added per type"}
// ];
// }
// message ItemClaimAddedEvent
// {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Event";
// option (preAggMethods) = "addClaim"; // Here are listed the pre aggregation methods to call before event message is aggregated
// EventHeader Header = 1
// [
// (validate.rules).message.required = true
// ];
// EntityID ID = 2
// [
// (validate.rules).message.required = true
// ];
// ItemClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message ItemClaimAddedRequest {
// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {
// json_schema: {
// required: ["Header", "ID", "Payload"]
// }
// };
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Request";
// RequestProjectHeader Header = 1
// [
// (validate.rules).message.required = true
// ];
// EntityID ID = 2
// [
// (validate.rules).message.required = true
// ];
// ItemClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message ItemClaimAddedResponse {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Response";
// ResponseHeader Header = 1;
// EntityID ID = 2;
// }

/**
 *
 * API-server services
 *
 * @generated from protobuf service api.ItemInputAPI
 */
export class ItemInputAPIClient implements IItemInputAPIClient, ServiceInfo {
    typeName = ItemInputAPI.typeName;
    methods = ItemInputAPI.methods;
    options = ItemInputAPI.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Created(api.ItemCreatedRequest) returns (api.ItemCreatedResponse);
     */
    created(input: ItemCreatedRequest, options?: RpcOptions): UnaryCall<ItemCreatedRequest, ItemCreatedResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemCreatedRequest, ItemCreatedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: LogisticVariantUpdated(api.ItemLogisticVariantUpdatedRequest) returns (api.ItemLogisticVariantUpdatedResponse);
     */
    logisticVariantUpdated(input: ItemLogisticVariantUpdatedRequest, options?: RpcOptions): UnaryCall<ItemLogisticVariantUpdatedRequest, ItemLogisticVariantUpdatedResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemLogisticVariantUpdatedRequest, ItemLogisticVariantUpdatedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: LogisticVariantRemoved(api.ItemLogisticVariantRemovedRequest) returns (api.ItemLogisticVariantRemovedResponse);
     */
    logisticVariantRemoved(input: ItemLogisticVariantRemovedRequest, options?: RpcOptions): UnaryCall<ItemLogisticVariantRemovedRequest, ItemLogisticVariantRemovedResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemLogisticVariantRemovedRequest, ItemLogisticVariantRemovedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: MetaDataUpdated(api.ItemMetaDataUpdatedRequest) returns (api.ItemMetaDataUpdatedResponse);
     */
    metaDataUpdated(input: ItemMetaDataUpdatedRequest, options?: RpcOptions): UnaryCall<ItemMetaDataUpdatedRequest, ItemMetaDataUpdatedResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemMetaDataUpdatedRequest, ItemMetaDataUpdatedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Deleted(api.ItemDeletedRequest) returns (api.ItemDeletedResponse);
     */
    deleted(input: ItemDeletedRequest, options?: RpcOptions): UnaryCall<ItemDeletedRequest, ItemDeletedResponse> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemDeletedRequest, ItemDeletedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: DescriptionUpdated(api.ItemDescriptionUpdatedRequest) returns (api.ItemDescriptionUpdatedResponse);
     */
    descriptionUpdated(input: ItemDescriptionUpdatedRequest, options?: RpcOptions): UnaryCall<ItemDescriptionUpdatedRequest, ItemDescriptionUpdatedResponse> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemDescriptionUpdatedRequest, ItemDescriptionUpdatedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: AttachmentAdded(api.ItemAttachmentAddedRequest) returns (api.ItemAttachmentAddedResponse);
     */
    attachmentAdded(input: ItemAttachmentAddedRequest, options?: RpcOptions): UnaryCall<ItemAttachmentAddedRequest, ItemAttachmentAddedResponse> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemAttachmentAddedRequest, ItemAttachmentAddedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: AttachmentRemoved(api.ItemAttachmentRemovedRequest) returns (api.ItemAttachmentRemovedResponse);
     */
    attachmentRemoved(input: ItemAttachmentRemovedRequest, options?: RpcOptions): UnaryCall<ItemAttachmentRemovedRequest, ItemAttachmentRemovedResponse> {
        const method = this.methods[7], opt = this._transport.mergeOptions(options);
        return stackIntercept<ItemAttachmentRemovedRequest, ItemAttachmentRemovedResponse>("unary", this._transport, method, opt, input);
    }
}
