"""
@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 EventPoolCreated(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_FIELD_NUMBER: builtins.int
    FEES_FIELD_NUMBER: builtins.int
    FINAL_POOL_FIELD_NUMBER: builtins.int
    FINAL_USER_POOL_SHARES_FIELD_NUMBER: builtins.int
    creator: builtins.str
    """the address of the user who created the pool"""
    @property
    def fees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """the create pool fee"""
    @property
    def final_pool(self) -> nibiru.spot.v1.pool_pb2.Pool:
        """the final state of the pool"""
    @property
    def final_user_pool_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of pool shares that the user received"""
    def __init__(
        self,
        *,
        creator: builtins.str = ...,
        fees: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        final_pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
        final_user_pool_shares: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "fees", b"fees", "final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares"]) -> None: ...

global___EventPoolCreated = EventPoolCreated

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

    ADDRESS_FIELD_NUMBER: builtins.int
    TOKENS_IN_FIELD_NUMBER: builtins.int
    POOL_SHARES_OUT_FIELD_NUMBER: builtins.int
    REM_COINS_FIELD_NUMBER: builtins.int
    FINAL_POOL_FIELD_NUMBER: builtins.int
    FINAL_USER_POOL_SHARES_FIELD_NUMBER: builtins.int
    address: builtins.str
    """the address of the user who joined the pool"""
    @property
    def tokens_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """the amount of tokens that the user deposited"""
    @property
    def pool_shares_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of pool shares that the user received"""
    @property
    def rem_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """the amount of tokens remaining for the user"""
    @property
    def final_pool(self) -> nibiru.spot.v1.pool_pb2.Pool:
        """the final state of the pool"""
    @property
    def final_user_pool_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the final amount of user pool shares"""
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        tokens_in: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        pool_shares_out: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        rem_coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        final_pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
        final_user_pool_shares: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares", "pool_shares_out", b"pool_shares_out"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares", "pool_shares_out", b"pool_shares_out", "rem_coins", b"rem_coins", "tokens_in", b"tokens_in"]) -> None: ...

global___EventPoolJoined = EventPoolJoined

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

    ADDRESS_FIELD_NUMBER: builtins.int
    POOL_SHARES_IN_FIELD_NUMBER: builtins.int
    TOKENS_OUT_FIELD_NUMBER: builtins.int
    FEES_FIELD_NUMBER: builtins.int
    FINAL_POOL_FIELD_NUMBER: builtins.int
    FINAL_USER_POOL_SHARES_FIELD_NUMBER: builtins.int
    address: builtins.str
    """the address of the user who exited the pool"""
    @property
    def pool_shares_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of pool shares that the user exited with"""
    @property
    def tokens_out(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """the amount of tokens returned to the user"""
    @property
    def fees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """the amount of fees collected by the pool"""
    @property
    def final_pool(self) -> nibiru.spot.v1.pool_pb2.Pool:
        """the final state of the pool"""
    @property
    def final_user_pool_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the final amount of user pool shares"""
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        pool_shares_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        tokens_out: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        fees: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        final_pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
        final_user_pool_shares: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares", "pool_shares_in", b"pool_shares_in"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "fees", b"fees", "final_pool", b"final_pool", "final_user_pool_shares", b"final_user_pool_shares", "pool_shares_in", b"pool_shares_in", "tokens_out", b"tokens_out"]) -> None: ...

global___EventPoolExited = EventPoolExited

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

    ADDRESS_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    TOKEN_OUT_FIELD_NUMBER: builtins.int
    FEE_FIELD_NUMBER: builtins.int
    FINAL_POOL_FIELD_NUMBER: builtins.int
    address: builtins.str
    """the address of the user who swapped tokens"""
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of tokens that the user deposited"""
    @property
    def token_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of tokens that the user received"""
    @property
    def fee(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """the amount of fees collected by the pool"""
    @property
    def final_pool(self) -> nibiru.spot.v1.pool_pb2.Pool:
        """the final state of the pool"""
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        token_out: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        fee: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        final_pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["fee", b"fee", "final_pool", b"final_pool", "token_in", b"token_in", "token_out", b"token_out"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "fee", b"fee", "final_pool", b"final_pool", "token_in", b"token_in", "token_out", b"token_out"]) -> None: ...

global___EventAssetsSwapped = EventAssetsSwapped
