"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.base.v1beta1.coin_pb2
import dex.v1.pool_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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: typing.Text
    @property
    def pool_params(self) -> dex.v1.pool_pb2.PoolParams: ...
    @property
    def pool_assets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[dex.v1.pool_pb2.PoolAsset]: ...
    def __init__(self,
        *,
        creator: typing.Text = ...,
        pool_params: typing.Optional[dex.v1.pool_pb2.PoolParams] = ...,
        pool_assets: typing.Optional[typing.Iterable[dex.v1.pool_pb2.PoolAsset]] = ...,
        ) -> 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

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

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
    sender: typing.Text
    pool_id: builtins.int
    @property
    def tokens_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(self,
        *,
        sender: typing.Text = ...,
        pool_id: builtins.int = ...,
        tokens_in: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id",b"pool_id","sender",b"sender","tokens_in",b"tokens_in"]) -> None: ...
global___MsgJoinPool = MsgJoinPool

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) -> dex.v1.pool_pb2.Pool:
        """the final state of the pool after a join"""
        pass
    @property
    def num_pool_shares_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """sum of LP tokens minted from the join"""
        pass
    @property
    def remaining_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """remaining tokens from attempting to join the pool"""
        pass
    def __init__(self,
        *,
        pool: typing.Optional[dex.v1.pool_pb2.Pool] = ...,
        num_pool_shares_out: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        remaining_coins: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> 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

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: typing.Text
    pool_id: builtins.int
    @property
    def pool_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(self,
        *,
        sender: typing.Text = ...,
        pool_id: builtins.int = ...,
        pool_shares: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        ) -> 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

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: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tokens_out",b"tokens_out"]) -> None: ...
global___MsgExitPoolResponse = MsgExitPoolResponse

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: typing.Text
    pool_id: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    token_out_denom: typing.Text
    def __init__(self,
        *,
        sender: typing.Text = ...,
        pool_id: builtins.int = ...,
        token_in: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        token_out_denom: typing.Text = ...,
        ) -> 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

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: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        ) -> 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

class EventPoolJoined(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ADDRESS_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKENS_IN_FIELD_NUMBER: builtins.int
    POOL_SHARES_OUT_FIELD_NUMBER: builtins.int
    REM_COINS_FIELD_NUMBER: builtins.int
    address: typing.Text
    pool_id: builtins.int
    @property
    def tokens_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    @property
    def pool_shares_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def rem_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(self,
        *,
        address: typing.Text = ...,
        pool_id: builtins.int = ...,
        tokens_in: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        pool_shares_out: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        rem_coins: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_shares_out",b"pool_shares_out"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address",b"address","pool_id",b"pool_id","pool_shares_out",b"pool_shares_out","rem_coins",b"rem_coins","tokens_in",b"tokens_in"]) -> None: ...
global___EventPoolJoined = EventPoolJoined

class EventPoolCreated(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    CREATOR_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    creator: typing.Text
    pool_id: builtins.int
    def __init__(self,
        *,
        creator: typing.Text = ...,
        pool_id: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator",b"creator","pool_id",b"pool_id"]) -> None: ...
global___EventPoolCreated = EventPoolCreated

class EventPoolExited(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ADDRESS_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    POOL_SHARES_IN_FIELD_NUMBER: builtins.int
    TOKENS_OUT_FIELD_NUMBER: builtins.int
    address: typing.Text
    pool_id: builtins.int
    @property
    def pool_shares_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def tokens_out(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(self,
        *,
        address: typing.Text = ...,
        pool_id: builtins.int = ...,
        pool_shares_in: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        tokens_out: typing.Optional[typing.Iterable[cosmos.base.v1beta1.coin_pb2.Coin]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_shares_in",b"pool_shares_in"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address",b"address","pool_id",b"pool_id","pool_shares_in",b"pool_shares_in","tokens_out",b"tokens_out"]) -> None: ...
global___EventPoolExited = EventPoolExited

class EventAssetsSwapped(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ADDRESS_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    TOKEN_OUT_FIELD_NUMBER: builtins.int
    address: typing.Text
    pool_id: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def token_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(self,
        *,
        address: typing.Text = ...,
        pool_id: builtins.int = ...,
        token_in: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        token_out: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["token_in",b"token_in","token_out",b"token_out"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address",b"address","pool_id",b"pool_id","token_in",b"token_in","token_out",b"token_out"]) -> None: ...
global___EventAssetsSwapped = EventAssetsSwapped
