import { Any, AnyAmino } from "../../../google/protobuf/any";
import { BinaryReader, BinaryWriter } from "../../../binary";
import { DeepPartial } from "../../../helpers";
/**
 * Class defines the class of the nft type.
 * @name Class
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Class
 */
export interface Class {
    /**
     * id defines the unique identifier of the NFT classification, similar to the contract address of ERC721
     */
    id: string;
    /**
     * name defines the human-readable name of the NFT classification. Optional
     */
    name: string;
    /**
     * symbol is an abbreviated name for nft classification. Optional
     */
    symbol: string;
    /**
     * description is a brief description of nft classification. Optional
     */
    description: string;
    /**
     * uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional
     */
    uri: string;
    /**
     * uri_hash is a hash of the document pointed by uri. Optional
     */
    uriHash: string;
    /**
     * data is the app specific metadata of the NFT class. Optional
     */
    data?: Any;
}
export interface ClassProtoMsg {
    typeUrl: "/cosmos.nft.v1beta1.Class";
    value: Uint8Array;
}
/**
 * Class defines the class of the nft type.
 * @name ClassAmino
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Class
 */
export interface ClassAmino {
    /**
     * id defines the unique identifier of the NFT classification, similar to the contract address of ERC721
     */
    id: string;
    /**
     * name defines the human-readable name of the NFT classification. Optional
     */
    name: string;
    /**
     * symbol is an abbreviated name for nft classification. Optional
     */
    symbol: string;
    /**
     * description is a brief description of nft classification. Optional
     */
    description: string;
    /**
     * uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional
     */
    uri: string;
    /**
     * uri_hash is a hash of the document pointed by uri. Optional
     */
    uri_hash: string;
    /**
     * data is the app specific metadata of the NFT class. Optional
     */
    data?: AnyAmino;
}
export interface ClassAminoMsg {
    type: "cosmos-sdk/Class";
    value: ClassAmino;
}
/**
 * NFT defines the NFT.
 * @name NFT
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.NFT
 */
export interface NFT {
    /**
     * class_id associated with the NFT, similar to the contract address of ERC721
     */
    classId: string;
    /**
     * id is a unique identifier of the NFT
     */
    id: string;
    /**
     * uri for the NFT metadata stored off chain
     */
    uri: string;
    /**
     * uri_hash is a hash of the document pointed by uri
     */
    uriHash: string;
    /**
     * data is an app specific data of the NFT. Optional
     */
    data?: Any;
}
export interface NFTProtoMsg {
    typeUrl: "/cosmos.nft.v1beta1.NFT";
    value: Uint8Array;
}
/**
 * NFT defines the NFT.
 * @name NFTAmino
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.NFT
 */
export interface NFTAmino {
    /**
     * class_id associated with the NFT, similar to the contract address of ERC721
     */
    class_id: string;
    /**
     * id is a unique identifier of the NFT
     */
    id: string;
    /**
     * uri for the NFT metadata stored off chain
     */
    uri: string;
    /**
     * uri_hash is a hash of the document pointed by uri
     */
    uri_hash: string;
    /**
     * data is an app specific data of the NFT. Optional
     */
    data?: AnyAmino;
}
export interface NFTAminoMsg {
    type: "cosmos-sdk/NFT";
    value: NFTAmino;
}
/**
 * Class defines the class of the nft type.
 * @name Class
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.Class
 */
export declare const Class: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Class;
    isAmino(o: any): o is ClassAmino;
    encode(message: Class, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Class;
    fromPartial(object: DeepPartial<Class>): Class;
    fromAmino(object: ClassAmino): Class;
    toAmino(message: Class): ClassAmino;
    fromAminoMsg(object: ClassAminoMsg): Class;
    toAminoMsg(message: Class): ClassAminoMsg;
    fromProtoMsg(message: ClassProtoMsg): Class;
    toProto(message: Class): Uint8Array;
    toProtoMsg(message: Class): ClassProtoMsg;
    registerTypeUrl(): void;
};
/**
 * NFT defines the NFT.
 * @name NFT
 * @package cosmos.nft.v1beta1
 * @see proto type: cosmos.nft.v1beta1.NFT
 */
export declare const NFT: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is NFT;
    isAmino(o: any): o is NFTAmino;
    encode(message: NFT, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): NFT;
    fromPartial(object: DeepPartial<NFT>): NFT;
    fromAmino(object: NFTAmino): NFT;
    toAmino(message: NFT): NFTAmino;
    fromAminoMsg(object: NFTAminoMsg): NFT;
    toAminoMsg(message: NFT): NFTAminoMsg;
    fromProtoMsg(message: NFTProtoMsg): NFT;
    toProto(message: NFT): Uint8Array;
    toProtoMsg(message: NFT): NFTProtoMsg;
    registerTypeUrl(): void;
};
