"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.struct_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class AddItemRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ITEM_IDENTIFIER_FIELD_NUMBER: builtins.int
    EXTRA_DATA_FIELD_NUMBER: builtins.int
    BASKET_IDENTIFIER_FIELD_NUMBER: builtins.int
    INSTALLMENT_FIELD_NUMBER: builtins.int
    VIP_FIELD_NUMBER: builtins.int
    USER_IDENTIFIER_FIELD_NUMBER: builtins.int
    item_identifier: builtins.str
    basket_identifier: builtins.str
    installment: builtins.bool
    vip: builtins.bool
    user_identifier: builtins.str
    @property
    def extra_data(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(
        self,
        *,
        item_identifier: builtins.str = ...,
        extra_data: google.protobuf.struct_pb2.Struct | None = ...,
        basket_identifier: builtins.str | None = ...,
        installment: builtins.bool | None = ...,
        vip: builtins.bool | None = ...,
        user_identifier: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_extra_data", b"_extra_data", "_installment", b"_installment", "_user_identifier", b"_user_identifier", "_vip", b"_vip", "basket_identifier", b"basket_identifier", "extra_data", b"extra_data", "installment", b"installment", "user_identifier", b"user_identifier", "vip", b"vip"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_extra_data", b"_extra_data", "_installment", b"_installment", "_user_identifier", b"_user_identifier", "_vip", b"_vip", "basket_identifier", b"basket_identifier", "extra_data", b"extra_data", "installment", b"installment", "item_identifier", b"item_identifier", "user_identifier", b"user_identifier", "vip", b"vip"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_basket_identifier", b"_basket_identifier"]) -> typing.Literal["basket_identifier"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_extra_data", b"_extra_data"]) -> typing.Literal["extra_data"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_installment", b"_installment"]) -> typing.Literal["installment"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_user_identifier", b"_user_identifier"]) -> typing.Literal["user_identifier"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_vip", b"_vip"]) -> typing.Literal["vip"] | None: ...

global___AddItemRequest = AddItemRequest

@typing.final
class BasketApplyDiscountRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASKET_FIELD_NUMBER: builtins.int
    DISCOUNT_TOKEN_FIELD_NUMBER: builtins.int
    basket: builtins.str
    discount_token: builtins.str
    def __init__(
        self,
        *,
        basket: builtins.str = ...,
        discount_token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["basket", b"basket", "discount_token", b"discount_token"]) -> None: ...

global___BasketApplyDiscountRequest = BasketApplyDiscountRequest

@typing.final
class BasketAssignOwnerRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASKET_FIELD_NUMBER: builtins.int
    OWNER_IDENTIFIER_FIELD_NUMBER: builtins.int
    basket: builtins.str
    owner_identifier: builtins.str
    def __init__(
        self,
        *,
        basket: builtins.str = ...,
        owner_identifier: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["basket", b"basket", "owner_identifier", b"owner_identifier"]) -> None: ...

global___BasketAssignOwnerRequest = BasketAssignOwnerRequest

@typing.final
class BasketCreateRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASKET_IDENTIFIER_FIELD_NUMBER: builtins.int
    OWNER_IDENTIFIER_FIELD_NUMBER: builtins.int
    basket_identifier: builtins.str
    owner_identifier: builtins.str
    def __init__(
        self,
        *,
        basket_identifier: builtins.str | None = ...,
        owner_identifier: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_owner_identifier", b"_owner_identifier", "basket_identifier", b"basket_identifier", "owner_identifier", b"owner_identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_owner_identifier", b"_owner_identifier", "basket_identifier", b"basket_identifier", "owner_identifier", b"owner_identifier"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_basket_identifier", b"_basket_identifier"]) -> typing.Literal["basket_identifier"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_owner_identifier", b"_owner_identifier"]) -> typing.Literal["owner_identifier"] | None: ...

global___BasketCreateRequest = BasketCreateRequest

@typing.final
class BasketRetrieveRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASKET_IDENTIFIER_FIELD_NUMBER: builtins.int
    OWNER_IDENTIFIER_FIELD_NUMBER: builtins.int
    basket_identifier: builtins.str
    owner_identifier: builtins.str
    def __init__(
        self,
        *,
        basket_identifier: builtins.str | None = ...,
        owner_identifier: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_owner_identifier", b"_owner_identifier", "basket_identifier", b"basket_identifier", "owner_identifier", b"owner_identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_owner_identifier", b"_owner_identifier", "basket_identifier", b"basket_identifier", "owner_identifier", b"owner_identifier"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_basket_identifier", b"_basket_identifier"]) -> typing.Literal["basket_identifier"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_owner_identifier", b"_owner_identifier"]) -> typing.Literal["owner_identifier"] | None: ...

global___BasketRetrieveRequest = BasketRetrieveRequest

@typing.final
class BasketTradeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BASKET_FIELD_NUMBER: builtins.int
    WALLET_FIELD_NUMBER: builtins.int
    GATEWAY_FIELD_NUMBER: builtins.int
    basket: builtins.str
    wallet: builtins.bool
    gateway: builtins.str
    def __init__(
        self,
        *,
        basket: builtins.str = ...,
        wallet: builtins.bool | None = ...,
        gateway: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_wallet", b"_wallet", "wallet", b"wallet"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_wallet", b"_wallet", "basket", b"basket", "gateway", b"gateway", "wallet", b"wallet"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_wallet", b"_wallet"]) -> typing.Literal["wallet"] | None: ...

global___BasketTradeRequest = BasketTradeRequest

@typing.final
class EndTradeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GATEWAY_STATUS_FIELD_NUMBER: builtins.int
    PAYMENT_IDENTIFIER_FIELD_NUMBER: builtins.int
    EXTRA_DATA_FIELD_NUMBER: builtins.int
    gateway_status: builtins.str
    payment_identifier: builtins.str
    @property
    def extra_data(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(
        self,
        *,
        gateway_status: builtins.str = ...,
        payment_identifier: builtins.str = ...,
        extra_data: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_extra_data", b"_extra_data", "extra_data", b"extra_data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_extra_data", b"_extra_data", "extra_data", b"extra_data", "gateway_status", b"gateway_status", "payment_identifier", b"payment_identifier"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_extra_data", b"_extra_data"]) -> typing.Literal["extra_data"] | None: ...

global___EndTradeRequest = EndTradeRequest

@typing.final
class InstallmentRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_IDENTIFIER_FIELD_NUMBER: builtins.int
    user_identifier: builtins.str
    def __init__(
        self,
        *,
        user_identifier: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["user_identifier", b"user_identifier"]) -> None: ...

global___InstallmentRequest = InstallmentRequest

@typing.final
class InstallmentTermRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IDENTIFIER_FIELD_NUMBER: builtins.int
    identifier: builtins.str
    def __init__(
        self,
        *,
        identifier: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["identifier", b"identifier"]) -> None: ...

global___InstallmentTermRequest = InstallmentTermRequest

@typing.final
class InstallmentTradeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INSTALLMENT_ID_FIELD_NUMBER: builtins.int
    GATEWAY_FIELD_NUMBER: builtins.int
    installment_id: builtins.str
    gateway: builtins.str
    def __init__(
        self,
        *,
        installment_id: builtins.str = ...,
        gateway: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["gateway", b"gateway", "installment_id", b"installment_id"]) -> None: ...

global___InstallmentTradeRequest = InstallmentTradeRequest

@typing.final
class RemoveItemRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ITEM_IDENTIFIER_FIELD_NUMBER: builtins.int
    EXTRA_DATA_FIELD_NUMBER: builtins.int
    BASKET_IDENTIFIER_FIELD_NUMBER: builtins.int
    USER_IDENTIFIER_FIELD_NUMBER: builtins.int
    item_identifier: builtins.str
    basket_identifier: builtins.str
    user_identifier: builtins.str
    @property
    def extra_data(self) -> google.protobuf.struct_pb2.Struct: ...
    def __init__(
        self,
        *,
        item_identifier: builtins.str = ...,
        extra_data: google.protobuf.struct_pb2.Struct | None = ...,
        basket_identifier: builtins.str | None = ...,
        user_identifier: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_extra_data", b"_extra_data", "_user_identifier", b"_user_identifier", "basket_identifier", b"basket_identifier", "extra_data", b"extra_data", "user_identifier", b"user_identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_basket_identifier", b"_basket_identifier", "_extra_data", b"_extra_data", "_user_identifier", b"_user_identifier", "basket_identifier", b"basket_identifier", "extra_data", b"extra_data", "item_identifier", b"item_identifier", "user_identifier", b"user_identifier"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_basket_identifier", b"_basket_identifier"]) -> typing.Literal["basket_identifier"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_extra_data", b"_extra_data"]) -> typing.Literal["extra_data"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_user_identifier", b"_user_identifier"]) -> typing.Literal["user_identifier"] | None: ...

global___RemoveItemRequest = RemoveItemRequest

@typing.final
class Response(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_FIELD_NUMBER: builtins.int
    CODE_FIELD_NUMBER: builtins.int
    DATA_FIELD_NUMBER: builtins.int
    message: builtins.str
    code: builtins.str
    @property
    def data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Struct]: ...
    def __init__(
        self,
        *,
        message: builtins.str | None = ...,
        code: builtins.str | None = ...,
        data: collections.abc.Iterable[google.protobuf.struct_pb2.Struct] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_code", b"_code", "_message", b"_message", "code", b"code", "message", b"message"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_code", b"_code", "_message", b"_message", "code", b"code", "data", b"data", "message", b"message"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_code", b"_code"]) -> typing.Literal["code"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_message", b"_message"]) -> typing.Literal["message"] | None: ...

global___Response = Response

@typing.final
class WalletTradeRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AMOUNT_FIELD_NUMBER: builtins.int
    WALLET_OWNER_ID_FIELD_NUMBER: builtins.int
    PACKAGE_NAME_FIELD_NUMBER: builtins.int
    GATEWAY_FIELD_NUMBER: builtins.int
    amount: builtins.int
    wallet_owner_id: builtins.str
    package_name: builtins.str
    gateway: builtins.str
    def __init__(
        self,
        *,
        amount: builtins.int | None = ...,
        wallet_owner_id: builtins.str = ...,
        package_name: builtins.str | None = ...,
        gateway: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_amount", b"_amount", "_package_name", b"_package_name", "amount", b"amount", "package_name", b"package_name"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_amount", b"_amount", "_package_name", b"_package_name", "amount", b"amount", "gateway", b"gateway", "package_name", b"package_name", "wallet_owner_id", b"wallet_owner_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_amount", b"_amount"]) -> typing.Literal["amount"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_package_name", b"_package_name"]) -> typing.Literal["package_name"] | None: ...

global___WalletTradeRequest = WalletTradeRequest
