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

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

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

export class MsgCreateRewardProgramRequest extends jspb.Message { 
    getTitle(): string;
    setTitle(value: string): MsgCreateRewardProgramRequest;
    getDescription(): string;
    setDescription(value: string): MsgCreateRewardProgramRequest;
    getDistributeFromAddress(): string;
    setDistributeFromAddress(value: string): MsgCreateRewardProgramRequest;

    hasTotalRewardPool(): boolean;
    clearTotalRewardPool(): void;
    getTotalRewardPool(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setTotalRewardPool(value?: cosmos_base_v1beta1_coin_pb.Coin): MsgCreateRewardProgramRequest;

    hasMaxRewardPerClaimAddress(): boolean;
    clearMaxRewardPerClaimAddress(): void;
    getMaxRewardPerClaimAddress(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setMaxRewardPerClaimAddress(value?: cosmos_base_v1beta1_coin_pb.Coin): MsgCreateRewardProgramRequest;

    hasProgramStartTime(): boolean;
    clearProgramStartTime(): void;
    getProgramStartTime(): google_protobuf_timestamp_pb.Timestamp | undefined;
    setProgramStartTime(value?: google_protobuf_timestamp_pb.Timestamp): MsgCreateRewardProgramRequest;
    getClaimPeriods(): number;
    setClaimPeriods(value: number): MsgCreateRewardProgramRequest;
    getClaimPeriodDays(): number;
    setClaimPeriodDays(value: number): MsgCreateRewardProgramRequest;
    getMaxRolloverClaimPeriods(): number;
    setMaxRolloverClaimPeriods(value: number): MsgCreateRewardProgramRequest;
    getExpireDays(): number;
    setExpireDays(value: number): MsgCreateRewardProgramRequest;
    clearQualifyingActionsList(): void;
    getQualifyingActionsList(): Array<provenance_reward_v1_reward_pb.QualifyingAction>;
    setQualifyingActionsList(value: Array<provenance_reward_v1_reward_pb.QualifyingAction>): MsgCreateRewardProgramRequest;
    addQualifyingActions(value?: provenance_reward_v1_reward_pb.QualifyingAction, index?: number): provenance_reward_v1_reward_pb.QualifyingAction;

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

export namespace MsgCreateRewardProgramRequest {
    export type AsObject = {
        title: string,
        description: string,
        distributeFromAddress: string,
        totalRewardPool?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        maxRewardPerClaimAddress?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        programStartTime?: google_protobuf_timestamp_pb.Timestamp.AsObject,
        claimPeriods: number,
        claimPeriodDays: number,
        maxRolloverClaimPeriods: number,
        expireDays: number,
        qualifyingActionsList: Array<provenance_reward_v1_reward_pb.QualifyingAction.AsObject>,
    }
}

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

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

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

export class MsgEndRewardProgramRequest extends jspb.Message { 
    getRewardProgramId(): number;
    setRewardProgramId(value: number): MsgEndRewardProgramRequest;
    getProgramOwnerAddress(): string;
    setProgramOwnerAddress(value: string): MsgEndRewardProgramRequest;

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

export namespace MsgEndRewardProgramRequest {
    export type AsObject = {
        rewardProgramId: number,
        programOwnerAddress: string,
    }
}

export class MsgEndRewardProgramResponse extends jspb.Message { 

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

export namespace MsgEndRewardProgramResponse {
    export type AsObject = {
    }
}

export class MsgClaimRewardsRequest extends jspb.Message { 
    getRewardProgramId(): number;
    setRewardProgramId(value: number): MsgClaimRewardsRequest;
    getRewardAddress(): string;
    setRewardAddress(value: string): MsgClaimRewardsRequest;

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

export namespace MsgClaimRewardsRequest {
    export type AsObject = {
        rewardProgramId: number,
        rewardAddress: string,
    }
}

export class MsgClaimRewardsResponse extends jspb.Message { 

    hasClaimDetails(): boolean;
    clearClaimDetails(): void;
    getClaimDetails(): RewardProgramClaimDetail | undefined;
    setClaimDetails(value?: RewardProgramClaimDetail): MsgClaimRewardsResponse;

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

export namespace MsgClaimRewardsResponse {
    export type AsObject = {
        claimDetails?: RewardProgramClaimDetail.AsObject,
    }
}

export class MsgClaimAllRewardsRequest extends jspb.Message { 
    getRewardAddress(): string;
    setRewardAddress(value: string): MsgClaimAllRewardsRequest;

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

export namespace MsgClaimAllRewardsRequest {
    export type AsObject = {
        rewardAddress: string,
    }
}

export class MsgClaimAllRewardsResponse extends jspb.Message { 
    clearTotalRewardClaimList(): void;
    getTotalRewardClaimList(): Array<cosmos_base_v1beta1_coin_pb.Coin>;
    setTotalRewardClaimList(value: Array<cosmos_base_v1beta1_coin_pb.Coin>): MsgClaimAllRewardsResponse;
    addTotalRewardClaim(value?: cosmos_base_v1beta1_coin_pb.Coin, index?: number): cosmos_base_v1beta1_coin_pb.Coin;
    clearClaimDetailsList(): void;
    getClaimDetailsList(): Array<RewardProgramClaimDetail>;
    setClaimDetailsList(value: Array<RewardProgramClaimDetail>): MsgClaimAllRewardsResponse;
    addClaimDetails(value?: RewardProgramClaimDetail, index?: number): RewardProgramClaimDetail;

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

export namespace MsgClaimAllRewardsResponse {
    export type AsObject = {
        totalRewardClaimList: Array<cosmos_base_v1beta1_coin_pb.Coin.AsObject>,
        claimDetailsList: Array<RewardProgramClaimDetail.AsObject>,
    }
}

export class ClaimedRewardPeriodDetail extends jspb.Message { 
    getClaimPeriodId(): number;
    setClaimPeriodId(value: number): ClaimedRewardPeriodDetail;
    getTotalShares(): number;
    setTotalShares(value: number): ClaimedRewardPeriodDetail;

    hasClaimPeriodReward(): boolean;
    clearClaimPeriodReward(): void;
    getClaimPeriodReward(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setClaimPeriodReward(value?: cosmos_base_v1beta1_coin_pb.Coin): ClaimedRewardPeriodDetail;

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

export namespace ClaimedRewardPeriodDetail {
    export type AsObject = {
        claimPeriodId: number,
        totalShares: number,
        claimPeriodReward?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
    }
}

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

    hasTotalRewardClaim(): boolean;
    clearTotalRewardClaim(): void;
    getTotalRewardClaim(): cosmos_base_v1beta1_coin_pb.Coin | undefined;
    setTotalRewardClaim(value?: cosmos_base_v1beta1_coin_pb.Coin): RewardProgramClaimDetail;
    clearClaimedRewardPeriodDetailsList(): void;
    getClaimedRewardPeriodDetailsList(): Array<ClaimedRewardPeriodDetail>;
    setClaimedRewardPeriodDetailsList(value: Array<ClaimedRewardPeriodDetail>): RewardProgramClaimDetail;
    addClaimedRewardPeriodDetails(value?: ClaimedRewardPeriodDetail, index?: number): ClaimedRewardPeriodDetail;

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

export namespace RewardProgramClaimDetail {
    export type AsObject = {
        rewardProgramId: number,
        totalRewardClaim?: cosmos_base_v1beta1_coin_pb.Coin.AsObject,
        claimedRewardPeriodDetailsList: Array<ClaimedRewardPeriodDetail.AsObject>,
    }
}
