"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message
import osmosis.incentives.gauge_pb2
import osmosis.incentives.params_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 GenesisState(google.protobuf.message.Message):
    """GenesisState defines the incentives module's various parameters when first
    initialized
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARAMS_FIELD_NUMBER: builtins.int
    GAUGES_FIELD_NUMBER: builtins.int
    LOCKABLE_DURATIONS_FIELD_NUMBER: builtins.int
    LAST_GAUGE_ID_FIELD_NUMBER: builtins.int
    @property
    def params(self) -> osmosis.incentives.params_pb2.Params:
        """params are all the parameters of the module"""
    @property
    def gauges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[osmosis.incentives.gauge_pb2.Gauge]:
        """gauges are all gauges that should exist at genesis"""
    @property
    def lockable_durations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]:
        """lockable_durations are all lockup durations that gauges can be locked for
        in order to recieve incentives
        """
    last_gauge_id: builtins.int
    """last_gauge_id is what the gauge number will increment from when creating
    the next gauge after genesis
    """
    def __init__(
        self,
        *,
        params: osmosis.incentives.params_pb2.Params | None = ...,
        gauges: collections.abc.Iterable[osmosis.incentives.gauge_pb2.Gauge] | None = ...,
        lockable_durations: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ...,
        last_gauge_id: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["params", b"params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["gauges", b"gauges", "last_gauge_id", b"last_gauge_id", "lockable_durations", b"lockable_durations", "params", b"params"]) -> None: ...

global___GenesisState = GenesisState
