"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.any_pb2
import google.protobuf.descriptor
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class Class(google.protobuf.message.Message):
    """Class defines the class of the nft type."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SYMBOL_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    URI_HASH_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    id: builtins.str
    """id defines the unique identifier of the NFT classification, similar to the contract address of ERC721"""
    name: builtins.str
    """name defines the human-readable name of the NFT classification. Optional"""
    symbol: builtins.str
    """symbol is an abbreviated name for nft classification. Optional"""
    description: builtins.str
    """description is a brief description of nft classification. Optional"""
    uri: builtins.str
    """uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional"""
    uri_hash: builtins.str
    """uri_hash is a hash of the document pointed by uri. Optional"""
    @property
    def data(self) -> google.protobuf.any_pb2.Any:
        """data is the app specific metadata of the NFT class. Optional"""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        name: builtins.str = ...,
        symbol: builtins.str = ...,
        description: builtins.str = ...,
        uri: builtins.str = ...,
        uri_hash: builtins.str = ...,
        data: google.protobuf.any_pb2.Any | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data", b"data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "description", b"description", "id", b"id", "name", b"name", "symbol", b"symbol", "uri", b"uri", "uri_hash", b"uri_hash"]) -> None: ...

global___Class = Class

@typing_extensions.final
class NFT(google.protobuf.message.Message):
    """NFT defines the NFT."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLASS_ID_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    URI_HASH_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    class_id: builtins.str
    """class_id associated with the NFT, similar to the contract address of ERC721"""
    id: builtins.str
    """id is a unique identifier of the NFT"""
    uri: builtins.str
    """uri for the NFT metadata stored off chain"""
    uri_hash: builtins.str
    """uri_hash is a hash of the document pointed by uri"""
    @property
    def data(self) -> google.protobuf.any_pb2.Any:
        """data is an app specific data of the NFT. Optional"""
    def __init__(
        self,
        *,
        class_id: builtins.str = ...,
        id: builtins.str = ...,
        uri: builtins.str = ...,
        uri_hash: builtins.str = ...,
        data: google.protobuf.any_pb2.Any | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data", b"data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["class_id", b"class_id", "data", b"data", "id", b"id", "uri", b"uri", "uri_hash", b"uri_hash"]) -> None: ...

global___NFT = NFT
