"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import cosmos.base.v1beta1.coin_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 PoolParams(google.protobuf.message.Message):
    """Configuration parameters for the pool."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    SWAP_FEE_FIELD_NUMBER: builtins.int
    EXIT_FEE_FIELD_NUMBER: builtins.int
    swap_fee: typing.Text
    exit_fee: typing.Text
    def __init__(self,
        *,
        swap_fee: typing.Text = ...,
        exit_fee: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exit_fee",b"exit_fee","swap_fee",b"swap_fee"]) -> None: ...
global___PoolParams = PoolParams

class PoolAsset(google.protobuf.message.Message):
    """Which assets the pool contains."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    TOKEN_FIELD_NUMBER: builtins.int
    WEIGHT_FIELD_NUMBER: builtins.int
    @property
    def token(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """Coins we are talking about,
        the denomination must be unique amongst all PoolAssets for this pool.
        """
        pass
    weight: typing.Text
    """Weight that is not normalized. This weight must be less than 2^50"""

    def __init__(self,
        *,
        token: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        weight: typing.Text = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["token",b"token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["token",b"token","weight",b"weight"]) -> None: ...
global___PoolAsset = PoolAsset

class Pool(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    POOL_PARAMS_FIELD_NUMBER: builtins.int
    POOL_ASSETS_FIELD_NUMBER: builtins.int
    TOTAL_WEIGHT_FIELD_NUMBER: builtins.int
    TOTAL_SHARES_FIELD_NUMBER: builtins.int
    id: builtins.int
    """The pool id."""

    address: typing.Text
    """The pool account address."""

    @property
    def pool_params(self) -> global___PoolParams:
        """Fees and other pool-specific parameters."""
        pass
    @property
    def pool_assets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PoolAsset]:
        """These are assumed to be sorted by denomiation.
        They contain the pool asset and the information about the weight
        """
        pass
    total_weight: typing.Text
    """sum of all non-normalized pool weights"""

    @property
    def total_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """sum of all LP tokens sent out"""
        pass
    def __init__(self,
        *,
        id: builtins.int = ...,
        address: typing.Text = ...,
        pool_params: typing.Optional[global___PoolParams] = ...,
        pool_assets: typing.Optional[typing.Iterable[global___PoolAsset]] = ...,
        total_weight: typing.Text = ...,
        total_shares: typing.Optional[cosmos.base.v1beta1.coin_pb2.Coin] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_params",b"pool_params","total_shares",b"total_shares"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address",b"address","id",b"id","pool_assets",b"pool_assets","pool_params",b"pool_params","total_shares",b"total_shares","total_weight",b"total_weight"]) -> None: ...
global___Pool = Pool
