"""
@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
    SWAPFEE_FIELD_NUMBER: builtins.int
    EXITFEE_FIELD_NUMBER: builtins.int
    swapFee: typing.Text
    exitFee: typing.Text
    def __init__(self,
        *,
        swapFee: typing.Text = ...,
        exitFee: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["exitFee",b"exitFee","swapFee",b"swapFee"]) -> 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
    POOLPARAMS_FIELD_NUMBER: builtins.int
    POOLASSETS_FIELD_NUMBER: builtins.int
    TOTALWEIGHT_FIELD_NUMBER: builtins.int
    TOTALSHARES_FIELD_NUMBER: builtins.int
    id: builtins.int
    """The pool id."""

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

    @property
    def poolParams(self) -> global___PoolParams:
        """Fees and other pool-specific parameters."""
        pass
    @property
    def poolAssets(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
    totalWeight: typing.Text
    """sum of all non-normalized pool weights"""

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