// package: tableau.eps.v1
// file: eps.proto

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

import * as grpc from '@grpc/grpc-js'
import * as eps_pb from './eps_pb'

interface IEpsService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
  launch: IEpsService_ILaunch
  extract: IEpsService_IExtract
  getAppUrl: IEpsService_IGetAppUrl
  terminateExtractor: IEpsService_ITerminateExtractor
}

interface IEpsService_ILaunch extends grpc.MethodDefinition<eps_pb.LaunchRequest, eps_pb.ExtractResponse> {
  path: '/tableau.eps.v1.Eps/Launch'
  requestStream: false
  responseStream: false
  requestSerialize: grpc.serialize<eps_pb.LaunchRequest>
  requestDeserialize: grpc.deserialize<eps_pb.LaunchRequest>
  responseSerialize: grpc.serialize<eps_pb.ExtractResponse>
  responseDeserialize: grpc.deserialize<eps_pb.ExtractResponse>
}
interface IEpsService_IExtract extends grpc.MethodDefinition<eps_pb.ExtractRequest, eps_pb.ExtractResponse> {
  path: '/tableau.eps.v1.Eps/Extract'
  requestStream: false
  responseStream: false
  requestSerialize: grpc.serialize<eps_pb.ExtractRequest>
  requestDeserialize: grpc.deserialize<eps_pb.ExtractRequest>
  responseSerialize: grpc.serialize<eps_pb.ExtractResponse>
  responseDeserialize: grpc.deserialize<eps_pb.ExtractResponse>
}
interface IEpsService_IGetAppUrl extends grpc.MethodDefinition<eps_pb.AppUrlRequest, eps_pb.AppUrlResponse> {
  path: '/tableau.eps.v1.Eps/GetAppUrl'
  requestStream: false
  responseStream: false
  requestSerialize: grpc.serialize<eps_pb.AppUrlRequest>
  requestDeserialize: grpc.deserialize<eps_pb.AppUrlRequest>
  responseSerialize: grpc.serialize<eps_pb.AppUrlResponse>
  responseDeserialize: grpc.deserialize<eps_pb.AppUrlResponse>
}
interface IEpsService_ITerminateExtractor
  extends grpc.MethodDefinition<eps_pb.TerminateExtractorRequest, eps_pb.TerminateExtractorResponse> {
  path: '/tableau.eps.v1.Eps/TerminateExtractor'
  requestStream: false
  responseStream: false
  requestSerialize: grpc.serialize<eps_pb.TerminateExtractorRequest>
  requestDeserialize: grpc.deserialize<eps_pb.TerminateExtractorRequest>
  responseSerialize: grpc.serialize<eps_pb.TerminateExtractorResponse>
  responseDeserialize: grpc.deserialize<eps_pb.TerminateExtractorResponse>
}

export const EpsService: IEpsService

export interface IEpsServer extends grpc.UntypedServiceImplementation {
  launch: grpc.handleUnaryCall<eps_pb.LaunchRequest, eps_pb.ExtractResponse>
  extract: grpc.handleUnaryCall<eps_pb.ExtractRequest, eps_pb.ExtractResponse>
  getAppUrl: grpc.handleUnaryCall<eps_pb.AppUrlRequest, eps_pb.AppUrlResponse>
  terminateExtractor: grpc.handleUnaryCall<eps_pb.TerminateExtractorRequest, eps_pb.TerminateExtractorResponse>
}

export interface IEpsClient {
  launch(
    request: eps_pb.LaunchRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  launch(
    request: eps_pb.LaunchRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  launch(
    request: eps_pb.LaunchRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  extract(
    request: eps_pb.ExtractRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  extract(
    request: eps_pb.ExtractRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  extract(
    request: eps_pb.ExtractRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  getAppUrl(
    request: eps_pb.AppUrlRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  getAppUrl(
    request: eps_pb.AppUrlRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  getAppUrl(
    request: eps_pb.AppUrlRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
  terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
  terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
}

export class EpsClient extends grpc.Client implements IEpsClient {
  constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>)
  public launch(
    request: eps_pb.LaunchRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public launch(
    request: eps_pb.LaunchRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public launch(
    request: eps_pb.LaunchRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public extract(
    request: eps_pb.ExtractRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public extract(
    request: eps_pb.ExtractRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public extract(
    request: eps_pb.ExtractRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.ExtractResponse) => void
  ): grpc.ClientUnaryCall
  public getAppUrl(
    request: eps_pb.AppUrlRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  public getAppUrl(
    request: eps_pb.AppUrlRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  public getAppUrl(
    request: eps_pb.AppUrlRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.AppUrlResponse) => void
  ): grpc.ClientUnaryCall
  public terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
  public terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    metadata: grpc.Metadata,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
  public terminateExtractor(
    request: eps_pb.TerminateExtractorRequest,
    metadata: grpc.Metadata,
    options: Partial<grpc.CallOptions>,
    callback: (error: grpc.ServiceError | null, response: eps_pb.TerminateExtractorResponse) => void
  ): grpc.ClientUnaryCall
}
