import { Params, ParamsAmino, ContractMetadata, ContractMetadataAmino, BlockRewards, BlockRewardsAmino, TxRewards, TxRewardsAmino, RewardsRecord, RewardsRecordAmino, FlatFee, FlatFeeAmino } from "./rewards";
import { DecCoin, DecCoinAmino } from "../../../cosmos/base/v1beta1/coin";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** GenesisState defines the initial state of the tracking module. */
export interface GenesisState {
    /** params defines all the module parameters. */
    params: Params;
    /** contracts_metadata defines a list of all contracts metadata. */
    contractsMetadata: ContractMetadata[];
    /** block_rewards defines a list of all block rewards objects. */
    blockRewards: BlockRewards[];
    /** tx_rewards defines a list of all tx rewards objects. */
    txRewards: TxRewards[];
    /** min_consensus_fee defines the minimum gas unit price. */
    minConsensusFee: DecCoin;
    /** rewards_record_last_id defines the last unique ID for a RewardsRecord objs. */
    rewardsRecordLastId: bigint;
    /**
     * rewards_records defines a list of all active (undistributed) rewards
     * records.
     */
    rewardsRecords: RewardsRecord[];
    /** flat_fees defines a list of contract flat fee. */
    flatFees: FlatFee[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/archway.rewards.v1.GenesisState";
    value: Uint8Array;
}
/** GenesisState defines the initial state of the tracking module. */
export interface GenesisStateAmino {
    /** params defines all the module parameters. */
    params?: ParamsAmino;
    /** contracts_metadata defines a list of all contracts metadata. */
    contracts_metadata?: ContractMetadataAmino[];
    /** block_rewards defines a list of all block rewards objects. */
    block_rewards?: BlockRewardsAmino[];
    /** tx_rewards defines a list of all tx rewards objects. */
    tx_rewards?: TxRewardsAmino[];
    /** min_consensus_fee defines the minimum gas unit price. */
    min_consensus_fee?: DecCoinAmino;
    /** rewards_record_last_id defines the last unique ID for a RewardsRecord objs. */
    rewards_record_last_id?: string;
    /**
     * rewards_records defines a list of all active (undistributed) rewards
     * records.
     */
    rewards_records?: RewardsRecordAmino[];
    /** flat_fees defines a list of contract flat fee. */
    flat_fees?: FlatFeeAmino[];
}
export interface GenesisStateAminoMsg {
    type: "/archway.rewards.v1.GenesisState";
    value: GenesisStateAmino;
}
export declare const GenesisState: {
    typeUrl: string;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromJSON(object: any): GenesisState;
    toJSON(message: GenesisState): unknown;
    fromPartial(object: Partial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
};
