/**
 * @fileoverview gRPC-Web generated client stub for palm.lily.v1
 * @enhanceable
 * @public
 */

// Code generated by protoc-gen-grpc-web. DO NOT EDIT.
// versions:
// 	protoc-gen-grpc-web v1.4.2
// 	protoc              v4.24.3
// source: lily.proto


/* eslint-disable */
// @ts-nocheck


import * as grpcWeb from 'grpc-web';

import * as lily_pb from './lily_pb';


export class ExcelClient {
  client_: grpcWeb.AbstractClientBase;
  hostname_: string;
  credentials_: null | { [index: string]: string; };
  options_: null | { [index: string]: any; };

  constructor (hostname: string,
               credentials?: null | { [index: string]: string; },
               options?: null | { [index: string]: any; }) {
    if (!options) options = {};
    if (!credentials) credentials = {};
    options['format'] = 'binary';

    this.client_ = new grpcWeb.GrpcWebClientBase(options);
    this.hostname_ = hostname.replace(/\/+$/, '');
    this.credentials_ = credentials;
    this.options_ = options;
  }

  methodDescriptorParse = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.Excel/Parse',
    grpcWeb.MethodType.UNARY,
    lily_pb.S3File,
    lily_pb.ExcelModel,
    (request: lily_pb.S3File) => {
      return request.serializeBinary();
    },
    lily_pb.ExcelModel.deserializeBinary
  );

  parse(
    request: lily_pb.S3File,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.ExcelModel>;

  parse(
    request: lily_pb.S3File,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.ExcelModel) => void): grpcWeb.ClientReadableStream<lily_pb.ExcelModel>;

  parse(
    request: lily_pb.S3File,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.ExcelModel) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.Excel/Parse',
        request,
        metadata || {},
        this.methodDescriptorParse,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.Excel/Parse',
    request,
    metadata || {},
    this.methodDescriptorParse);
  }

  methodDescriptorGenerate = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.Excel/Generate',
    grpcWeb.MethodType.UNARY,
    lily_pb.ExcelModel,
    lily_pb.S3File,
    (request: lily_pb.ExcelModel) => {
      return request.serializeBinary();
    },
    lily_pb.S3File.deserializeBinary
  );

  generate(
    request: lily_pb.ExcelModel,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.S3File>;

  generate(
    request: lily_pb.ExcelModel,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void): grpcWeb.ClientReadableStream<lily_pb.S3File>;

  generate(
    request: lily_pb.ExcelModel,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.Excel/Generate',
        request,
        metadata || {},
        this.methodDescriptorGenerate,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.Excel/Generate',
    request,
    metadata || {},
    this.methodDescriptorGenerate);
  }

}

export class S3Client {
  client_: grpcWeb.AbstractClientBase;
  hostname_: string;
  credentials_: null | { [index: string]: string; };
  options_: null | { [index: string]: any; };

  constructor (hostname: string,
               credentials?: null | { [index: string]: string; },
               options?: null | { [index: string]: any; }) {
    if (!options) options = {};
    if (!credentials) credentials = {};
    options['format'] = 'binary';

    this.client_ = new grpcWeb.GrpcWebClientBase(options);
    this.hostname_ = hostname.replace(/\/+$/, '');
    this.credentials_ = credentials;
    this.options_ = options;
  }

  methodDescriptorGetFile = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.S3/GetFile',
    grpcWeb.MethodType.UNARY,
    lily_pb.S3GetFileRequest,
    lily_pb.S3GetFileResponse,
    (request: lily_pb.S3GetFileRequest) => {
      return request.serializeBinary();
    },
    lily_pb.S3GetFileResponse.deserializeBinary
  );

  getFile(
    request: lily_pb.S3GetFileRequest,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.S3GetFileResponse>;

  getFile(
    request: lily_pb.S3GetFileRequest,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.S3GetFileResponse) => void): grpcWeb.ClientReadableStream<lily_pb.S3GetFileResponse>;

  getFile(
    request: lily_pb.S3GetFileRequest,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.S3GetFileResponse) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.S3/GetFile',
        request,
        metadata || {},
        this.methodDescriptorGetFile,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.S3/GetFile',
    request,
    metadata || {},
    this.methodDescriptorGetFile);
  }

}

export class TexClient {
  client_: grpcWeb.AbstractClientBase;
  hostname_: string;
  credentials_: null | { [index: string]: string; };
  options_: null | { [index: string]: any; };

  constructor (hostname: string,
               credentials?: null | { [index: string]: string; },
               options?: null | { [index: string]: any; }) {
    if (!options) options = {};
    if (!credentials) credentials = {};
    options['format'] = 'binary';

    this.client_ = new grpcWeb.GrpcWebClientBase(options);
    this.hostname_ = hostname.replace(/\/+$/, '');
    this.credentials_ = credentials;
    this.options_ = options;
  }

  methodDescriptorToPdf = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.Tex/ToPdf',
    grpcWeb.MethodType.UNARY,
    lily_pb.TexToRequest,
    lily_pb.S3File,
    (request: lily_pb.TexToRequest) => {
      return request.serializeBinary();
    },
    lily_pb.S3File.deserializeBinary
  );

  toPdf(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.S3File>;

  toPdf(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void): grpcWeb.ClientReadableStream<lily_pb.S3File>;

  toPdf(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.Tex/ToPdf',
        request,
        metadata || {},
        this.methodDescriptorToPdf,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.Tex/ToPdf',
    request,
    metadata || {},
    this.methodDescriptorToPdf);
  }

  methodDescriptorToWord = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.Tex/ToWord',
    grpcWeb.MethodType.UNARY,
    lily_pb.TexToRequest,
    lily_pb.S3File,
    (request: lily_pb.TexToRequest) => {
      return request.serializeBinary();
    },
    lily_pb.S3File.deserializeBinary
  );

  toWord(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.S3File>;

  toWord(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void): grpcWeb.ClientReadableStream<lily_pb.S3File>;

  toWord(
    request: lily_pb.TexToRequest,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.Tex/ToWord',
        request,
        metadata || {},
        this.methodDescriptorToWord,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.Tex/ToWord',
    request,
    metadata || {},
    this.methodDescriptorToWord);
  }

}

export class EpubClient {
  client_: grpcWeb.AbstractClientBase;
  hostname_: string;
  credentials_: null | { [index: string]: string; };
  options_: null | { [index: string]: any; };

  constructor (hostname: string,
               credentials?: null | { [index: string]: string; },
               options?: null | { [index: string]: any; }) {
    if (!options) options = {};
    if (!credentials) credentials = {};
    options['format'] = 'binary';

    this.client_ = new grpcWeb.GrpcWebClientBase(options);
    this.hostname_ = hostname.replace(/\/+$/, '');
    this.credentials_ = credentials;
    this.options_ = options;
  }

  methodDescriptorBuild = new grpcWeb.MethodDescriptor(
    '/palm.lily.v1.Epub/Build',
    grpcWeb.MethodType.UNARY,
    lily_pb.EpubBuildRequest,
    lily_pb.S3File,
    (request: lily_pb.EpubBuildRequest) => {
      return request.serializeBinary();
    },
    lily_pb.S3File.deserializeBinary
  );

  build(
    request: lily_pb.EpubBuildRequest,
    metadata: grpcWeb.Metadata | null): Promise<lily_pb.S3File>;

  build(
    request: lily_pb.EpubBuildRequest,
    metadata: grpcWeb.Metadata | null,
    callback: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void): grpcWeb.ClientReadableStream<lily_pb.S3File>;

  build(
    request: lily_pb.EpubBuildRequest,
    metadata: grpcWeb.Metadata | null,
    callback?: (err: grpcWeb.RpcError,
               response: lily_pb.S3File) => void) {
    if (callback !== undefined) {
      return this.client_.rpcCall(
        this.hostname_ +
          '/palm.lily.v1.Epub/Build',
        request,
        metadata || {},
        this.methodDescriptorBuild,
        callback);
    }
    return this.client_.unaryCall(
    this.hostname_ +
      '/palm.lily.v1.Epub/Build',
    request,
    metadata || {},
    this.methodDescriptorBuild);
  }

}

