// @generated by protobuf-ts 2.11.1 with parameter add_pb_suffix
// @generated from protobuf file "injective/auction/v1beta1/query.proto" (package "injective.auction.v1beta1", syntax proto3)
// tslint:disable
import { ServiceType } from "@protobuf-ts/runtime-rpc";
import { WireType } from "@protobuf-ts/runtime";
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { reflectionMergePartial } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { AddressVoucher } from "../../common/vouchers/v1/vouchers_pb";
import { LastAuctionResult } from "./auction_pb";
import { GenesisState } from "./genesis_pb";
import { Coin } from "../../../cosmos/base/v1beta1/coin_pb";
import { Params } from "./auction_pb";
/**
 * QueryAuctionParamsRequest is the request type for the Query/AuctionParams RPC
 * method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryAuctionParamsRequest
 */
export interface QueryAuctionParamsRequest {
}
/**
 * QueryAuctionParamsRequest is the response type for the Query/AuctionParams
 * RPC method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryAuctionParamsResponse
 */
export interface QueryAuctionParamsResponse {
    /**
     * @generated from protobuf field: injective.auction.v1beta1.Params params = 1
     */
    params?: Params;
}
/**
 * QueryCurrentAuctionBasketRequest is the request type for the
 * Query/CurrentAuctionBasket RPC method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryCurrentAuctionBasketRequest
 */
export interface QueryCurrentAuctionBasketRequest {
}
/**
 * QueryCurrentAuctionBasketResponse is the response type for the
 * Query/CurrentAuctionBasket RPC method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryCurrentAuctionBasketResponse
 */
export interface QueryCurrentAuctionBasketResponse {
    /**
     * amount describes the amount put on auction
     *
     * @generated from protobuf field: repeated cosmos.base.v1beta1.Coin amount = 1
     */
    amount: Coin[];
    /**
     * auctionRound describes current auction round
     *
     * @generated from protobuf field: uint64 auctionRound = 2
     */
    auctionRound: bigint;
    /**
     * auctionClosingTime describes auction close time for the round
     *
     * @generated from protobuf field: uint64 auctionClosingTime = 3
     */
    auctionClosingTime: bigint;
    /**
     * highestBidder describes highest bidder on current round
     *
     * @generated from protobuf field: string highestBidder = 4
     */
    highestBidder: string;
    /**
     * highestBidAmount describes highest bid amount on current round
     *
     * @generated from protobuf field: string highestBidAmount = 5
     */
    highestBidAmount: string;
}
/**
 * QueryModuleStateRequest is the request type for the Query/AuctionModuleState
 * RPC method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryModuleStateRequest
 */
export interface QueryModuleStateRequest {
}
/**
 * QueryModuleStateResponse is the response type for the
 * Query/AuctionModuleState RPC method.
 *
 * @generated from protobuf message injective.auction.v1beta1.QueryModuleStateResponse
 */
export interface QueryModuleStateResponse {
    /**
     * @generated from protobuf field: injective.auction.v1beta1.GenesisState state = 1
     */
    state?: GenesisState;
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryLastAuctionResultRequest
 */
export interface QueryLastAuctionResultRequest {
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryLastAuctionResultResponse
 */
export interface QueryLastAuctionResultResponse {
    /**
     * @generated from protobuf field: injective.auction.v1beta1.LastAuctionResult last_auction_result = 1
     */
    lastAuctionResult?: LastAuctionResult;
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryVouchersRequest
 */
export interface QueryVouchersRequest {
    /**
     * denom filter; empty string returns all vouchers
     *
     * @generated from protobuf field: string denom = 1
     */
    denom: string;
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryVouchersResponse
 */
export interface QueryVouchersResponse {
    /**
     * List of outstanding vouchers matching the request filter.
     *
     * @generated from protobuf field: repeated injective.common.vouchers.v1.AddressVoucher vouchers = 1
     */
    vouchers: AddressVoucher[];
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryVoucherRequest
 */
export interface QueryVoucherRequest {
    /**
     * Required. The token denom to look up.
     *
     * @generated from protobuf field: string denom = 1
     */
    denom: string;
    /**
     * Required. The bech32 address of the voucher holder.
     *
     * @generated from protobuf field: string address = 2
     */
    address: string;
}
/**
 * @generated from protobuf message injective.auction.v1beta1.QueryVoucherResponse
 */
export interface QueryVoucherResponse {
    /**
     * The outstanding voucher coin for the requested denom and address.
     *
     * @generated from protobuf field: cosmos.base.v1beta1.Coin voucher = 1
     */
    voucher?: Coin;
}
// @generated message type with reflection information, may provide speed optimized methods
class QueryAuctionParamsRequest$Type extends MessageType<QueryAuctionParamsRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryAuctionParamsRequest", []);
    }
    create(value?: PartialMessage<QueryAuctionParamsRequest>): QueryAuctionParamsRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryAuctionParamsRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryAuctionParamsRequest): QueryAuctionParamsRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryAuctionParamsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryAuctionParamsRequest
 */
export const QueryAuctionParamsRequest = new QueryAuctionParamsRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryAuctionParamsResponse$Type extends MessageType<QueryAuctionParamsResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryAuctionParamsResponse", [
            { no: 1, name: "params", kind: "message", T: () => Params, options: { "gogoproto.nullable": false } }
        ]);
    }
    create(value?: PartialMessage<QueryAuctionParamsResponse>): QueryAuctionParamsResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryAuctionParamsResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryAuctionParamsResponse): QueryAuctionParamsResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* injective.auction.v1beta1.Params params */ 1:
                    message.params = Params.internalBinaryRead(reader, reader.uint32(), options, message.params);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryAuctionParamsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* injective.auction.v1beta1.Params params = 1; */
        if (message.params)
            Params.internalBinaryWrite(message.params, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryAuctionParamsResponse
 */
export const QueryAuctionParamsResponse = new QueryAuctionParamsResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryCurrentAuctionBasketRequest$Type extends MessageType<QueryCurrentAuctionBasketRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryCurrentAuctionBasketRequest", []);
    }
    create(value?: PartialMessage<QueryCurrentAuctionBasketRequest>): QueryCurrentAuctionBasketRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryCurrentAuctionBasketRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryCurrentAuctionBasketRequest): QueryCurrentAuctionBasketRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryCurrentAuctionBasketRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryCurrentAuctionBasketRequest
 */
export const QueryCurrentAuctionBasketRequest = new QueryCurrentAuctionBasketRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryCurrentAuctionBasketResponse$Type extends MessageType<QueryCurrentAuctionBasketResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryCurrentAuctionBasketResponse", [
            { no: 1, name: "amount", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Coin, options: { "gogoproto.nullable": false, "gogoproto.castrepeated": "github.com/cosmos/cosmos-sdk/types.Coins" } },
            { no: 2, name: "auctionRound", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },
            { no: 3, name: "auctionClosingTime", kind: "scalar", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },
            { no: 4, name: "highestBidder", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "highestBidAmount", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "gogoproto.nullable": false, "gogoproto.customtype": "cosmossdk.io/math.Int" } }
        ]);
    }
    create(value?: PartialMessage<QueryCurrentAuctionBasketResponse>): QueryCurrentAuctionBasketResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.amount = [];
        message.auctionRound = 0n;
        message.auctionClosingTime = 0n;
        message.highestBidder = "";
        message.highestBidAmount = "";
        if (value !== undefined)
            reflectionMergePartial<QueryCurrentAuctionBasketResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryCurrentAuctionBasketResponse): QueryCurrentAuctionBasketResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated cosmos.base.v1beta1.Coin amount */ 1:
                    message.amount.push(Coin.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* uint64 auctionRound */ 2:
                    message.auctionRound = reader.uint64().toBigInt();
                    break;
                case /* uint64 auctionClosingTime */ 3:
                    message.auctionClosingTime = reader.uint64().toBigInt();
                    break;
                case /* string highestBidder */ 4:
                    message.highestBidder = reader.string();
                    break;
                case /* string highestBidAmount */ 5:
                    message.highestBidAmount = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryCurrentAuctionBasketResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated cosmos.base.v1beta1.Coin amount = 1; */
        for (let i = 0; i < message.amount.length; i++)
            Coin.internalBinaryWrite(message.amount[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* uint64 auctionRound = 2; */
        if (message.auctionRound !== 0n)
            writer.tag(2, WireType.Varint).uint64(message.auctionRound);
        /* uint64 auctionClosingTime = 3; */
        if (message.auctionClosingTime !== 0n)
            writer.tag(3, WireType.Varint).uint64(message.auctionClosingTime);
        /* string highestBidder = 4; */
        if (message.highestBidder !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.highestBidder);
        /* string highestBidAmount = 5; */
        if (message.highestBidAmount !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.highestBidAmount);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryCurrentAuctionBasketResponse
 */
export const QueryCurrentAuctionBasketResponse = new QueryCurrentAuctionBasketResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryModuleStateRequest$Type extends MessageType<QueryModuleStateRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryModuleStateRequest", []);
    }
    create(value?: PartialMessage<QueryModuleStateRequest>): QueryModuleStateRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryModuleStateRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryModuleStateRequest): QueryModuleStateRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryModuleStateRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryModuleStateRequest
 */
export const QueryModuleStateRequest = new QueryModuleStateRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryModuleStateResponse$Type extends MessageType<QueryModuleStateResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryModuleStateResponse", [
            { no: 1, name: "state", kind: "message", T: () => GenesisState }
        ]);
    }
    create(value?: PartialMessage<QueryModuleStateResponse>): QueryModuleStateResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryModuleStateResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryModuleStateResponse): QueryModuleStateResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* injective.auction.v1beta1.GenesisState state */ 1:
                    message.state = GenesisState.internalBinaryRead(reader, reader.uint32(), options, message.state);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryModuleStateResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* injective.auction.v1beta1.GenesisState state = 1; */
        if (message.state)
            GenesisState.internalBinaryWrite(message.state, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryModuleStateResponse
 */
export const QueryModuleStateResponse = new QueryModuleStateResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryLastAuctionResultRequest$Type extends MessageType<QueryLastAuctionResultRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryLastAuctionResultRequest", []);
    }
    create(value?: PartialMessage<QueryLastAuctionResultRequest>): QueryLastAuctionResultRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryLastAuctionResultRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryLastAuctionResultRequest): QueryLastAuctionResultRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryLastAuctionResultRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryLastAuctionResultRequest
 */
export const QueryLastAuctionResultRequest = new QueryLastAuctionResultRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryLastAuctionResultResponse$Type extends MessageType<QueryLastAuctionResultResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryLastAuctionResultResponse", [
            { no: 1, name: "last_auction_result", kind: "message", T: () => LastAuctionResult }
        ]);
    }
    create(value?: PartialMessage<QueryLastAuctionResultResponse>): QueryLastAuctionResultResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryLastAuctionResultResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryLastAuctionResultResponse): QueryLastAuctionResultResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* injective.auction.v1beta1.LastAuctionResult last_auction_result */ 1:
                    message.lastAuctionResult = LastAuctionResult.internalBinaryRead(reader, reader.uint32(), options, message.lastAuctionResult);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryLastAuctionResultResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* injective.auction.v1beta1.LastAuctionResult last_auction_result = 1; */
        if (message.lastAuctionResult)
            LastAuctionResult.internalBinaryWrite(message.lastAuctionResult, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryLastAuctionResultResponse
 */
export const QueryLastAuctionResultResponse = new QueryLastAuctionResultResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryVouchersRequest$Type extends MessageType<QueryVouchersRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryVouchersRequest", [
            { no: 1, name: "denom", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<QueryVouchersRequest>): QueryVouchersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.denom = "";
        if (value !== undefined)
            reflectionMergePartial<QueryVouchersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryVouchersRequest): QueryVouchersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string denom */ 1:
                    message.denom = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryVouchersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string denom = 1; */
        if (message.denom !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.denom);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryVouchersRequest
 */
export const QueryVouchersRequest = new QueryVouchersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryVouchersResponse$Type extends MessageType<QueryVouchersResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryVouchersResponse", [
            { no: 1, name: "vouchers", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => AddressVoucher, options: { "gogoproto.nullable": false } }
        ]);
    }
    create(value?: PartialMessage<QueryVouchersResponse>): QueryVouchersResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.vouchers = [];
        if (value !== undefined)
            reflectionMergePartial<QueryVouchersResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryVouchersResponse): QueryVouchersResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated injective.common.vouchers.v1.AddressVoucher vouchers */ 1:
                    message.vouchers.push(AddressVoucher.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryVouchersResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated injective.common.vouchers.v1.AddressVoucher vouchers = 1; */
        for (let i = 0; i < message.vouchers.length; i++)
            AddressVoucher.internalBinaryWrite(message.vouchers[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryVouchersResponse
 */
export const QueryVouchersResponse = new QueryVouchersResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryVoucherRequest$Type extends MessageType<QueryVoucherRequest> {
    constructor() {
        super("injective.auction.v1beta1.QueryVoucherRequest", [
            { no: 1, name: "denom", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "address", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<QueryVoucherRequest>): QueryVoucherRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.denom = "";
        message.address = "";
        if (value !== undefined)
            reflectionMergePartial<QueryVoucherRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryVoucherRequest): QueryVoucherRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string denom */ 1:
                    message.denom = reader.string();
                    break;
                case /* string address */ 2:
                    message.address = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryVoucherRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string denom = 1; */
        if (message.denom !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.denom);
        /* string address = 2; */
        if (message.address !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.address);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryVoucherRequest
 */
export const QueryVoucherRequest = new QueryVoucherRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class QueryVoucherResponse$Type extends MessageType<QueryVoucherResponse> {
    constructor() {
        super("injective.auction.v1beta1.QueryVoucherResponse", [
            { no: 1, name: "voucher", kind: "message", T: () => Coin, options: { "gogoproto.nullable": false, "gogoproto.customtype": "github.com/cosmos/cosmos-sdk/types.Coin" } }
        ]);
    }
    create(value?: PartialMessage<QueryVoucherResponse>): QueryVoucherResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<QueryVoucherResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QueryVoucherResponse): QueryVoucherResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* cosmos.base.v1beta1.Coin voucher */ 1:
                    message.voucher = Coin.internalBinaryRead(reader, reader.uint32(), options, message.voucher);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: QueryVoucherResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* cosmos.base.v1beta1.Coin voucher = 1; */
        if (message.voucher)
            Coin.internalBinaryWrite(message.voucher, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message injective.auction.v1beta1.QueryVoucherResponse
 */
export const QueryVoucherResponse = new QueryVoucherResponse$Type();
/**
 * @generated ServiceType for protobuf service injective.auction.v1beta1.Query
 */
export const Query = new ServiceType("injective.auction.v1beta1.Query", [
    { name: "AuctionParams", options: { "google.api.http": { get: "/injective/auction/v1beta1/params" } }, I: QueryAuctionParamsRequest, O: QueryAuctionParamsResponse },
    { name: "CurrentAuctionBasket", options: { "google.api.http": { get: "/injective/auction/v1beta1/basket" } }, I: QueryCurrentAuctionBasketRequest, O: QueryCurrentAuctionBasketResponse },
    { name: "AuctionModuleState", options: { "google.api.http": { get: "/injective/auction/v1beta1/module_state" } }, I: QueryModuleStateRequest, O: QueryModuleStateResponse },
    { name: "LastAuctionResult", options: { "google.api.http": { get: "/injective/auction/v1beta1/last_auction_result" } }, I: QueryLastAuctionResultRequest, O: QueryLastAuctionResultResponse },
    { name: "Vouchers", options: { "google.api.http": { get: "/injective/auction/v1beta1/vouchers" } }, I: QueryVouchersRequest, O: QueryVouchersResponse },
    { name: "Voucher", options: { "google.api.http": { get: "/injective/auction/v1beta1/voucher" } }, I: QueryVoucherRequest, O: QueryVoucherResponse }
]);
