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

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

import * as grpc from "@grpc/grpc-js";
import * as akkaserverless_component_action_action_pb from "../../../akkaserverless/component/action/action_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 IActionsService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    handleUnary: IActionsService_IHandleUnary;
    handleStreamedIn: IActionsService_IHandleStreamedIn;
    handleStreamedOut: IActionsService_IHandleStreamedOut;
    handleStreamed: IActionsService_IHandleStreamed;
}

interface IActionsService_IHandleUnary extends grpc.MethodDefinition<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse> {
    path: "/akkaserverless.component.action.Actions/HandleUnary";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionCommand>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionCommand>;
    responseSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionResponse>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionResponse>;
}
interface IActionsService_IHandleStreamedIn extends grpc.MethodDefinition<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse> {
    path: "/akkaserverless.component.action.Actions/HandleStreamedIn";
    requestStream: true;
    responseStream: false;
    requestSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionCommand>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionCommand>;
    responseSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionResponse>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionResponse>;
}
interface IActionsService_IHandleStreamedOut extends grpc.MethodDefinition<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse> {
    path: "/akkaserverless.component.action.Actions/HandleStreamedOut";
    requestStream: false;
    responseStream: true;
    requestSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionCommand>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionCommand>;
    responseSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionResponse>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionResponse>;
}
interface IActionsService_IHandleStreamed extends grpc.MethodDefinition<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse> {
    path: "/akkaserverless.component.action.Actions/HandleStreamed";
    requestStream: true;
    responseStream: true;
    requestSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionCommand>;
    requestDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionCommand>;
    responseSerialize: grpc.serialize<akkaserverless_component_action_action_pb.ActionResponse>;
    responseDeserialize: grpc.deserialize<akkaserverless_component_action_action_pb.ActionResponse>;
}

export const ActionsService: IActionsService;

export interface IActionsServer extends grpc.UntypedServiceImplementation {
    handleUnary: grpc.handleUnaryCall<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamedIn: grpc.handleClientStreamingCall<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamedOut: grpc.handleServerStreamingCall<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamed: grpc.handleBidiStreamingCall<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
}

export interface IActionsClient {
    handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    handleStreamedIn(callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    handleStreamedIn(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    handleStreamedIn(options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    handleStreamedIn(metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    handleStreamedOut(request: akkaserverless_component_action_action_pb.ActionCommand, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamedOut(request: akkaserverless_component_action_action_pb.ActionCommand, metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamed(): grpc.ClientDuplexStream<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamed(options: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    handleStreamed(metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
}

export class ActionsClient extends grpc.Client implements IActionsClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    public handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    public handleUnary(request: akkaserverless_component_action_action_pb.ActionCommand, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientUnaryCall;
    public handleStreamedIn(callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    public handleStreamedIn(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    public handleStreamedIn(options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    public handleStreamedIn(metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: akkaserverless_component_action_action_pb.ActionResponse) => void): grpc.ClientWritableStream<akkaserverless_component_action_action_pb.ActionCommand>;
    public handleStreamedOut(request: akkaserverless_component_action_action_pb.ActionCommand, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<akkaserverless_component_action_action_pb.ActionResponse>;
    public handleStreamedOut(request: akkaserverless_component_action_action_pb.ActionCommand, metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<akkaserverless_component_action_action_pb.ActionResponse>;
    public handleStreamed(options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
    public handleStreamed(metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<akkaserverless_component_action_action_pb.ActionCommand, akkaserverless_component_action_action_pb.ActionResponse>;
}
