// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "partnerInput.proto" (package "api", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { PartnerInputAPI } from "./partnerInput";
import type { PartnerAttachmentRemovedResponse } from "./partnerInput";
import type { PartnerAttachmentRemovedRequest } from "./partnerInput";
import type { PartnerAttachmentAddedResponse } from "./partnerInput";
import type { PartnerAttachmentAddedRequest } from "./partnerInput";
import type { PartnerDeletedResponse } from "./partnerInput";
import type { PartnerDeletedRequest } from "./partnerInput";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { PartnerCreatedResponse } from "./partnerInput";
import type { PartnerCreatedRequest } from "./partnerInput";
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 Partner

// 
// message PartnerClaimAddedPayload
// {
// 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 PartnerClaimAddedEvent
// {
// 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
// ];
// PartnerClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message PartnerClaimAddedRequest {
// 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
// ];
// PartnerClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message PartnerClaimAddedResponse {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Response";
// ResponseHeader Header = 1;
// EntityID ID = 2;
// }

/**
 *
 * API-server services
 *
 * @generated from protobuf service api.PartnerInputAPI
 */
export interface IPartnerInputAPIClient {
    /**
     * @generated from protobuf rpc: Created(api.PartnerCreatedRequest) returns (api.PartnerCreatedResponse);
     */
    created(input: PartnerCreatedRequest, options?: RpcOptions): UnaryCall<PartnerCreatedRequest, PartnerCreatedResponse>;
    /**
     * @generated from protobuf rpc: Deleted(api.PartnerDeletedRequest) returns (api.PartnerDeletedResponse);
     */
    deleted(input: PartnerDeletedRequest, options?: RpcOptions): UnaryCall<PartnerDeletedRequest, PartnerDeletedResponse>;
    /**
     * @generated from protobuf rpc: AttachmentAdded(api.PartnerAttachmentAddedRequest) returns (api.PartnerAttachmentAddedResponse);
     */
    attachmentAdded(input: PartnerAttachmentAddedRequest, options?: RpcOptions): UnaryCall<PartnerAttachmentAddedRequest, PartnerAttachmentAddedResponse>;
    /**
     * @generated from protobuf rpc: AttachmentRemoved(api.PartnerAttachmentRemovedRequest) returns (api.PartnerAttachmentRemovedResponse);
     */
    attachmentRemoved(input: PartnerAttachmentRemovedRequest, options?: RpcOptions): UnaryCall<PartnerAttachmentRemovedRequest, PartnerAttachmentRemovedResponse>;
}
// 
// ClaimAdded : this message tells that a claim is added for the Partner

// 
// message PartnerClaimAddedPayload
// {
// 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 PartnerClaimAddedEvent
// {
// 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
// ];
// PartnerClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message PartnerClaimAddedRequest {
// 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
// ];
// PartnerClaimAddedPayload Payload = 3
// [
// (validate.rules).message.required = true
// ];
// }
// message PartnerClaimAddedResponse {
// option (inputEvent) = "ClaimAdded";
// option (messageType) = "Response";
// ResponseHeader Header = 1;
// EntityID ID = 2;
// }

/**
 *
 * API-server services
 *
 * @generated from protobuf service api.PartnerInputAPI
 */
export class PartnerInputAPIClient implements IPartnerInputAPIClient, ServiceInfo {
    typeName = PartnerInputAPI.typeName;
    methods = PartnerInputAPI.methods;
    options = PartnerInputAPI.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * @generated from protobuf rpc: Created(api.PartnerCreatedRequest) returns (api.PartnerCreatedResponse);
     */
    created(input: PartnerCreatedRequest, options?: RpcOptions): UnaryCall<PartnerCreatedRequest, PartnerCreatedResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<PartnerCreatedRequest, PartnerCreatedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: Deleted(api.PartnerDeletedRequest) returns (api.PartnerDeletedResponse);
     */
    deleted(input: PartnerDeletedRequest, options?: RpcOptions): UnaryCall<PartnerDeletedRequest, PartnerDeletedResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<PartnerDeletedRequest, PartnerDeletedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: AttachmentAdded(api.PartnerAttachmentAddedRequest) returns (api.PartnerAttachmentAddedResponse);
     */
    attachmentAdded(input: PartnerAttachmentAddedRequest, options?: RpcOptions): UnaryCall<PartnerAttachmentAddedRequest, PartnerAttachmentAddedResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<PartnerAttachmentAddedRequest, PartnerAttachmentAddedResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * @generated from protobuf rpc: AttachmentRemoved(api.PartnerAttachmentRemovedRequest) returns (api.PartnerAttachmentRemovedResponse);
     */
    attachmentRemoved(input: PartnerAttachmentRemovedRequest, options?: RpcOptions): UnaryCall<PartnerAttachmentRemovedRequest, PartnerAttachmentRemovedResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<PartnerAttachmentRemovedRequest, PartnerAttachmentRemovedResponse>("unary", this._transport, method, opt, input);
    }
}
