import { ContractMetadata, ContractMetadataAmino, Params, ParamsAmino } from "./rewards";
import { Coin, CoinAmino } from "../../../cosmos/base/v1beta1/coin";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** MsgSetContractMetadata is the request for Msg.SetContractMetadata. */
export interface MsgSetContractMetadata {
    /** sender_address is the msg sender address (bech32 encoded). */
    senderAddress: string;
    /**
     * metadata is the contract metadata to set / update.
     * If metadata exists, non-empty fields will be updated.
     */
    metadata: ContractMetadata;
}
export interface MsgSetContractMetadataProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgSetContractMetadata";
    value: Uint8Array;
}
/** MsgSetContractMetadata is the request for Msg.SetContractMetadata. */
export interface MsgSetContractMetadataAmino {
    /** sender_address is the msg sender address (bech32 encoded). */
    sender_address?: string;
    /**
     * metadata is the contract metadata to set / update.
     * If metadata exists, non-empty fields will be updated.
     */
    metadata?: ContractMetadataAmino;
}
export interface MsgSetContractMetadataAminoMsg {
    type: "/archway.rewards.v1.MsgSetContractMetadata";
    value: MsgSetContractMetadataAmino;
}
/** MsgSetContractMetadataResponse is the response for Msg.SetContractMetadata. */
export interface MsgSetContractMetadataResponse {
}
export interface MsgSetContractMetadataResponseProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgSetContractMetadataResponse";
    value: Uint8Array;
}
/** MsgSetContractMetadataResponse is the response for Msg.SetContractMetadata. */
export interface MsgSetContractMetadataResponseAmino {
}
export interface MsgSetContractMetadataResponseAminoMsg {
    type: "/archway.rewards.v1.MsgSetContractMetadataResponse";
    value: MsgSetContractMetadataResponseAmino;
}
/** MsgWithdrawRewards is the request for Msg.WithdrawRewards. */
export interface MsgWithdrawRewards {
    /** rewards_address is the address to distribute rewards to (bech32 encoded). */
    rewardsAddress: string;
    /**
     * records_limit defines the maximum number of RewardsRecord objects to
     * process. If provided limit is 0, the default limit is used.
     */
    recordsLimit?: MsgWithdrawRewards_RecordsLimit;
    /** record_ids defines specific RewardsRecord object IDs to process. */
    recordIds?: MsgWithdrawRewards_RecordIDs;
}
export interface MsgWithdrawRewardsProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgWithdrawRewards";
    value: Uint8Array;
}
/** MsgWithdrawRewards is the request for Msg.WithdrawRewards. */
export interface MsgWithdrawRewardsAmino {
    /** rewards_address is the address to distribute rewards to (bech32 encoded). */
    rewards_address?: string;
    /**
     * records_limit defines the maximum number of RewardsRecord objects to
     * process. If provided limit is 0, the default limit is used.
     */
    records_limit?: MsgWithdrawRewards_RecordsLimitAmino;
    /** record_ids defines specific RewardsRecord object IDs to process. */
    record_ids?: MsgWithdrawRewards_RecordIDsAmino;
}
export interface MsgWithdrawRewardsAminoMsg {
    type: "/archway.rewards.v1.MsgWithdrawRewards";
    value: MsgWithdrawRewardsAmino;
}
export interface MsgWithdrawRewards_RecordsLimit {
    limit: bigint;
}
export interface MsgWithdrawRewards_RecordsLimitProtoMsg {
    typeUrl: "/archway.rewards.v1.RecordsLimit";
    value: Uint8Array;
}
export interface MsgWithdrawRewards_RecordsLimitAmino {
    limit?: string;
}
export interface MsgWithdrawRewards_RecordsLimitAminoMsg {
    type: "/archway.rewards.v1.RecordsLimit";
    value: MsgWithdrawRewards_RecordsLimitAmino;
}
export interface MsgWithdrawRewards_RecordIDs {
    ids: bigint[];
}
export interface MsgWithdrawRewards_RecordIDsProtoMsg {
    typeUrl: "/archway.rewards.v1.RecordIDs";
    value: Uint8Array;
}
export interface MsgWithdrawRewards_RecordIDsAmino {
    ids?: string[];
}
export interface MsgWithdrawRewards_RecordIDsAminoMsg {
    type: "/archway.rewards.v1.RecordIDs";
    value: MsgWithdrawRewards_RecordIDsAmino;
}
/** MsgWithdrawRewardsResponse is the response for Msg.WithdrawRewards. */
export interface MsgWithdrawRewardsResponse {
    /** records_num is the number of RewardsRecord objects processed. */
    recordsNum: bigint;
    /** rewards are the total rewards transferred. */
    totalRewards: Coin[];
}
export interface MsgWithdrawRewardsResponseProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgWithdrawRewardsResponse";
    value: Uint8Array;
}
/** MsgWithdrawRewardsResponse is the response for Msg.WithdrawRewards. */
export interface MsgWithdrawRewardsResponseAmino {
    /** records_num is the number of RewardsRecord objects processed. */
    records_num?: string;
    /** rewards are the total rewards transferred. */
    total_rewards?: CoinAmino[];
}
export interface MsgWithdrawRewardsResponseAminoMsg {
    type: "/archway.rewards.v1.MsgWithdrawRewardsResponse";
    value: MsgWithdrawRewardsResponseAmino;
}
/** MsgSetFlatFee is the request for Msg.SetFlatFee. */
export interface MsgSetFlatFee {
    /** sender_address is the msg sender address (bech32 encoded). */
    senderAddress: string;
    /** contract_address is the contract address (bech32 encoded). */
    contractAddress: string;
    /** flat_fee_amount defines the minimum flat fee set by the contract_owner */
    flatFeeAmount: Coin;
}
export interface MsgSetFlatFeeProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgSetFlatFee";
    value: Uint8Array;
}
/** MsgSetFlatFee is the request for Msg.SetFlatFee. */
export interface MsgSetFlatFeeAmino {
    /** sender_address is the msg sender address (bech32 encoded). */
    sender_address?: string;
    /** contract_address is the contract address (bech32 encoded). */
    contract_address?: string;
    /** flat_fee_amount defines the minimum flat fee set by the contract_owner */
    flat_fee_amount?: CoinAmino;
}
export interface MsgSetFlatFeeAminoMsg {
    type: "/archway.rewards.v1.MsgSetFlatFee";
    value: MsgSetFlatFeeAmino;
}
/** MsgSetFlatFeeResponse is the response for Msg.SetFlatFee. */
export interface MsgSetFlatFeeResponse {
}
export interface MsgSetFlatFeeResponseProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgSetFlatFeeResponse";
    value: Uint8Array;
}
/** MsgSetFlatFeeResponse is the response for Msg.SetFlatFee. */
export interface MsgSetFlatFeeResponseAmino {
}
export interface MsgSetFlatFeeResponseAminoMsg {
    type: "/archway.rewards.v1.MsgSetFlatFeeResponse";
    value: MsgSetFlatFeeResponseAmino;
}
/**
 * MsgUpdateParams is the Msg/UpdateParams request type.
 *
 * Since: archway v5 && cosmos-sdk 0.47
 */
export interface MsgUpdateParams {
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority: string;
    /**
     * params defines the x/rewards parameters to update.
     *
     * NOTE: All parameters must be supplied.
     */
    params: Params;
}
export interface MsgUpdateParamsProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgUpdateParams";
    value: Uint8Array;
}
/**
 * MsgUpdateParams is the Msg/UpdateParams request type.
 *
 * Since: archway v5 && cosmos-sdk 0.47
 */
export interface MsgUpdateParamsAmino {
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority?: string;
    /**
     * params defines the x/rewards parameters to update.
     *
     * NOTE: All parameters must be supplied.
     */
    params?: ParamsAmino;
}
export interface MsgUpdateParamsAminoMsg {
    type: "/archway.rewards.v1.MsgUpdateParams";
    value: MsgUpdateParamsAmino;
}
/**
 * MsgUpdateParamsResponse defines the response structure for executing a
 * MsgUpdateParams message.
 *
 * Since: archway v5 && cosmos-sdk 0.47
 */
export interface MsgUpdateParamsResponse {
}
export interface MsgUpdateParamsResponseProtoMsg {
    typeUrl: "/archway.rewards.v1.MsgUpdateParamsResponse";
    value: Uint8Array;
}
/**
 * MsgUpdateParamsResponse defines the response structure for executing a
 * MsgUpdateParams message.
 *
 * Since: archway v5 && cosmos-sdk 0.47
 */
export interface MsgUpdateParamsResponseAmino {
}
export interface MsgUpdateParamsResponseAminoMsg {
    type: "/archway.rewards.v1.MsgUpdateParamsResponse";
    value: MsgUpdateParamsResponseAmino;
}
export declare const MsgSetContractMetadata: {
    typeUrl: string;
    encode(message: MsgSetContractMetadata, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSetContractMetadata;
    fromJSON(object: any): MsgSetContractMetadata;
    toJSON(message: MsgSetContractMetadata): unknown;
    fromPartial(object: Partial<MsgSetContractMetadata>): MsgSetContractMetadata;
    fromAmino(object: MsgSetContractMetadataAmino): MsgSetContractMetadata;
    toAmino(message: MsgSetContractMetadata): MsgSetContractMetadataAmino;
    fromAminoMsg(object: MsgSetContractMetadataAminoMsg): MsgSetContractMetadata;
    fromProtoMsg(message: MsgSetContractMetadataProtoMsg): MsgSetContractMetadata;
    toProto(message: MsgSetContractMetadata): Uint8Array;
    toProtoMsg(message: MsgSetContractMetadata): MsgSetContractMetadataProtoMsg;
};
export declare const MsgSetContractMetadataResponse: {
    typeUrl: string;
    encode(_: MsgSetContractMetadataResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSetContractMetadataResponse;
    fromJSON(_: any): MsgSetContractMetadataResponse;
    toJSON(_: MsgSetContractMetadataResponse): unknown;
    fromPartial(_: Partial<MsgSetContractMetadataResponse>): MsgSetContractMetadataResponse;
    fromAmino(_: MsgSetContractMetadataResponseAmino): MsgSetContractMetadataResponse;
    toAmino(_: MsgSetContractMetadataResponse): MsgSetContractMetadataResponseAmino;
    fromAminoMsg(object: MsgSetContractMetadataResponseAminoMsg): MsgSetContractMetadataResponse;
    fromProtoMsg(message: MsgSetContractMetadataResponseProtoMsg): MsgSetContractMetadataResponse;
    toProto(message: MsgSetContractMetadataResponse): Uint8Array;
    toProtoMsg(message: MsgSetContractMetadataResponse): MsgSetContractMetadataResponseProtoMsg;
};
export declare const MsgWithdrawRewards: {
    typeUrl: string;
    encode(message: MsgWithdrawRewards, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawRewards;
    fromJSON(object: any): MsgWithdrawRewards;
    toJSON(message: MsgWithdrawRewards): unknown;
    fromPartial(object: Partial<MsgWithdrawRewards>): MsgWithdrawRewards;
    fromAmino(object: MsgWithdrawRewardsAmino): MsgWithdrawRewards;
    toAmino(message: MsgWithdrawRewards): MsgWithdrawRewardsAmino;
    fromAminoMsg(object: MsgWithdrawRewardsAminoMsg): MsgWithdrawRewards;
    fromProtoMsg(message: MsgWithdrawRewardsProtoMsg): MsgWithdrawRewards;
    toProto(message: MsgWithdrawRewards): Uint8Array;
    toProtoMsg(message: MsgWithdrawRewards): MsgWithdrawRewardsProtoMsg;
};
export declare const MsgWithdrawRewards_RecordsLimit: {
    typeUrl: string;
    encode(message: MsgWithdrawRewards_RecordsLimit, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawRewards_RecordsLimit;
    fromJSON(object: any): MsgWithdrawRewards_RecordsLimit;
    toJSON(message: MsgWithdrawRewards_RecordsLimit): unknown;
    fromPartial(object: Partial<MsgWithdrawRewards_RecordsLimit>): MsgWithdrawRewards_RecordsLimit;
    fromAmino(object: MsgWithdrawRewards_RecordsLimitAmino): MsgWithdrawRewards_RecordsLimit;
    toAmino(message: MsgWithdrawRewards_RecordsLimit): MsgWithdrawRewards_RecordsLimitAmino;
    fromAminoMsg(object: MsgWithdrawRewards_RecordsLimitAminoMsg): MsgWithdrawRewards_RecordsLimit;
    fromProtoMsg(message: MsgWithdrawRewards_RecordsLimitProtoMsg): MsgWithdrawRewards_RecordsLimit;
    toProto(message: MsgWithdrawRewards_RecordsLimit): Uint8Array;
    toProtoMsg(message: MsgWithdrawRewards_RecordsLimit): MsgWithdrawRewards_RecordsLimitProtoMsg;
};
export declare const MsgWithdrawRewards_RecordIDs: {
    typeUrl: string;
    encode(message: MsgWithdrawRewards_RecordIDs, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawRewards_RecordIDs;
    fromJSON(object: any): MsgWithdrawRewards_RecordIDs;
    toJSON(message: MsgWithdrawRewards_RecordIDs): unknown;
    fromPartial(object: Partial<MsgWithdrawRewards_RecordIDs>): MsgWithdrawRewards_RecordIDs;
    fromAmino(object: MsgWithdrawRewards_RecordIDsAmino): MsgWithdrawRewards_RecordIDs;
    toAmino(message: MsgWithdrawRewards_RecordIDs): MsgWithdrawRewards_RecordIDsAmino;
    fromAminoMsg(object: MsgWithdrawRewards_RecordIDsAminoMsg): MsgWithdrawRewards_RecordIDs;
    fromProtoMsg(message: MsgWithdrawRewards_RecordIDsProtoMsg): MsgWithdrawRewards_RecordIDs;
    toProto(message: MsgWithdrawRewards_RecordIDs): Uint8Array;
    toProtoMsg(message: MsgWithdrawRewards_RecordIDs): MsgWithdrawRewards_RecordIDsProtoMsg;
};
export declare const MsgWithdrawRewardsResponse: {
    typeUrl: string;
    encode(message: MsgWithdrawRewardsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgWithdrawRewardsResponse;
    fromJSON(object: any): MsgWithdrawRewardsResponse;
    toJSON(message: MsgWithdrawRewardsResponse): unknown;
    fromPartial(object: Partial<MsgWithdrawRewardsResponse>): MsgWithdrawRewardsResponse;
    fromAmino(object: MsgWithdrawRewardsResponseAmino): MsgWithdrawRewardsResponse;
    toAmino(message: MsgWithdrawRewardsResponse): MsgWithdrawRewardsResponseAmino;
    fromAminoMsg(object: MsgWithdrawRewardsResponseAminoMsg): MsgWithdrawRewardsResponse;
    fromProtoMsg(message: MsgWithdrawRewardsResponseProtoMsg): MsgWithdrawRewardsResponse;
    toProto(message: MsgWithdrawRewardsResponse): Uint8Array;
    toProtoMsg(message: MsgWithdrawRewardsResponse): MsgWithdrawRewardsResponseProtoMsg;
};
export declare const MsgSetFlatFee: {
    typeUrl: string;
    encode(message: MsgSetFlatFee, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSetFlatFee;
    fromJSON(object: any): MsgSetFlatFee;
    toJSON(message: MsgSetFlatFee): unknown;
    fromPartial(object: Partial<MsgSetFlatFee>): MsgSetFlatFee;
    fromAmino(object: MsgSetFlatFeeAmino): MsgSetFlatFee;
    toAmino(message: MsgSetFlatFee): MsgSetFlatFeeAmino;
    fromAminoMsg(object: MsgSetFlatFeeAminoMsg): MsgSetFlatFee;
    fromProtoMsg(message: MsgSetFlatFeeProtoMsg): MsgSetFlatFee;
    toProto(message: MsgSetFlatFee): Uint8Array;
    toProtoMsg(message: MsgSetFlatFee): MsgSetFlatFeeProtoMsg;
};
export declare const MsgSetFlatFeeResponse: {
    typeUrl: string;
    encode(_: MsgSetFlatFeeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgSetFlatFeeResponse;
    fromJSON(_: any): MsgSetFlatFeeResponse;
    toJSON(_: MsgSetFlatFeeResponse): unknown;
    fromPartial(_: Partial<MsgSetFlatFeeResponse>): MsgSetFlatFeeResponse;
    fromAmino(_: MsgSetFlatFeeResponseAmino): MsgSetFlatFeeResponse;
    toAmino(_: MsgSetFlatFeeResponse): MsgSetFlatFeeResponseAmino;
    fromAminoMsg(object: MsgSetFlatFeeResponseAminoMsg): MsgSetFlatFeeResponse;
    fromProtoMsg(message: MsgSetFlatFeeResponseProtoMsg): MsgSetFlatFeeResponse;
    toProto(message: MsgSetFlatFeeResponse): Uint8Array;
    toProtoMsg(message: MsgSetFlatFeeResponse): MsgSetFlatFeeResponseProtoMsg;
};
export declare const MsgUpdateParams: {
    typeUrl: string;
    encode(message: MsgUpdateParams, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParams;
    fromJSON(object: any): MsgUpdateParams;
    toJSON(message: MsgUpdateParams): unknown;
    fromPartial(object: Partial<MsgUpdateParams>): MsgUpdateParams;
    fromAmino(object: MsgUpdateParamsAmino): MsgUpdateParams;
    toAmino(message: MsgUpdateParams): MsgUpdateParamsAmino;
    fromAminoMsg(object: MsgUpdateParamsAminoMsg): MsgUpdateParams;
    fromProtoMsg(message: MsgUpdateParamsProtoMsg): MsgUpdateParams;
    toProto(message: MsgUpdateParams): Uint8Array;
    toProtoMsg(message: MsgUpdateParams): MsgUpdateParamsProtoMsg;
};
export declare const MsgUpdateParamsResponse: {
    typeUrl: string;
    encode(_: MsgUpdateParamsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParamsResponse;
    fromJSON(_: any): MsgUpdateParamsResponse;
    toJSON(_: MsgUpdateParamsResponse): unknown;
    fromPartial(_: Partial<MsgUpdateParamsResponse>): MsgUpdateParamsResponse;
    fromAmino(_: MsgUpdateParamsResponseAmino): MsgUpdateParamsResponse;
    toAmino(_: MsgUpdateParamsResponse): MsgUpdateParamsResponseAmino;
    fromAminoMsg(object: MsgUpdateParamsResponseAminoMsg): MsgUpdateParamsResponse;
    fromProtoMsg(message: MsgUpdateParamsResponseProtoMsg): MsgUpdateParamsResponse;
    toProto(message: MsgUpdateParamsResponse): Uint8Array;
    toProtoMsg(message: MsgUpdateParamsResponse): MsgUpdateParamsResponseProtoMsg;
};
