from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class PrimalStoneType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    STONE_KHAI_LINH: _ClassVar[PrimalStoneType]
    STONE_TINH_LUYEN: _ClassVar[PrimalStoneType]
    STONE_TAO_HOA: _ClassVar[PrimalStoneType]
    STONE_HON_NGUYEN: _ClassVar[PrimalStoneType]
    STONE_THIEN_TUONG: _ClassVar[PrimalStoneType]
    STONE_THIEN_MENH: _ClassVar[PrimalStoneType]
    STONE_THAI_HU_KINH: _ClassVar[PrimalStoneType]
STONE_KHAI_LINH: PrimalStoneType
STONE_TINH_LUYEN: PrimalStoneType
STONE_TAO_HOA: PrimalStoneType
STONE_HON_NGUYEN: PrimalStoneType
STONE_THIEN_TUONG: PrimalStoneType
STONE_THIEN_MENH: PrimalStoneType
STONE_THAI_HU_KINH: PrimalStoneType

class CurrencyStack(_message.Message):
    __slots__ = ("stone_type", "amount")
    STONE_TYPE_FIELD_NUMBER: _ClassVar[int]
    AMOUNT_FIELD_NUMBER: _ClassVar[int]
    stone_type: PrimalStoneType
    amount: int
    def __init__(self, stone_type: _Optional[_Union[PrimalStoneType, str]] = ..., amount: _Optional[int] = ...) -> None: ...

class ItemRecord(_message.Message):
    __slots__ = ("item_uuid", "item_name", "item_level", "rarity", "explicit_affixes", "implicit_affixes")
    ITEM_UUID_FIELD_NUMBER: _ClassVar[int]
    ITEM_NAME_FIELD_NUMBER: _ClassVar[int]
    ITEM_LEVEL_FIELD_NUMBER: _ClassVar[int]
    RARITY_FIELD_NUMBER: _ClassVar[int]
    EXPLICIT_AFFIXES_FIELD_NUMBER: _ClassVar[int]
    IMPLICIT_AFFIXES_FIELD_NUMBER: _ClassVar[int]
    item_uuid: str
    item_name: str
    item_level: int
    rarity: int
    explicit_affixes: _containers.RepeatedScalarFieldContainer[str]
    implicit_affixes: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, item_uuid: _Optional[str] = ..., item_name: _Optional[str] = ..., item_level: _Optional[int] = ..., rarity: _Optional[int] = ..., explicit_affixes: _Optional[_Iterable[str]] = ..., implicit_affixes: _Optional[_Iterable[str]] = ...) -> None: ...

class VaultListing(_message.Message):
    __slots__ = ("listing_id", "seller_account_id", "item", "asking_price", "listed_timestamp", "is_active")
    LISTING_ID_FIELD_NUMBER: _ClassVar[int]
    SELLER_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    ITEM_FIELD_NUMBER: _ClassVar[int]
    ASKING_PRICE_FIELD_NUMBER: _ClassVar[int]
    LISTED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    IS_ACTIVE_FIELD_NUMBER: _ClassVar[int]
    listing_id: str
    seller_account_id: str
    item: ItemRecord
    asking_price: CurrencyStack
    listed_timestamp: int
    is_active: bool
    def __init__(self, listing_id: _Optional[str] = ..., seller_account_id: _Optional[str] = ..., item: _Optional[_Union[ItemRecord, _Mapping]] = ..., asking_price: _Optional[_Union[CurrencyStack, _Mapping]] = ..., listed_timestamp: _Optional[int] = ..., is_active: _Optional[bool] = ...) -> None: ...

class InstantBuyoutRequest(_message.Message):
    __slots__ = ("listing_id", "buyer_account_id", "offered_payment", "request_timestamp", "idempotency_key")
    LISTING_ID_FIELD_NUMBER: _ClassVar[int]
    BUYER_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    OFFERED_PAYMENT_FIELD_NUMBER: _ClassVar[int]
    REQUEST_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    IDEMPOTENCY_KEY_FIELD_NUMBER: _ClassVar[int]
    listing_id: str
    buyer_account_id: str
    offered_payment: CurrencyStack
    request_timestamp: int
    idempotency_key: str
    def __init__(self, listing_id: _Optional[str] = ..., buyer_account_id: _Optional[str] = ..., offered_payment: _Optional[_Union[CurrencyStack, _Mapping]] = ..., request_timestamp: _Optional[int] = ..., idempotency_key: _Optional[str] = ...) -> None: ...

class TradeReceipt(_message.Message):
    __slots__ = ("transaction_id", "listing_id", "seller_account_id", "buyer_account_id", "item_uuid", "paid_amount", "confirmed_timestamp", "success", "error_message")
    TRANSACTION_ID_FIELD_NUMBER: _ClassVar[int]
    LISTING_ID_FIELD_NUMBER: _ClassVar[int]
    SELLER_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    BUYER_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int]
    ITEM_UUID_FIELD_NUMBER: _ClassVar[int]
    PAID_AMOUNT_FIELD_NUMBER: _ClassVar[int]
    CONFIRMED_TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    transaction_id: str
    listing_id: str
    seller_account_id: str
    buyer_account_id: str
    item_uuid: str
    paid_amount: CurrencyStack
    confirmed_timestamp: int
    success: bool
    error_message: str
    def __init__(self, transaction_id: _Optional[str] = ..., listing_id: _Optional[str] = ..., seller_account_id: _Optional[str] = ..., buyer_account_id: _Optional[str] = ..., item_uuid: _Optional[str] = ..., paid_amount: _Optional[_Union[CurrencyStack, _Mapping]] = ..., confirmed_timestamp: _Optional[int] = ..., success: _Optional[bool] = ..., error_message: _Optional[str] = ...) -> None: ...
