"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import cosmos.base.query.v1beta1.pagination_pb2
import cosmos.base.v1beta1.coin_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import nibiru.spot.v1.params_pb2
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 QueryParamsRequest(google.protobuf.message.Message):
    """QueryParamsRequest is request type for the Query/Params RPC method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___QueryParamsRequest = QueryParamsRequest

@typing_extensions.final
class QueryParamsResponse(google.protobuf.message.Message):
    """QueryParamsResponse is response type for the Query/Params RPC method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> nibiru.spot.v1.params_pb2.Params:
        """params holds all the parameters of this module."""
    def __init__(
        self,
        *,
        params: nibiru.spot.v1.params_pb2.Params | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["params", b"params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["params", b"params"]) -> None: ...

global___QueryParamsResponse = QueryParamsResponse

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

    def __init__(
        self,
    ) -> None: ...

global___QueryPoolNumberRequest = QueryPoolNumberRequest

@typing_extensions.final
class QueryPoolNumberResponse(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___QueryPoolNumberResponse = QueryPoolNumberResponse

@typing_extensions.final
class QueryPoolRequest(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___QueryPoolRequest = QueryPoolRequest

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

    POOL_FIELD_NUMBER: builtins.int
    @property
    def pool(self) -> nibiru.spot.v1.pool_pb2.Pool: ...
    def __init__(
        self,
        *,
        pool: nibiru.spot.v1.pool_pb2.Pool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool", b"pool"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool", b"pool"]) -> None: ...

global___QueryPoolResponse = QueryPoolResponse

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

    PAGINATION_FIELD_NUMBER: builtins.int
    @property
    def pagination(self) -> cosmos.base.query.v1beta1.pagination_pb2.PageRequest:
        """pagination defines an optional pagination for the request."""
    def __init__(
        self,
        *,
        pagination: cosmos.base.query.v1beta1.pagination_pb2.PageRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> None: ...

global___QueryPoolsRequest = QueryPoolsRequest

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

    POOLS_FIELD_NUMBER: builtins.int
    PAGINATION_FIELD_NUMBER: builtins.int
    @property
    def pools(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[nibiru.spot.v1.pool_pb2.Pool]: ...
    @property
    def pagination(self) -> cosmos.base.query.v1beta1.pagination_pb2.PageResponse:
        """pagination defines the pagination in the response."""
    def __init__(
        self,
        *,
        pools: collections.abc.Iterable[nibiru.spot.v1.pool_pb2.Pool] | None = ...,
        pagination: cosmos.base.query.v1beta1.pagination_pb2.PageResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pagination", b"pagination"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pagination", b"pagination", "pools", b"pools"]) -> None: ...

global___QueryPoolsResponse = QueryPoolsResponse

@typing_extensions.final
class QueryPoolParamsRequest(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___QueryPoolParamsRequest = QueryPoolParamsRequest

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

    POOL_PARAMS_FIELD_NUMBER: builtins.int
    @property
    def pool_params(self) -> nibiru.spot.v1.pool_pb2.PoolParams: ...
    def __init__(
        self,
        *,
        pool_params: nibiru.spot.v1.pool_pb2.PoolParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["pool_params", b"pool_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_params", b"pool_params"]) -> None: ...

global___QueryPoolParamsResponse = QueryPoolParamsResponse

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

    def __init__(
        self,
    ) -> None: ...

global___QueryNumPoolsRequest = QueryNumPoolsRequest

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

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

global___QueryNumPoolsResponse = QueryNumPoolsResponse

@typing_extensions.final
class QueryTotalLiquidityRequest(google.protobuf.message.Message):
    """--------------------------------------------
    Query total liquidity the protocol
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___QueryTotalLiquidityRequest = QueryTotalLiquidityRequest

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

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

global___QueryTotalLiquidityResponse = QueryTotalLiquidityResponse

@typing_extensions.final
class QueryTotalPoolLiquidityRequest(google.protobuf.message.Message):
    """--------------------------------------------
    Query total liquidity for a pool
    """

    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___QueryTotalPoolLiquidityRequest = QueryTotalPoolLiquidityRequest

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

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

global___QueryTotalPoolLiquidityResponse = QueryTotalPoolLiquidityResponse

@typing_extensions.final
class QueryTotalSharesRequest(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___QueryTotalSharesRequest = QueryTotalSharesRequest

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

    TOTAL_SHARES_FIELD_NUMBER: builtins.int
    @property
    def total_shares(self) -> cosmos.base.v1beta1.coin_pb2.Coin:
        """sum of all LP tokens sent out"""
    def __init__(
        self,
        *,
        total_shares: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["total_shares", b"total_shares"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["total_shares", b"total_shares"]) -> None: ...

global___QueryTotalSharesResponse = QueryTotalSharesResponse

@typing_extensions.final
class QuerySpotPriceRequest(google.protobuf.message.Message):
    """Returns the amount of tokenInDenom to produce 1 tokenOutDenom
    For example, if the price of NIBI = 9.123 NUSD, then setting
    tokenInDenom=NUSD and tokenOutDenom=NIBI would give "9.123".
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_DENOM_FIELD_NUMBER: builtins.int
    TOKEN_OUT_DENOM_FIELD_NUMBER: builtins.int
    pool_id: builtins.int
    token_in_denom: builtins.str
    """the denomination of the token you are giving into the pool"""
    token_out_denom: builtins.str
    """the denomination of the token you are taking out of the pool"""
    def __init__(
        self,
        *,
        pool_id: builtins.int = ...,
        token_in_denom: builtins.str = ...,
        token_out_denom: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "token_in_denom", b"token_in_denom", "token_out_denom", b"token_out_denom"]) -> None: ...

global___QuerySpotPriceRequest = QuerySpotPriceRequest

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

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

global___QuerySpotPriceResponse = QuerySpotPriceResponse

@typing_extensions.final
class QuerySwapExactAmountInRequest(google.protobuf.message.Message):
    """Given an exact amount of tokens in and a target tokenOutDenom, calculates
    the expected amount of tokens out received from a swap.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_IN_FIELD_NUMBER: builtins.int
    TOKEN_OUT_DENOM_FIELD_NUMBER: builtins.int
    pool_id: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    token_out_denom: builtins.str
    def __init__(
        self,
        *,
        pool_id: builtins.int = ...,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        token_out_denom: 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", "token_in", b"token_in", "token_out_denom", b"token_out_denom"]) -> None: ...

global___QuerySwapExactAmountInRequest = QuerySwapExactAmountInRequest

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

    TOKEN_OUT_FIELD_NUMBER: builtins.int
    FEE_FIELD_NUMBER: builtins.int
    @property
    def token_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    @property
    def fee(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        token_out: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        fee: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["fee", b"fee", "token_out", b"token_out"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fee", b"fee", "token_out", b"token_out"]) -> None: ...

global___QuerySwapExactAmountInResponse = QuerySwapExactAmountInResponse

@typing_extensions.final
class QuerySwapExactAmountOutRequest(google.protobuf.message.Message):
    """Given an exact amount of tokens out and a target tokenInDenom, calculates
    the expected amount of tokens in required to do the swap.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    POOL_ID_FIELD_NUMBER: builtins.int
    TOKEN_OUT_FIELD_NUMBER: builtins.int
    TOKEN_IN_DENOM_FIELD_NUMBER: builtins.int
    pool_id: builtins.int
    @property
    def token_out(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    token_in_denom: builtins.str
    def __init__(
        self,
        *,
        pool_id: builtins.int = ...,
        token_out: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
        token_in_denom: 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", "token_in_denom", b"token_in_denom", "token_out", b"token_out"]) -> None: ...

global___QuerySwapExactAmountOutRequest = QuerySwapExactAmountOutRequest

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

    TOKEN_IN_FIELD_NUMBER: builtins.int
    @property
    def token_in(self) -> cosmos.base.v1beta1.coin_pb2.Coin: ...
    def __init__(
        self,
        *,
        token_in: cosmos.base.v1beta1.coin_pb2.Coin | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["token_in", b"token_in"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["token_in", b"token_in"]) -> None: ...

global___QuerySwapExactAmountOutResponse = QuerySwapExactAmountOutResponse

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

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

global___QueryJoinExactAmountInRequest = QueryJoinExactAmountInRequest

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

    POOL_SHARES_OUT_FIELD_NUMBER: builtins.int
    REM_COINS_FIELD_NUMBER: builtins.int
    pool_shares_out: builtins.str
    """amount of pool shares returned to user after join"""
    @property
    def rem_coins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """coins remaining after pool join"""
    def __init__(
        self,
        *,
        pool_shares_out: builtins.str = ...,
        rem_coins: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_shares_out", b"pool_shares_out", "rem_coins", b"rem_coins"]) -> None: ...

global___QueryJoinExactAmountInResponse = QueryJoinExactAmountInResponse

@typing_extensions.final
class QueryJoinExactAmountOutRequest(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___QueryJoinExactAmountOutRequest = QueryJoinExactAmountOutRequest

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

    def __init__(
        self,
    ) -> None: ...

global___QueryJoinExactAmountOutResponse = QueryJoinExactAmountOutResponse

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

    POOL_ID_FIELD_NUMBER: builtins.int
    POOL_SHARES_IN_FIELD_NUMBER: builtins.int
    pool_id: builtins.int
    pool_shares_in: builtins.str
    """amount of pool shares to return to pool"""
    def __init__(
        self,
        *,
        pool_id: builtins.int = ...,
        pool_shares_in: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pool_id", b"pool_id", "pool_shares_in", b"pool_shares_in"]) -> None: ...

global___QueryExitExactAmountInRequest = QueryExitExactAmountInRequest

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

    TOKENS_OUT_FIELD_NUMBER: builtins.int
    FEES_FIELD_NUMBER: builtins.int
    @property
    def tokens_out(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]:
        """coins obtained after exiting"""
    @property
    def fees(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[cosmos.base.v1beta1.coin_pb2.Coin]: ...
    def __init__(
        self,
        *,
        tokens_out: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
        fees: collections.abc.Iterable[cosmos.base.v1beta1.coin_pb2.Coin] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["fees", b"fees", "tokens_out", b"tokens_out"]) -> None: ...

global___QueryExitExactAmountInResponse = QueryExitExactAmountInResponse

@typing_extensions.final
class QueryExitExactAmountOutRequest(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___QueryExitExactAmountOutRequest = QueryExitExactAmountOutRequest

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

    def __init__(
        self,
    ) -> None: ...

global___QueryExitExactAmountOutResponse = QueryExitExactAmountOutResponse
