import { Deposit, DepositAmino, Vote, VoteAmino, Proposal, ProposalAmino, DepositParams, DepositParamsAmino, VotingParams, VotingParamsAmino, TallyParams, TallyParamsAmino, Params, ParamsAmino } from "./gov";
import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * GenesisState defines the gov module's genesis state.
 * @name GenesisState
 * @package cosmos.gov.v1
 * @see proto type: cosmos.gov.v1.GenesisState
 */
export interface GenesisState {
    /**
     * starting_proposal_id is the ID of the starting proposal.
     */
    startingProposalId: bigint;
    /**
     * deposits defines all the deposits present at genesis.
     */
    deposits: Deposit[];
    /**
     * votes defines all the votes present at genesis.
     */
    votes: Vote[];
    /**
     * proposals defines all the proposals present at genesis.
     */
    proposals: Proposal[];
    /**
     * Deprecated: Prefer to use `params` instead.
     * deposit_params defines all the paramaters of related to deposit.
     * @deprecated
     */
    depositParams?: DepositParams;
    /**
     * Deprecated: Prefer to use `params` instead.
     * voting_params defines all the paramaters of related to voting.
     * @deprecated
     */
    votingParams?: VotingParams;
    /**
     * Deprecated: Prefer to use `params` instead.
     * tally_params defines all the paramaters of related to tally.
     * @deprecated
     */
    tallyParams?: TallyParams;
    /**
     * params defines all the paramaters of x/gov module.
     */
    params?: Params;
    /**
     * The constitution allows builders to lay a foundation and define purpose.
     * This is an immutable string set in genesis.
     * There are no amendments, to go outside of scope, just fork.
     * constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals.
     */
    constitution: string;
}
export interface GenesisStateProtoMsg {
    typeUrl: "/cosmos.gov.v1.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the gov module's genesis state.
 * @name GenesisStateAmino
 * @package cosmos.gov.v1
 * @see proto type: cosmos.gov.v1.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * starting_proposal_id is the ID of the starting proposal.
     */
    starting_proposal_id: string;
    /**
     * deposits defines all the deposits present at genesis.
     */
    deposits: DepositAmino[];
    /**
     * votes defines all the votes present at genesis.
     */
    votes: VoteAmino[];
    /**
     * proposals defines all the proposals present at genesis.
     */
    proposals: ProposalAmino[];
    /**
     * Deprecated: Prefer to use `params` instead.
     * deposit_params defines all the paramaters of related to deposit.
     * @deprecated
     */
    deposit_params?: DepositParamsAmino;
    /**
     * Deprecated: Prefer to use `params` instead.
     * voting_params defines all the paramaters of related to voting.
     * @deprecated
     */
    voting_params?: VotingParamsAmino;
    /**
     * Deprecated: Prefer to use `params` instead.
     * tally_params defines all the paramaters of related to tally.
     * @deprecated
     */
    tally_params?: TallyParamsAmino;
    /**
     * params defines all the paramaters of x/gov module.
     */
    params?: ParamsAmino;
    /**
     * The constitution allows builders to lay a foundation and define purpose.
     * This is an immutable string set in genesis.
     * There are no amendments, to go outside of scope, just fork.
     * constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals.
     */
    constitution: string;
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/v1/GenesisState";
    value: GenesisStateAmino;
}
/**
 * GenesisState defines the gov module's genesis state.
 * @name GenesisState
 * @package cosmos.gov.v1
 * @see proto type: cosmos.gov.v1.GenesisState
 */
export declare const GenesisState: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GenesisState;
    isAmino(o: any): o is GenesisStateAmino;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromPartial(object: DeepPartial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    toAminoMsg(message: GenesisState): GenesisStateAminoMsg;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
    registerTypeUrl(): void;
};
