// package: com.example
// file: example.proto

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

import * as grpc from "@grpc/grpc-js";
import * as example_pb from "./example_pb";
import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb";
import * as akkaserverless_annotations_pb from "./akkaserverless/annotations_pb";

interface IExampleServiceService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    doSomething: IExampleServiceService_IDoSomething;
    streamSomething: IExampleServiceService_IStreamSomething;
    publishJsonToTopic: IExampleServiceService_IPublishJsonToTopic;
    fail: IExampleServiceService_IFail;
}

interface IExampleServiceService_IDoSomething extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleService/DoSomething";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceService_IStreamSomething extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleService/StreamSomething";
    requestStream: false;
    responseStream: true;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceService_IPublishJsonToTopic extends grpc.MethodDefinition<example_pb.In, google_protobuf_any_pb.Any> {
    path: "/com.example.ExampleService/PublishJsonToTopic";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<google_protobuf_any_pb.Any>;
    responseDeserialize: grpc.deserialize<google_protobuf_any_pb.Any>;
}
interface IExampleServiceService_IFail extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleService/Fail";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}

export const ExampleServiceService: IExampleServiceService;

export interface IExampleServiceServer extends grpc.UntypedServiceImplementation {
    doSomething: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
    streamSomething: grpc.handleServerStreamingCall<example_pb.In, example_pb.Out>;
    publishJsonToTopic: grpc.handleUnaryCall<example_pb.In, google_protobuf_any_pb.Any>;
    fail: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
}

export interface IExampleServiceClient {
    doSomething(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomething(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomething(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    streamSomething(request: example_pb.In, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<example_pb.Out>;
    streamSomething(request: example_pb.In, metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<example_pb.Out>;
    publishJsonToTopic(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    publishJsonToTopic(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    publishJsonToTopic(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}

export class ExampleServiceClient extends grpc.Client implements IExampleServiceClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public doSomething(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomething(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomething(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public streamSomething(request: example_pb.In, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<example_pb.Out>;
    public streamSomething(request: example_pb.In, metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientReadableStream<example_pb.Out>;
    public publishJsonToTopic(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    public publishJsonToTopic(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    public publishJsonToTopic(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: google_protobuf_any_pb.Any) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}

interface IExampleServiceTwoService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    doSomethingOne: IExampleServiceTwoService_IDoSomethingOne;
    doSomethingTwo: IExampleServiceTwoService_IDoSomethingTwo;
    fail: IExampleServiceTwoService_IFail;
}

interface IExampleServiceTwoService_IDoSomethingOne extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceTwo/DoSomethingOne";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceTwoService_IDoSomethingTwo extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceTwo/DoSomethingTwo";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceTwoService_IFail extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceTwo/Fail";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}

export const ExampleServiceTwoService: IExampleServiceTwoService;

export interface IExampleServiceTwoServer extends grpc.UntypedServiceImplementation {
    doSomethingOne: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
    doSomethingTwo: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
    fail: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
}

export interface IExampleServiceTwoClient {
    doSomethingOne(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}

export class ExampleServiceTwoClient extends grpc.Client implements IExampleServiceTwoClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public doSomethingOne(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}

interface IExampleServiceThreeService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
    doSomethingOne: IExampleServiceThreeService_IDoSomethingOne;
    doSomethingTwo: IExampleServiceThreeService_IDoSomethingTwo;
    fail: IExampleServiceThreeService_IFail;
}

interface IExampleServiceThreeService_IDoSomethingOne extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceThree/DoSomethingOne";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceThreeService_IDoSomethingTwo extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceThree/DoSomethingTwo";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}
interface IExampleServiceThreeService_IFail extends grpc.MethodDefinition<example_pb.In, example_pb.Out> {
    path: "/com.example.ExampleServiceThree/Fail";
    requestStream: false;
    responseStream: false;
    requestSerialize: grpc.serialize<example_pb.In>;
    requestDeserialize: grpc.deserialize<example_pb.In>;
    responseSerialize: grpc.serialize<example_pb.Out>;
    responseDeserialize: grpc.deserialize<example_pb.Out>;
}

export const ExampleServiceThreeService: IExampleServiceThreeService;

export interface IExampleServiceThreeServer extends grpc.UntypedServiceImplementation {
    doSomethingOne: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
    doSomethingTwo: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
    fail: grpc.handleUnaryCall<example_pb.In, example_pb.Out>;
}

export interface IExampleServiceThreeClient {
    doSomethingOne(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}

export class ExampleServiceThreeClient extends grpc.Client implements IExampleServiceThreeClient {
    constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
    public doSomethingOne(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingOne(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public doSomethingTwo(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
    public fail(request: example_pb.In, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: example_pb.Out) => void): grpc.ClientUnaryCall;
}
