"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import cosmos.base.v1beta1.coin_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
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 MsgMintStable(google.protobuf.message.Message):
    """
    MsgMintStable: Msg to mint NUSD. A user deposits NIBI and collateral and gets
    NUSD in return. The amount of NUSD received depends on the current price set
    by the oracle library and the current collateral ratio for the protocol.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    STABLE_FIELD_NUMBER: builtins.int
    creator: builtins.str
    @property
    def stable(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        stable: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["stable", b"stable"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "stable", b"stable"]) -> None: ...

global___MsgMintStable = MsgMintStable

@typing_extensions.final
class MsgMintStableResponse(google.protobuf.message.Message):
    """MsgMintStableResponse specifies the amount of NUSD token the user will
    receive after their mint transaction
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STABLE_FIELD_NUMBER: builtins.int
    USED_COINS_FIELD_NUMBER: builtins.int
    FEES_PAYED_FIELD_NUMBER: builtins.int
    @property
    def stable(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def used_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    @property
    def fees_payed(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        stable: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        used_coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        fees_payed: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["stable", b"stable"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fees_payed", b"fees_payed", "stable", b"stable", "used_coins", b"used_coins"]) -> None: ...

global___MsgMintStableResponse = MsgMintStableResponse

@typing_extensions.final
class MsgBurnStable(google.protobuf.message.Message):
    """
    MsgBurnStable allows users to burn NUSD in exchange for NIBI and collateral.
    The amount of NIBI and Collateral received depends on the current price set by
    the x/oracle library and the current collateral ratio.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    STABLE_FIELD_NUMBER: builtins.int
    creator: builtins.str
    @property
    def stable(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        stable: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["stable", b"stable"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "stable", b"stable"]) -> None: ...

global___MsgBurnStable = MsgBurnStable

@typing_extensions.final
class MsgBurnStableResponse(google.protobuf.message.Message):
    """MsgBurnStableResponse specifies the amount of collateral and governance
    token the user will receive after their burn transaction.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLLATERAL_FIELD_NUMBER: builtins.int
    GOV_FIELD_NUMBER: builtins.int
    FEES_PAYED_FIELD_NUMBER: builtins.int
    @property
    def collateral(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def gov(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def fees_payed(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        collateral: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        gov: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        fees_payed: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["collateral", b"collateral", "gov", b"gov"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["collateral", b"collateral", "fees_payed", b"fees_payed", "gov", b"gov"]) -> None: ...

global___MsgBurnStableResponse = MsgBurnStableResponse

@typing_extensions.final
class MsgRecollateralize(google.protobuf.message.Message):
    """MsgRecollateralize"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    COLL_FIELD_NUMBER: builtins.int
    creator: builtins.str
    @property
    def coll(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        coll: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["coll", b"coll"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["coll", b"coll", "creator", b"creator"]) -> None: ...

global___MsgRecollateralize = MsgRecollateralize

@typing_extensions.final
class MsgRecollateralizeResponse(google.protobuf.message.Message):
    """MsgRecollateralizeResponse is the output of a successful 'Recollateralize'"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GOV_FIELD_NUMBER: builtins.int
    @property
    def gov(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """Gov (sdk.Coin): Tokens rewarded to the caller in exchange for her
        collateral.
        """
    def __init__(
        self,
        *,
        gov: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["gov", b"gov"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["gov", b"gov"]) -> None: ...

global___MsgRecollateralizeResponse = MsgRecollateralizeResponse

@typing_extensions.final
class MsgBuyback(google.protobuf.message.Message):
    """MsgBuyback"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    GOV_FIELD_NUMBER: builtins.int
    creator: builtins.str
    @property
    def gov(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """Gov (sdk.Coin): Tokens the caller wants to sell to the protocol in exchange
        for collateral.
        """
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        gov: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["gov", b"gov"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "gov", b"gov"]) -> None: ...

global___MsgBuyback = MsgBuyback

@typing_extensions.final
class MsgBuybackResponse(google.protobuf.message.Message):
    """MsgBuybackResponse is the output of a successful 'Buyback'"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    COLL_FIELD_NUMBER: builtins.int
    @property
    def coll(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """Coll (sdk.Coin): Tokens sold to the caller in exchange for her collateral."""
    def __init__(
        self,
        *,
        coll: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["coll", b"coll"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["coll", b"coll"]) -> None: ...

global___MsgBuybackResponse = MsgBuybackResponse
