"""
@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 MsgJoinPool(google.protobuf.message.Message):
    """===================== MsgJoinPool
    This is really MsgJoinPoolNoSwap
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___MsgJoinPool = MsgJoinPool

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

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

global___MsgJoinPoolResponse = MsgJoinPoolResponse

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___MsgExitPool = MsgExitPool

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

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

global___MsgExitPoolResponse = MsgExitPoolResponse

@typing_extensions.final
class SwapAmountInRoute(google.protobuf.message.Message):
    """===================== MsgSwapExactAmountIn"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SwapAmountInRoute = SwapAmountInRoute

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

    SENDER_FIELD_NUMBER: builtins.int
    ROUTES_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    TOKEN_OUT_MIN_AMOUNT_FIELD_NUMBER: builtins.int
    sender: builtins.str
    @property
    def routes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SwapAmountInRoute]: ...
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    token_out_min_amount: builtins.str
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        routes: collections.abc.Iterable[global___SwapAmountInRoute] | None = ...,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        token_out_min_amount: 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["routes", b"routes", "sender", b"sender", "token_in", b"token_in", "token_out_min_amount", b"token_out_min_amount"]) -> None: ...

global___MsgSwapExactAmountIn = MsgSwapExactAmountIn

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

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

global___MsgSwapExactAmountInResponse = MsgSwapExactAmountInResponse

@typing_extensions.final
class SwapAmountOutRoute(google.protobuf.message.Message):
    """===================== MsgSwapExactAmountOut"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SwapAmountOutRoute = SwapAmountOutRoute

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

    SENDER_FIELD_NUMBER: builtins.int
    ROUTES_FIELD_NUMBER: builtins.int
    TOKEN_IN_MAX_AMOUNT_FIELD_NUMBER: builtins.int
    TOKEN_OUT_FIELD_NUMBER: builtins.int
    sender: builtins.str
    @property
    def routes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SwapAmountOutRoute]: ...
    token_in_max_amount: builtins.str
    @property
    def token_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        routes: collections.abc.Iterable[global___SwapAmountOutRoute] | None = ...,
        token_in_max_amount: builtins.str = ...,
        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["routes", b"routes", "sender", b"sender", "token_in_max_amount", b"token_in_max_amount", "token_out", b"token_out"]) -> None: ...

global___MsgSwapExactAmountOut = MsgSwapExactAmountOut

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

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

global___MsgSwapExactAmountOutResponse = MsgSwapExactAmountOutResponse

@typing_extensions.final
class MsgJoinSwapExternAmountIn(google.protobuf.message.Message):
    """===================== MsgJoinSwapExternAmountIn
    TODO: Rename to MsgJoinSwapExactAmountIn
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    SHARE_OUT_MIN_AMOUNT_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    share_out_min_amount: builtins.str
    """repeated cosmos.base.v1beta1.Coin tokensIn = 5 [
      (gogoproto.moretags) = "yaml:\\"tokens_in\\"",
      (gogoproto.nullable) = false
    ];
    """
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        share_out_min_amount: 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", "share_out_min_amount", b"share_out_min_amount", "token_in", b"token_in"]) -> None: ...

global___MsgJoinSwapExternAmountIn = MsgJoinSwapExternAmountIn

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

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

global___MsgJoinSwapExternAmountInResponse = MsgJoinSwapExternAmountInResponse

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_DENOM_FIELD_NUMBER: builtins.int
    SHARE_OUT_AMOUNT_FIELD_NUMBER: builtins.int
    TOKEN_IN_MAX_AMOUNT_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    token_in_denom: builtins.str
    share_out_amount: builtins.str
    token_in_max_amount: builtins.str
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        token_in_denom: builtins.str = ...,
        share_out_amount: builtins.str = ...,
        token_in_max_amount: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "sender", b"sender", "share_out_amount", b"share_out_amount", "token_in_denom", b"token_in_denom", "token_in_max_amount", b"token_in_max_amount"]) -> None: ...

global___MsgJoinSwapShareAmountOut = MsgJoinSwapShareAmountOut

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

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

global___MsgJoinSwapShareAmountOutResponse = MsgJoinSwapShareAmountOutResponse

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SENDER_FIELD_NUMBER: builtins.int
    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_OUT_DENOM_FIELD_NUMBER: builtins.int
    SHARE_IN_AMOUNT_FIELD_NUMBER: builtins.int
    TOKEN_OUT_MIN_AMOUNT_FIELD_NUMBER: builtins.int
    sender: builtins.str
    pool_id: builtins.int
    token_out_denom: builtins.str
    share_in_amount: builtins.str
    token_out_min_amount: builtins.str
    def __init__(
        self,
        *,
        sender: builtins.str = ...,
        pool_id: builtins.int = ...,
        token_out_denom: builtins.str = ...,
        share_in_amount: builtins.str = ...,
        token_out_min_amount: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "sender", b"sender", "share_in_amount", b"share_in_amount", "token_out_denom", b"token_out_denom", "token_out_min_amount", b"token_out_min_amount"]) -> None: ...

global___MsgExitSwapShareAmountIn = MsgExitSwapShareAmountIn

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

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

global___MsgExitSwapShareAmountInResponse = MsgExitSwapShareAmountInResponse

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___MsgExitSwapExternAmountOut = MsgExitSwapExternAmountOut

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

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

global___MsgExitSwapExternAmountOutResponse = MsgExitSwapExternAmountOutResponse
