// package: provenance.exchange.v1
// file: provenance/exchange/v1/orders.proto

/* tslint:disable */
/* eslint-disable */

import * as jspb from "google-protobuf";
import * as cosmos_base_v1beta1_coin_pb from "../../../cosmos/base/v1beta1/coin_pb";
import * as cosmos_proto_cosmos_pb from "../../../cosmos_proto/cosmos_pb";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";

export class Order extends jspb.Message { 
    getOrderId(): number;
    setOrderId(value: number): Order;

    hasAskOrder(): boolean;
    clearAskOrder(): void;
    getAskOrder(): AskOrder | undefined;
    setAskOrder(value?: AskOrder): Order;

    hasBidOrder(): boolean;
    clearBidOrder(): void;
    getBidOrder(): BidOrder | undefined;
    setBidOrder(value?: BidOrder): Order;

    getOrderCase(): Order.OrderCase;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Order.AsObject;
    static toObject(includeInstance: boolean, msg: Order): Order.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: Order, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): Order;
    static deserializeBinaryFromReader(message: Order, reader: jspb.BinaryReader): Order;
}

export namespace Order {
    export type AsObject = {
        orderId: number,
        askOrder?: AskOrder.AsObject,
        bidOrder?: BidOrder.AsObject,
    }

    export enum OrderCase {
        ORDER_NOT_SET = 0,
        ASK_ORDER = 2,
        BID_ORDER = 3,
    }

}

export class AskOrder extends jspb.Message { 
    getMarketId(): number;
    setMarketId(value: number): AskOrder;
    getSeller(): string;
    setSeller(value: string): AskOrder;

    hasAssets(): boolean;
    clearAssets(): void;
    getAssets(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setAssets(value?: cosmos_base_v1beta1_coin_pb.Coin): AskOrder;

    hasPrice(): boolean;
    clearPrice(): void;
    getPrice(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setPrice(value?: cosmos_base_v1beta1_coin_pb.Coin): AskOrder;

    hasSellerSettlementFlatFee(): boolean;
    clearSellerSettlementFlatFee(): void;
    getSellerSettlementFlatFee(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setSellerSettlementFlatFee(value?: cosmos_base_v1beta1_coin_pb.Coin): AskOrder;
    getAllowPartial(): boolean;
    setAllowPartial(value: boolean): AskOrder;
    getExternalId(): string;
    setExternalId(value: string): AskOrder;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): AskOrder.AsObject;
    static toObject(includeInstance: boolean, msg: AskOrder): AskOrder.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: AskOrder, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): AskOrder;
    static deserializeBinaryFromReader(message: AskOrder, reader: jspb.BinaryReader): AskOrder;
}

export namespace AskOrder {
    export type AsObject = {
        marketId: number,
        seller: string,
        assets?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        price?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        sellerSettlementFlatFee?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        allowPartial: boolean,
        externalId: string,
    }
}

export class BidOrder extends jspb.Message { 
    getMarketId(): number;
    setMarketId(value: number): BidOrder;
    getBuyer(): string;
    setBuyer(value: string): BidOrder;

    hasAssets(): boolean;
    clearAssets(): void;
    getAssets(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setAssets(value?: cosmos_base_v1beta1_coin_pb.Coin): BidOrder;

    hasPrice(): boolean;
    clearPrice(): void;
    getPrice(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setPrice(value?: cosmos_base_v1beta1_coin_pb.Coin): BidOrder;
    clearBuyerSettlementFeesList(): void;
    getBuyerSettlementFeesList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
    setBuyerSettlementFeesList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): BidOrder;
    addBuyerSettlementFees(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;
    getAllowPartial(): boolean;
    setAllowPartial(value: boolean): BidOrder;
    getExternalId(): string;
    setExternalId(value: string): BidOrder;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): BidOrder.AsObject;
    static toObject(includeInstance: boolean, msg: BidOrder): BidOrder.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: BidOrder, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): BidOrder;
    static deserializeBinaryFromReader(message: BidOrder, reader: jspb.BinaryReader): BidOrder;
}

export namespace BidOrder {
    export type AsObject = {
        marketId: number,
        buyer: string,
        assets?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        price?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        buyerSettlementFeesList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
        allowPartial: boolean,
        externalId: string,
    }
}
