// package: akkaserverless.component.valueentity
// file: akkaserverless/component/valueentity/value_entity.proto

/* tslint:disable */
/* eslint-disable */

import * as grpc from "@grpc/grpc-js";
import * as akkaserverless_component_valueentity_value_entity_pb from "../../../akkaserverless/component/valueentity/value_entity_pb";
import * as akkaserverless_component_component_pb from "../../../akkaserverless/component/component_pb";
import * as akkaserverless_component_entity_entity_pb from "../../../akkaserverless/component/entity/entity_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";

interface IValueEntitiesService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    handle: IValueEntitiesService_IHandle;
}

interface IValueEntitiesService_IHandle extends grpc.MethodDefinition<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut> {
    path: "/akkaserverless.component.valueentity.ValueEntities/Handle";
    requestStream: true;
    responseStream: true;
    requestSerialize: grpc.serialize<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn>;
    responseSerialize: grpc.serialize<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
}

export const ValueEntitiesService: IValueEntitiesService;

export interface IValueEntitiesServer extends grpc.UntypedServiceImplementation {
    handle: grpc.handleBidiStreamingCall<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
}

export interface IValueEntitiesClient {
    handle(): grpc.ClientDuplexStream<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
    handle(options: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
    handle(metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
}

export class ValueEntitiesClient extends grpc.Client implements IValueEntitiesClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public handle(options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
    public handle(metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamIn, akkaserverless_component_valueentity_value_entity_pb.ValueEntityStreamOut>;
}
