// package: akkaserverless.component.replicatedentity
// file: akkaserverless/component/replicatedentity/replicated_entity.proto

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

import * as grpc from "@grpc/grpc-js";
import * as akkaserverless_component_replicatedentity_replicated_entity_pb from "../../../akkaserverless/component/replicatedentity/replicated_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 IReplicatedEntitiesService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    handle: IReplicatedEntitiesService_IHandle;
}

interface IReplicatedEntitiesService_IHandle extends grpc.MethodDefinition<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut> {
    path: "/akkaserverless.component.replicatedentity.ReplicatedEntities/Handle";
    requestStream: true;
    responseStream: true;
    requestSerialize: grpc.serialize<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn>;
    responseSerialize: grpc.serialize<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
}

export const ReplicatedEntitiesService: IReplicatedEntitiesService;

export interface IReplicatedEntitiesServer extends grpc.UntypedServiceImplementation {
    handle: grpc.handleBidiStreamingCall<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
}

export interface IReplicatedEntitiesClient {
    handle(): grpc.ClientDuplexStream<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
    handle(options: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
    handle(metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
}

export class ReplicatedEntitiesClient extends grpc.Client implements IReplicatedEntitiesClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public handle(options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
    public handle(metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamIn, akkaserverless_component_replicatedentity_replicated_entity_pb.ReplicatedEntityStreamOut>;
}
