"""
@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 nibiru.spot.v1.pool_pb2
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 MsgCreatePool(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    POOL_PARAMS_FIELD_NUMBER: builtins.int
    POOL_ASSETS_FIELD_NUMBER: builtins.int
    creator: builtins.str
    @property
    def pool_params(self) -> nibiru.spot.v1.pool_pb2.PoolParams: ...
    @property
    def pool_assets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.spot.v1.pool_pb2.PoolAsset]: ...
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        pool_params: nibiru.spot.v1.pool_pb2.PoolParams | None = ...,
        pool_assets: collections.abc.Iterable[nibiru.spot.v1.pool_pb2.PoolAsset] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_params", b"pool_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "pool_assets", b"pool_assets", "pool_params", b"pool_params"]) -> None: ...

global___MsgCreatePool = MsgCreatePool

@typing_extensions.final
class MsgCreatePoolResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POOL_ID_FIELD_NUMBER: builtins.int
    pool_id: builtins.int
    def __init__(
        self,
        *,
        pool_id: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id"]) -> None: ...

global___MsgCreatePoolResponse = MsgCreatePoolResponse

@typing_extensions.final
class MsgJoinPool(google.protobuf.message.Message):
    """
    Message to join a pool (identified by poolId) with a set of tokens to deposit.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKENS_IN_FIELD_NUMBER: builtins.int
    USE_ALL_COINS_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    @property
    def tokens_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    use_all_coins: builtins.bool
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        tokens_in: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        use_all_coins: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "sender", b"sender", "tokens_in", b"tokens_in", "use_all_coins", b"use_all_coins"]) -> None: ...

global___MsgJoinPool = MsgJoinPool

@typing_extensions.final
class MsgJoinPoolResponse(google.protobuf.message.Message):
    """
    Response when a user joins a pool.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POOL_FIELD_NUMBER: builtins.int
    NUM_POOL_SHARES_OUT_FIELD_NUMBER: builtins.int
    REMAINING_COINS_FIELD_NUMBER: builtins.int
    @property
    def pool(self) -> nibiru.spot.v1.pool_pb2.Pool:
        """the final state of the pool after a join"""
    @property
    def num_pool_shares_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """sum of LP tokens minted from the join"""
    @property
    def remaining_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """remaining tokens from attempting to join the pool"""
    def __init__(
        self,
        *,
        pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
        num_pool_shares_out: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        remaining_coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["num_pool_shares_out", b"num_pool_shares_out", "pool", b"pool"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["num_pool_shares_out", b"num_pool_shares_out", "pool", b"pool", "remaining_coins", b"remaining_coins"]) -> None: ...

global___MsgJoinPoolResponse = MsgJoinPoolResponse

@typing_extensions.final
class MsgExitPool(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    POOL_SHARES_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    @property
    def pool_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        pool_shares: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_shares", b"pool_shares"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "pool_shares", b"pool_shares", "sender", b"sender"]) -> None: ...

global___MsgExitPool = MsgExitPool

@typing_extensions.final
class MsgExitPoolResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOKENS_OUT_FIELD_NUMBER: builtins.int
    @property
    def tokens_out(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        tokens_out: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tokens_out", b"tokens_out"]) -> None: ...

global___MsgExitPoolResponse = MsgExitPoolResponse

@typing_extensions.final
class MsgSwapAssets(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    TOKEN_OUT_DENOM_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    token_out_denom: builtins.str
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        token_out_denom: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["token_in", b"token_in"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "sender", b"sender", "token_in", b"token_in", "token_out_denom", b"token_out_denom"]) -> None: ...

global___MsgSwapAssets = MsgSwapAssets

@typing_extensions.final
class MsgSwapAssetsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___MsgSwapAssetsResponse = MsgSwapAssetsResponse
