// package: provenance.reward.v1
// file: provenance/reward/v1/query.proto

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

import * as jspb from "google-protobuf";
import * as gogoproto_gogo_pb from "../../../gogoproto/gogo_pb";
import * as cosmos_base_v1beta1_coin_pb from "../../../cosmos/base/v1beta1/coin_pb";
import * as cosmos_base_query_v1beta1_pagination_pb from "../../../cosmos/base/query/v1beta1/pagination_pb";
import * as provenance_reward_v1_reward_pb from "../../../provenance/reward/v1/reward_pb";

export class QueryRewardProgramByIDRequest extends jspb.Message { 
    getId(): number;
    setId(value: number): QueryRewardProgramByIDRequest;

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

export namespace QueryRewardProgramByIDRequest {
    export type AsObject = {
        id: number,
    }
}

export class QueryRewardProgramByIDResponse extends jspb.Message { 

    hasRewardProgram(): boolean;
    clearRewardProgram(): void;
    getRewardProgram(): provenance_reward_v1_reward_pb.RewardProgram | undefined;
    setRewardProgram(value?: provenance_reward_v1_reward_pb.RewardProgram): QueryRewardProgramByIDResponse;

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

export namespace QueryRewardProgramByIDResponse {
    export type AsObject = {
        rewardProgram?: provenance_reward_v1_reward_pb.RewardProgram.AsObject,
    }
}

export class QueryRewardProgramsRequest extends jspb.Message { 
    getQueryType(): QueryRewardProgramsRequest.QueryType;
    setQueryType(value: QueryRewardProgramsRequest.QueryType): QueryRewardProgramsRequest;

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageRequest | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageRequest): QueryRewardProgramsRequest;

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

export namespace QueryRewardProgramsRequest {
    export type AsObject = {
        queryType: QueryRewardProgramsRequest.QueryType,
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageRequest.AsObject,
    }

    export enum QueryType {
    QUERY_TYPE_UNSPECIFIED = 0,
    QUERY_TYPE_ALL = 1,
    QUERY_TYPE_PENDING = 2,
    QUERY_TYPE_ACTIVE = 3,
    QUERY_TYPE_OUTSTANDING = 4,
    QUERY_TYPE_FINISHED = 5,
    }

}

export class QueryRewardProgramsResponse extends jspb.Message { 
    clearRewardProgramsList(): void;
    getRewardProgramsList(): Array<provenance_reward_v1_reward_pb.RewardProgram>;
    setRewardProgramsList(value: Array<provenance_reward_v1_reward_pb.RewardProgram>): QueryRewardProgramsResponse;
    addRewardPrograms(value?: provenance_reward_v1_reward_pb.RewardProgram, index?: number): provenance_reward_v1_reward_pb.RewardProgram;

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageResponse | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageResponse): QueryRewardProgramsResponse;

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

export namespace QueryRewardProgramsResponse {
    export type AsObject = {
        rewardProgramsList: Array<provenance_reward_v1_reward_pb.RewardProgram.AsObject>,
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageResponse.AsObject,
    }
}

export class QueryClaimPeriodRewardDistributionsRequest extends jspb.Message { 

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageRequest | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageRequest): QueryClaimPeriodRewardDistributionsRequest;

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

export namespace QueryClaimPeriodRewardDistributionsRequest {
    export type AsObject = {
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageRequest.AsObject,
    }
}

export class QueryClaimPeriodRewardDistributionsResponse extends jspb.Message { 
    clearClaimPeriodRewardDistributionsList(): void;
    getClaimPeriodRewardDistributionsList(): Array<provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution>;
    setClaimPeriodRewardDistributionsList(value: Array<provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution>): QueryClaimPeriodRewardDistributionsResponse;
    addClaimPeriodRewardDistributions(value?: provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution, index?: number): provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution;

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageResponse | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageResponse): QueryClaimPeriodRewardDistributionsResponse;

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

export namespace QueryClaimPeriodRewardDistributionsResponse {
    export type AsObject = {
        claimPeriodRewardDistributionsList: Array<provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution.AsObject>,
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageResponse.AsObject,
    }
}

export class QueryClaimPeriodRewardDistributionsByIDRequest extends jspb.Message { 
    getRewardId(): number;
    setRewardId(value: number): QueryClaimPeriodRewardDistributionsByIDRequest;
    getClaimPeriodId(): number;
    setClaimPeriodId(value: number): QueryClaimPeriodRewardDistributionsByIDRequest;

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

export namespace QueryClaimPeriodRewardDistributionsByIDRequest {
    export type AsObject = {
        rewardId: number,
        claimPeriodId: number,
    }
}

export class QueryClaimPeriodRewardDistributionsByIDResponse extends jspb.Message { 

    hasClaimPeriodRewardDistribution(): boolean;
    clearClaimPeriodRewardDistribution(): void;
    getClaimPeriodRewardDistribution(): provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution | undefined;
    setClaimPeriodRewardDistribution(value?: provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution): QueryClaimPeriodRewardDistributionsByIDResponse;

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

export namespace QueryClaimPeriodRewardDistributionsByIDResponse {
    export type AsObject = {
        claimPeriodRewardDistribution?: provenance_reward_v1_reward_pb.ClaimPeriodRewardDistribution.AsObject,
    }
}

export class QueryRewardDistributionsByAddressRequest extends jspb.Message { 
    getAddress(): string;
    setAddress(value: string): QueryRewardDistributionsByAddressRequest;
    getClaimStatus(): provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus;
    setClaimStatus(value: provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus): QueryRewardDistributionsByAddressRequest;

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageRequest | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageRequest): QueryRewardDistributionsByAddressRequest;

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

export namespace QueryRewardDistributionsByAddressRequest {
    export type AsObject = {
        address: string,
        claimStatus: provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus,
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageRequest.AsObject,
    }
}

export class QueryRewardDistributionsByAddressResponse extends jspb.Message { 
    getAddress(): string;
    setAddress(value: string): QueryRewardDistributionsByAddressResponse;
    clearRewardAccountStateList(): void;
    getRewardAccountStateList(): Array<RewardAccountResponse>;
    setRewardAccountStateList(value: Array<RewardAccountResponse>): QueryRewardDistributionsByAddressResponse;
    addRewardAccountState(value?: RewardAccountResponse, index?: number): RewardAccountResponse;

    hasPagination(): boolean;
    clearPagination(): void;
    getPagination(): cosmos_base_query_v1beta1_pagination_pb.PageResponse | undefined;
    setPagination(value?: cosmos_base_query_v1beta1_pagination_pb.PageResponse): QueryRewardDistributionsByAddressResponse;

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

export namespace QueryRewardDistributionsByAddressResponse {
    export type AsObject = {
        address: string,
        rewardAccountStateList: Array<RewardAccountResponse.AsObject>,
        pagination?: cosmos_base_query_v1beta1_pagination_pb.PageResponse.AsObject,
    }
}

export class RewardAccountResponse extends jspb.Message { 
    getRewardProgramId(): number;
    setRewardProgramId(value: number): RewardAccountResponse;

    hasTotalRewardClaim(): boolean;
    clearTotalRewardClaim(): void;
    getTotalRewardClaim(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setTotalRewardClaim(value?: cosmos_base_v1beta1_coin_pb.Coin): RewardAccountResponse;
    getClaimStatus(): provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus;
    setClaimStatus(value: provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus): RewardAccountResponse;
    getClaimId(): number;
    setClaimId(value: number): RewardAccountResponse;

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

export namespace RewardAccountResponse {
    export type AsObject = {
        rewardProgramId: number,
        totalRewardClaim?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        claimStatus: provenance_reward_v1_reward_pb.RewardAccountState.ClaimStatus,
        claimId: number,
    }
}
