// package: akkaserverless.component.view
// file: akkaserverless/component/view/view.proto

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

import * as grpc from "@grpc/grpc-js";
import * as akkaserverless_component_view_view_pb from "../../../akkaserverless/component/view/view_pb";
import * as akkaserverless_component_component_pb from "../../../akkaserverless/component/component_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";

interface IViewsService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    handle: IViewsService_IHandle;
}

interface IViewsService_IHandle extends grpc.MethodDefinition<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut> {
    path: "/akkaserverless.component.view.Views/Handle";
    requestStream: true;
    responseStream: true;
    requestSerialize: grpc.serialize<akkaserverless_component_view_view_pb.ViewStreamIn>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_view_view_pb.ViewStreamIn>;
    responseSerialize: grpc.serialize<akkaserverless_component_view_view_pb.ViewStreamOut>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_view_view_pb.ViewStreamOut>;
}

export const ViewsService: IViewsService;

export interface IViewsServer extends grpc.UntypedServiceImplementation {
    handle: grpc.handleBidiStreamingCall<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
}

export interface IViewsClient {
    handle(): grpc.ClientDuplexStream<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
    handle(options: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
    handle(metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
}

export class ViewsClient extends grpc.Client implements IViewsClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public handle(options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
    public handle(metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_view_view_pb.ViewStreamIn, akkaserverless_component_view_view_pb.ViewStreamOut>;
}
