import { Class, ClassAmino, NFT, NFTAmino } from "./nft";
import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * GenesisState defines the nft module's genesis state.
 * @name GenesisState
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.GenesisState
 */
export interface GenesisState {
    /**
     * class defines the class of the nft type.
     */
    classes: Class[];
    /**
     * entry defines all nft owned by a person.
     */
    entries: Entry[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/cosmos.nft.v1beta1.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines the nft module's genesis state.
 * @name GenesisStateAmino
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * class defines the class of the nft type.
     */
    classes: ClassAmino[];
    /**
     * entry defines all nft owned by a person.
     */
    entries: EntryAmino[];
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * Entry Defines all nft owned by a person
 * @name Entry
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Entry
 */
export interface Entry {
    /**
     * owner is the owner address of the following nft
     */
    owner: string;
    /**
     * nfts is a group of nfts of the same owner
     */
    nfts: NFT[];
}
export interface EntryProtoMsg {
    typeUrl: "/cosmos.nft.v1beta1.Entry";
    value: Uint8Array;
}
/**
 * Entry Defines all nft owned by a person
 * @name EntryAmino
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Entry
 */
export interface EntryAmino {
    /**
     * owner is the owner address of the following nft
     */
    owner: string;
    /**
     * nfts is a group of nfts of the same owner
     */
    nfts: NFTAmino[];
}
export interface EntryAminoMsg {
    type: "cosmos-sdk/Entry";
    value: EntryAmino;
}
/**
 * GenesisState defines the nft module's genesis state.
 * @name GenesisState
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.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;
};
/**
 * Entry Defines all nft owned by a person
 * @name Entry
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Entry
 */
export declare const Entry: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Entry;
    isAmino(o: any): o is EntryAmino;
    encode(message: Entry, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Entry;
    fromPartial(object: DeepPartial<Entry>): Entry;
    fromAmino(object: EntryAmino): Entry;
    toAmino(message: Entry): EntryAmino;
    fromAminoMsg(object: EntryAminoMsg): Entry;
    toAminoMsg(message: Entry): EntryAminoMsg;
    fromProtoMsg(message: EntryProtoMsg): Entry;
    toProto(message: Entry): Uint8Array;
    toProtoMsg(message: Entry): EntryProtoMsg;
    registerTypeUrl(): void;
};
