// @generated by protobuf-ts 2.11.1 with parameter add_pb_suffix
// @generated from protobuf file "injective/oracle/v1beta1/tx.proto" (package "injective.oracle.v1beta1", syntax proto3)
// tslint:disable
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import { Msg } from "./tx_pb";
import type { MsgUpdateParamsResponse } from "./tx_pb";
import type { MsgUpdateParams } from "./tx_pb";
import type { MsgRelaySedaFastPricesResponse } from "./tx_pb";
import type { MsgRelaySedaFastPrices } from "./tx_pb";
import type { MsgRelayPythProPricesResponse } from "./tx_pb";
import type { MsgRelayPythProPrices } from "./tx_pb";
import type { MsgRelayChainlinkPricesResponse } from "./tx_pb";
import type { MsgRelayChainlinkPrices } from "./tx_pb";
import type { MsgRelayPythPricesResponse } from "./tx_pb";
import type { MsgRelayPythPrices } from "./tx_pb";
import type { MsgRelayStorkPricesResponse } from "./tx_pb";
import type { MsgRelayStorkPrices } from "./tx_pb";
import type { MsgRelayCoinbaseMessagesResponse } from "./tx_pb";
import type { MsgRelayCoinbaseMessages } from "./tx_pb";
import type { MsgRelayPriceFeedPriceResponse } from "./tx_pb";
import type { MsgRelayPriceFeedPrice } from "./tx_pb";
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
import type { MsgRelayProviderPricesResponse } from "./tx_pb";
import type { MsgRelayProviderPrices } from "./tx_pb";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * Msg defines the oracle Msg service.
 *
 * @generated from protobuf service injective.oracle.v1beta1.Msg
 */
export interface IMsgClient {
    /**
     * RelayProviderPrice defines a method for relaying a price for a
     * provider-based oracle
     *
     * @generated from protobuf rpc: RelayProviderPrices
     */
    relayProviderPrices(input: MsgRelayProviderPrices, options?: RpcOptions): UnaryCall<MsgRelayProviderPrices, MsgRelayProviderPricesResponse>;
    /**
     * RelayPriceFeedPrice defines a method for relaying a price for a price
     * feeder-based oracle
     *
     * @generated from protobuf rpc: RelayPriceFeedPrice
     */
    relayPriceFeedPrice(input: MsgRelayPriceFeedPrice, options?: RpcOptions): UnaryCall<MsgRelayPriceFeedPrice, MsgRelayPriceFeedPriceResponse>;
    /**
     * RelayCoinbaseMessages defines a method for relaying price messages from
     * Coinbase API
     *
     * @generated from protobuf rpc: RelayCoinbaseMessages
     */
    relayCoinbaseMessages(input: MsgRelayCoinbaseMessages, options?: RpcOptions): UnaryCall<MsgRelayCoinbaseMessages, MsgRelayCoinbaseMessagesResponse>;
    /**
     * RelayStorkMessage defines a method for relaying price message from
     * Stork API
     *
     * @generated from protobuf rpc: RelayStorkMessage
     */
    relayStorkMessage(input: MsgRelayStorkPrices, options?: RpcOptions): UnaryCall<MsgRelayStorkPrices, MsgRelayStorkPricesResponse>;
    /**
     * RelayPythPrices defines a method for relaying rates from the Pyth contract
     *
     * @generated from protobuf rpc: RelayPythPrices
     */
    relayPythPrices(input: MsgRelayPythPrices, options?: RpcOptions): UnaryCall<MsgRelayPythPrices, MsgRelayPythPricesResponse>;
    /**
     * RelayChainlinkPrices defines a method for relaying rates from Chainlink
     * Data Streams
     *
     * @generated from protobuf rpc: RelayChainlinkPrices
     */
    relayChainlinkPrices(input: MsgRelayChainlinkPrices, options?: RpcOptions): UnaryCall<MsgRelayChainlinkPrices, MsgRelayChainlinkPricesResponse>;
    /**
     * 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: MsgRelayPythProPrices, options?: RpcOptions): UnaryCall<MsgRelayPythProPrices, MsgRelayPythProPricesResponse>;
    /**
     * 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: MsgRelaySedaFastPrices, options?: RpcOptions): UnaryCall<MsgRelaySedaFastPrices, MsgRelaySedaFastPricesResponse>;
    /**
     *  UpdateParams enables updating oracle module's params via governance
     *
     * @generated from protobuf rpc: UpdateParams
     */
    updateParams(input: MsgUpdateParams, options?: RpcOptions): UnaryCall<MsgUpdateParams, MsgUpdateParamsResponse>;
}
/**
 * Msg defines the oracle Msg service.
 *
 * @generated from protobuf service injective.oracle.v1beta1.Msg
 */
export class MsgClient implements IMsgClient, ServiceInfo {
    typeName = Msg.typeName;
    methods = Msg.methods;
    options = Msg.options;
    constructor(private readonly _transport: RpcTransport) {
    }
    /**
     * RelayProviderPrice defines a method for relaying a price for a
     * provider-based oracle
     *
     * @generated from protobuf rpc: RelayProviderPrices
     */
    relayProviderPrices(input: MsgRelayProviderPrices, options?: RpcOptions): UnaryCall<MsgRelayProviderPrices, MsgRelayProviderPricesResponse> {
        const method = this.methods[0], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayProviderPrices, MsgRelayProviderPricesResponse>("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: MsgRelayPriceFeedPrice, options?: RpcOptions): UnaryCall<MsgRelayPriceFeedPrice, MsgRelayPriceFeedPriceResponse> {
        const method = this.methods[1], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayPriceFeedPrice, MsgRelayPriceFeedPriceResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * RelayCoinbaseMessages defines a method for relaying price messages from
     * Coinbase API
     *
     * @generated from protobuf rpc: RelayCoinbaseMessages
     */
    relayCoinbaseMessages(input: MsgRelayCoinbaseMessages, options?: RpcOptions): UnaryCall<MsgRelayCoinbaseMessages, MsgRelayCoinbaseMessagesResponse> {
        const method = this.methods[2], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayCoinbaseMessages, MsgRelayCoinbaseMessagesResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * RelayStorkMessage defines a method for relaying price message from
     * Stork API
     *
     * @generated from protobuf rpc: RelayStorkMessage
     */
    relayStorkMessage(input: MsgRelayStorkPrices, options?: RpcOptions): UnaryCall<MsgRelayStorkPrices, MsgRelayStorkPricesResponse> {
        const method = this.methods[3], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayStorkPrices, MsgRelayStorkPricesResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * RelayPythPrices defines a method for relaying rates from the Pyth contract
     *
     * @generated from protobuf rpc: RelayPythPrices
     */
    relayPythPrices(input: MsgRelayPythPrices, options?: RpcOptions): UnaryCall<MsgRelayPythPrices, MsgRelayPythPricesResponse> {
        const method = this.methods[4], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayPythPrices, MsgRelayPythPricesResponse>("unary", this._transport, method, opt, input);
    }
    /**
     * RelayChainlinkPrices defines a method for relaying rates from Chainlink
     * Data Streams
     *
     * @generated from protobuf rpc: RelayChainlinkPrices
     */
    relayChainlinkPrices(input: MsgRelayChainlinkPrices, options?: RpcOptions): UnaryCall<MsgRelayChainlinkPrices, MsgRelayChainlinkPricesResponse> {
        const method = this.methods[5], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayChainlinkPrices, MsgRelayChainlinkPricesResponse>("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: MsgRelayPythProPrices, options?: RpcOptions): UnaryCall<MsgRelayPythProPrices, MsgRelayPythProPricesResponse> {
        const method = this.methods[6], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelayPythProPrices, MsgRelayPythProPricesResponse>("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: MsgRelaySedaFastPrices, options?: RpcOptions): UnaryCall<MsgRelaySedaFastPrices, MsgRelaySedaFastPricesResponse> {
        const method = this.methods[7], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgRelaySedaFastPrices, MsgRelaySedaFastPricesResponse>("unary", this._transport, method, opt, input);
    }
    /**
     *  UpdateParams enables updating oracle module's params via governance
     *
     * @generated from protobuf rpc: UpdateParams
     */
    updateParams(input: MsgUpdateParams, options?: RpcOptions): UnaryCall<MsgUpdateParams, MsgUpdateParamsResponse> {
        const method = this.methods[8], opt = this._transport.mergeOptions(options);
        return stackIntercept<MsgUpdateParams, MsgUpdateParamsResponse>("unary", this._transport, method, opt, input);
    }
}
