import { Msg } from "./tx_pb.js";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
class MsgClient {
  constructor(_transport) {
    this._transport = _transport;
    this.typeName = Msg.typeName;
    this.methods = Msg.methods;
    this.options = Msg.options;
  }
  /**
   * RelayProviderPrice defines a method for relaying a price for a
   * provider-based oracle
   *
   * @generated from protobuf rpc: RelayProviderPrices
   */
  relayProviderPrices(input, options) {
    const method = this.methods[0], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayPriceFeedPrice defines a method for relaying a price for a price
   * feeder-based oracle
   *
   * @generated from protobuf rpc: RelayPriceFeedPrice
   */
  relayPriceFeedPrice(input, options) {
    const method = this.methods[1], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayCoinbaseMessages defines a method for relaying price messages from
   * Coinbase API
   *
   * @generated from protobuf rpc: RelayCoinbaseMessages
   */
  relayCoinbaseMessages(input, options) {
    const method = this.methods[2], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayStorkMessage defines a method for relaying price message from
   * Stork API
   *
   * @generated from protobuf rpc: RelayStorkMessage
   */
  relayStorkMessage(input, options) {
    const method = this.methods[3], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayPythPrices defines a method for relaying rates from the Pyth contract
   *
   * @generated from protobuf rpc: RelayPythPrices
   */
  relayPythPrices(input, options) {
    const method = this.methods[4], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayChainlinkPrices defines a method for relaying rates from Chainlink
   * Data Streams
   *
   * @generated from protobuf rpc: RelayChainlinkPrices
   */
  relayChainlinkPrices(input, options) {
    const method = this.methods[5], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelayPythProPrices defines a method for relaying price updates from the
   * Pyth Pro (Lazer) service, verified via the PythLazer EVM contract.
   *
   * @generated from protobuf rpc: RelayPythProPrices
   */
  relayPythProPrices(input, options) {
    const method = this.methods[6], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   * RelaySedaFastPrices defines a method for relaying price updates from the
   * SEDA Fast WebSocket stream. Each update carries the raw JSON envelope
   * received from SEDA Fast; the chain verifies the secp256k1 signature and
   * decodes the price on-chain.
   *
   * @generated from protobuf rpc: RelaySedaFastPrices
   */
  relaySedaFastPrices(input, options) {
    const method = this.methods[7], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
  /**
   *  UpdateParams enables updating oracle module's params via governance
   *
   * @generated from protobuf rpc: UpdateParams
   */
  updateParams(input, options) {
    const method = this.methods[8], opt = this._transport.mergeOptions(options);
    return stackIntercept("unary", this._transport, method, opt, input);
  }
}
export {
  MsgClient
};
