//
// Autogenerated by Thrift Compiler (0.19.0)
//
// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
//

import thrift = require('thrift');
import Thrift = thrift.Thrift;
import Q = thrift.Q;
import Int64 = require('node-int64');
import common_ttypes = require('./common_types');


import ttypes = require('./client_types');
import TSProtocolVersion = ttypes.TSProtocolVersion
import TSConnectionType = ttypes.TSConnectionType
import TSQueryDataSet = ttypes.TSQueryDataSet
import TSQueryNonAlignDataSet = ttypes.TSQueryNonAlignDataSet
import TSTracingInfo = ttypes.TSTracingInfo
import TSExecuteStatementResp = ttypes.TSExecuteStatementResp
import TSOpenSessionResp = ttypes.TSOpenSessionResp
import TSOpenSessionReq = ttypes.TSOpenSessionReq
import TSCloseSessionReq = ttypes.TSCloseSessionReq
import TSExecuteStatementReq = ttypes.TSExecuteStatementReq
import TSExecuteBatchStatementReq = ttypes.TSExecuteBatchStatementReq
import TSGetOperationStatusReq = ttypes.TSGetOperationStatusReq
import TSCancelOperationReq = ttypes.TSCancelOperationReq
import TSCloseOperationReq = ttypes.TSCloseOperationReq
import TSFetchResultsReq = ttypes.TSFetchResultsReq
import TSFetchResultsResp = ttypes.TSFetchResultsResp
import TSFetchMetadataResp = ttypes.TSFetchMetadataResp
import TSFetchMetadataReq = ttypes.TSFetchMetadataReq
import TSGetTimeZoneResp = ttypes.TSGetTimeZoneResp
import TSSetTimeZoneReq = ttypes.TSSetTimeZoneReq
import TSInsertRecordReq = ttypes.TSInsertRecordReq
import TSInsertStringRecordReq = ttypes.TSInsertStringRecordReq
import TSInsertTabletReq = ttypes.TSInsertTabletReq
import TSInsertTabletsReq = ttypes.TSInsertTabletsReq
import TSInsertRecordsReq = ttypes.TSInsertRecordsReq
import TSInsertRecordsOfOneDeviceReq = ttypes.TSInsertRecordsOfOneDeviceReq
import TSInsertStringRecordsOfOneDeviceReq = ttypes.TSInsertStringRecordsOfOneDeviceReq
import TSInsertStringRecordsReq = ttypes.TSInsertStringRecordsReq
import TSDeleteDataReq = ttypes.TSDeleteDataReq
import TSCreateTimeseriesReq = ttypes.TSCreateTimeseriesReq
import TSCreateAlignedTimeseriesReq = ttypes.TSCreateAlignedTimeseriesReq
import TSRawDataQueryReq = ttypes.TSRawDataQueryReq
import TSLastDataQueryReq = ttypes.TSLastDataQueryReq
import TSFastLastDataQueryForOnePrefixPathReq = ttypes.TSFastLastDataQueryForOnePrefixPathReq
import TSFastLastDataQueryForOneDeviceReq = ttypes.TSFastLastDataQueryForOneDeviceReq
import TSAggregationQueryReq = ttypes.TSAggregationQueryReq
import TSCreateMultiTimeseriesReq = ttypes.TSCreateMultiTimeseriesReq
import ServerProperties = ttypes.ServerProperties
import TSSetSchemaTemplateReq = ttypes.TSSetSchemaTemplateReq
import TSCreateSchemaTemplateReq = ttypes.TSCreateSchemaTemplateReq
import TSAppendSchemaTemplateReq = ttypes.TSAppendSchemaTemplateReq
import TSPruneSchemaTemplateReq = ttypes.TSPruneSchemaTemplateReq
import TSQueryTemplateReq = ttypes.TSQueryTemplateReq
import TSQueryTemplateResp = ttypes.TSQueryTemplateResp
import TSUnsetSchemaTemplateReq = ttypes.TSUnsetSchemaTemplateReq
import TSDropSchemaTemplateReq = ttypes.TSDropSchemaTemplateReq
import TCreateTimeseriesUsingSchemaTemplateReq = ttypes.TCreateTimeseriesUsingSchemaTemplateReq
import TSyncIdentityInfo = ttypes.TSyncIdentityInfo
import TSyncTransportMetaInfo = ttypes.TSyncTransportMetaInfo
import TPipeTransferReq = ttypes.TPipeTransferReq
import TPipeTransferResp = ttypes.TPipeTransferResp
import TPipeSubscribeReq = ttypes.TPipeSubscribeReq
import TPipeSubscribeResp = ttypes.TPipeSubscribeResp
import TSBackupConfigurationResp = ttypes.TSBackupConfigurationResp
import TSConnectionInfo = ttypes.TSConnectionInfo
import TSConnectionInfoResp = ttypes.TSConnectionInfoResp

declare class Client {
  private output: thrift.TTransport;
  private pClass: thrift.TProtocol;
  private _seqid: number;

  constructor(output: thrift.TTransport, pClass: { new(trans: thrift.TTransport): thrift.TProtocol });

  executeQueryStatementV2(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeQueryStatementV2(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeUpdateStatementV2(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeUpdateStatementV2(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeStatementV2(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeStatementV2(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeRawDataQueryV2(req: TSRawDataQueryReq): TSExecuteStatementResp;

  executeRawDataQueryV2(req: TSRawDataQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeLastDataQueryV2(req: TSLastDataQueryReq): TSExecuteStatementResp;

  executeLastDataQueryV2(req: TSLastDataQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeFastLastDataQueryForOnePrefixPath(req: TSFastLastDataQueryForOnePrefixPathReq): TSExecuteStatementResp;

  executeFastLastDataQueryForOnePrefixPath(req: TSFastLastDataQueryForOnePrefixPathReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeFastLastDataQueryForOneDeviceV2(req: TSFastLastDataQueryForOneDeviceReq): TSExecuteStatementResp;

  executeFastLastDataQueryForOneDeviceV2(req: TSFastLastDataQueryForOneDeviceReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeAggregationQueryV2(req: TSAggregationQueryReq): TSExecuteStatementResp;

  executeAggregationQueryV2(req: TSAggregationQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  fetchResultsV2(req: TSFetchResultsReq): TSFetchResultsResp;

  fetchResultsV2(req: TSFetchResultsReq, callback?: (error: void, response: TSFetchResultsResp)=>void): void;

  openSession(req: TSOpenSessionReq): TSOpenSessionResp;

  openSession(req: TSOpenSessionReq, callback?: (error: void, response: TSOpenSessionResp)=>void): void;

  closeSession(req: TSCloseSessionReq): common_ttypes.TSStatus;

  closeSession(req: TSCloseSessionReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  executeStatement(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeStatement(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeBatchStatement(req: TSExecuteBatchStatementReq): common_ttypes.TSStatus;

  executeBatchStatement(req: TSExecuteBatchStatementReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  executeQueryStatement(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeQueryStatement(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeUpdateStatement(req: TSExecuteStatementReq): TSExecuteStatementResp;

  executeUpdateStatement(req: TSExecuteStatementReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  fetchResults(req: TSFetchResultsReq): TSFetchResultsResp;

  fetchResults(req: TSFetchResultsReq, callback?: (error: void, response: TSFetchResultsResp)=>void): void;

  fetchMetadata(req: TSFetchMetadataReq): TSFetchMetadataResp;

  fetchMetadata(req: TSFetchMetadataReq, callback?: (error: void, response: TSFetchMetadataResp)=>void): void;

  cancelOperation(req: TSCancelOperationReq): common_ttypes.TSStatus;

  cancelOperation(req: TSCancelOperationReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  closeOperation(req: TSCloseOperationReq): common_ttypes.TSStatus;

  closeOperation(req: TSCloseOperationReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  getTimeZone(sessionId: Int64): TSGetTimeZoneResp;

  getTimeZone(sessionId: Int64, callback?: (error: void, response: TSGetTimeZoneResp)=>void): void;

  setTimeZone(req: TSSetTimeZoneReq): common_ttypes.TSStatus;

  setTimeZone(req: TSSetTimeZoneReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  getProperties(): ServerProperties;

  getProperties(callback?: (error: void, response: ServerProperties)=>void): void;

  setStorageGroup(sessionId: Int64, storageGroup: string): common_ttypes.TSStatus;

  setStorageGroup(sessionId: Int64, storageGroup: string, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  createTimeseries(req: TSCreateTimeseriesReq): common_ttypes.TSStatus;

  createTimeseries(req: TSCreateTimeseriesReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  createAlignedTimeseries(req: TSCreateAlignedTimeseriesReq): common_ttypes.TSStatus;

  createAlignedTimeseries(req: TSCreateAlignedTimeseriesReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  createMultiTimeseries(req: TSCreateMultiTimeseriesReq): common_ttypes.TSStatus;

  createMultiTimeseries(req: TSCreateMultiTimeseriesReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  deleteTimeseries(sessionId: Int64, path: string[]): common_ttypes.TSStatus;

  deleteTimeseries(sessionId: Int64, path: string[], callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  deleteStorageGroups(sessionId: Int64, storageGroup: string[]): common_ttypes.TSStatus;

  deleteStorageGroups(sessionId: Int64, storageGroup: string[], callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertRecord(req: TSInsertRecordReq): common_ttypes.TSStatus;

  insertRecord(req: TSInsertRecordReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertStringRecord(req: TSInsertStringRecordReq): common_ttypes.TSStatus;

  insertStringRecord(req: TSInsertStringRecordReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertTablet(req: TSInsertTabletReq): common_ttypes.TSStatus;

  insertTablet(req: TSInsertTabletReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertTablets(req: TSInsertTabletsReq): common_ttypes.TSStatus;

  insertTablets(req: TSInsertTabletsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertRecords(req: TSInsertRecordsReq): common_ttypes.TSStatus;

  insertRecords(req: TSInsertRecordsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertRecordsOfOneDevice(req: TSInsertRecordsOfOneDeviceReq): common_ttypes.TSStatus;

  insertRecordsOfOneDevice(req: TSInsertRecordsOfOneDeviceReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertStringRecordsOfOneDevice(req: TSInsertStringRecordsOfOneDeviceReq): common_ttypes.TSStatus;

  insertStringRecordsOfOneDevice(req: TSInsertStringRecordsOfOneDeviceReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  insertStringRecords(req: TSInsertStringRecordsReq): common_ttypes.TSStatus;

  insertStringRecords(req: TSInsertStringRecordsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertTablet(req: TSInsertTabletReq): common_ttypes.TSStatus;

  testInsertTablet(req: TSInsertTabletReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertTablets(req: TSInsertTabletsReq): common_ttypes.TSStatus;

  testInsertTablets(req: TSInsertTabletsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertRecord(req: TSInsertRecordReq): common_ttypes.TSStatus;

  testInsertRecord(req: TSInsertRecordReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertStringRecord(req: TSInsertStringRecordReq): common_ttypes.TSStatus;

  testInsertStringRecord(req: TSInsertStringRecordReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertRecords(req: TSInsertRecordsReq): common_ttypes.TSStatus;

  testInsertRecords(req: TSInsertRecordsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertRecordsOfOneDevice(req: TSInsertRecordsOfOneDeviceReq): common_ttypes.TSStatus;

  testInsertRecordsOfOneDevice(req: TSInsertRecordsOfOneDeviceReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  testInsertStringRecords(req: TSInsertStringRecordsReq): common_ttypes.TSStatus;

  testInsertStringRecords(req: TSInsertStringRecordsReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  deleteData(req: TSDeleteDataReq): common_ttypes.TSStatus;

  deleteData(req: TSDeleteDataReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  executeRawDataQuery(req: TSRawDataQueryReq): TSExecuteStatementResp;

  executeRawDataQuery(req: TSRawDataQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeLastDataQuery(req: TSLastDataQueryReq): TSExecuteStatementResp;

  executeLastDataQuery(req: TSLastDataQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  executeAggregationQuery(req: TSAggregationQueryReq): TSExecuteStatementResp;

  executeAggregationQuery(req: TSAggregationQueryReq, callback?: (error: void, response: TSExecuteStatementResp)=>void): void;

  requestStatementId(sessionId: Int64): Int64;

  requestStatementId(sessionId: Int64, callback?: (error: void, response: Int64)=>void): void;

  createSchemaTemplate(req: TSCreateSchemaTemplateReq): common_ttypes.TSStatus;

  createSchemaTemplate(req: TSCreateSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  appendSchemaTemplate(req: TSAppendSchemaTemplateReq): common_ttypes.TSStatus;

  appendSchemaTemplate(req: TSAppendSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  pruneSchemaTemplate(req: TSPruneSchemaTemplateReq): common_ttypes.TSStatus;

  pruneSchemaTemplate(req: TSPruneSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  querySchemaTemplate(req: TSQueryTemplateReq): TSQueryTemplateResp;

  querySchemaTemplate(req: TSQueryTemplateReq, callback?: (error: void, response: TSQueryTemplateResp)=>void): void;

  showConfigurationTemplate(): common_ttypes.TShowConfigurationTemplateResp;

  showConfigurationTemplate(callback?: (error: void, response: common_ttypes.TShowConfigurationTemplateResp)=>void): void;

  showConfiguration(nodeId: number): common_ttypes.TShowConfigurationResp;

  showConfiguration(nodeId: number, callback?: (error: void, response: common_ttypes.TShowConfigurationResp)=>void): void;

  setSchemaTemplate(req: TSSetSchemaTemplateReq): common_ttypes.TSStatus;

  setSchemaTemplate(req: TSSetSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  unsetSchemaTemplate(req: TSUnsetSchemaTemplateReq): common_ttypes.TSStatus;

  unsetSchemaTemplate(req: TSUnsetSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  dropSchemaTemplate(req: TSDropSchemaTemplateReq): common_ttypes.TSStatus;

  dropSchemaTemplate(req: TSDropSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  createTimeseriesUsingSchemaTemplate(req: TCreateTimeseriesUsingSchemaTemplateReq): common_ttypes.TSStatus;

  createTimeseriesUsingSchemaTemplate(req: TCreateTimeseriesUsingSchemaTemplateReq, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  handshake(info: TSyncIdentityInfo): common_ttypes.TSStatus;

  handshake(info: TSyncIdentityInfo, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  sendPipeData(buff: Buffer): common_ttypes.TSStatus;

  sendPipeData(buff: Buffer, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  sendFile(metaInfo: TSyncTransportMetaInfo, buff: Buffer): common_ttypes.TSStatus;

  sendFile(metaInfo: TSyncTransportMetaInfo, buff: Buffer, callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;

  pipeTransfer(req: TPipeTransferReq): TPipeTransferResp;

  pipeTransfer(req: TPipeTransferReq, callback?: (error: void, response: TPipeTransferResp)=>void): void;

  pipeSubscribe(req: TPipeSubscribeReq): TPipeSubscribeResp;

  pipeSubscribe(req: TPipeSubscribeReq, callback?: (error: void, response: TPipeSubscribeResp)=>void): void;

  getBackupConfiguration(): TSBackupConfigurationResp;

  getBackupConfiguration(callback?: (error: void, response: TSBackupConfigurationResp)=>void): void;

  fetchAllConnectionsInfo(): TSConnectionInfoResp;

  fetchAllConnectionsInfo(callback?: (error: void, response: TSConnectionInfoResp)=>void): void;

  /**
   * For other node's call
   */
  testConnectionEmptyRPC(): common_ttypes.TSStatus;

  /**
   * For other node's call
   */
  testConnectionEmptyRPC(callback?: (error: void, response: common_ttypes.TSStatus)=>void): void;
}

declare class Processor {
  private _handler: object;

  constructor(handler: object);
  process(input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeQueryStatementV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeUpdateStatementV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeStatementV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeRawDataQueryV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeLastDataQueryV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeFastLastDataQueryForOnePrefixPath(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeFastLastDataQueryForOneDeviceV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeAggregationQueryV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_fetchResultsV2(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_openSession(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_closeSession(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeStatement(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeBatchStatement(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeQueryStatement(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeUpdateStatement(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_fetchResults(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_fetchMetadata(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_cancelOperation(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_closeOperation(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_getTimeZone(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_setTimeZone(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_getProperties(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_setStorageGroup(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_createTimeseries(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_createAlignedTimeseries(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_createMultiTimeseries(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_deleteTimeseries(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_deleteStorageGroups(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertRecord(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertStringRecord(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertTablet(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertTablets(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertRecords(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertRecordsOfOneDevice(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertStringRecordsOfOneDevice(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_insertStringRecords(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertTablet(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertTablets(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertRecord(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertStringRecord(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertRecords(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertRecordsOfOneDevice(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testInsertStringRecords(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_deleteData(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeRawDataQuery(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeLastDataQuery(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_executeAggregationQuery(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_requestStatementId(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_createSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_appendSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_pruneSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_querySchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_showConfigurationTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_showConfiguration(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_setSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_unsetSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_dropSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_createTimeseriesUsingSchemaTemplate(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_handshake(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_sendPipeData(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_sendFile(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_pipeTransfer(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_pipeSubscribe(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_getBackupConfiguration(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_fetchAllConnectionsInfo(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
  process_testConnectionEmptyRPC(seqid: number, input: thrift.TProtocol, output: thrift.TProtocol): void;
}
