"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class EpochInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    IDENTIFIER_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    CURRENT_EPOCH_FIELD_NUMBER: builtins.int
    CURRENT_EPOCH_START_TIME_FIELD_NUMBER: builtins.int
    EPOCH_COUNTING_STARTED_FIELD_NUMBER: builtins.int
    CURRENT_EPOCH_START_HEIGHT_FIELD_NUMBER: builtins.int
    identifier: typing.Text
    """A string identifier for the epoch. e.g. "15min" or "1hour" """

    @property
    def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """When the epoch repetitino should start."""
        pass
    @property
    def duration(self) -> google.protobuf.duration_pb2.Duration:
        """How long each epoch lasts for."""
        pass
    current_epoch: builtins.int
    """The current epoch number, starting from 1."""

    @property
    def current_epoch_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """The start timestamp of the current epoch."""
        pass
    epoch_counting_started: builtins.bool
    """Whether or not this epoch has started. Set to true if current blocktime >= start_time."""

    current_epoch_start_height: builtins.int
    """The block height at which the current epoch started at."""

    def __init__(self,
        *,
        identifier: typing.Text = ...,
        start_time: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        duration: typing.Optional[google.protobuf.duration_pb2.Duration] = ...,
        current_epoch: builtins.int = ...,
        current_epoch_start_time: typing.Optional[google.protobuf.timestamp_pb2.Timestamp] = ...,
        epoch_counting_started: builtins.bool = ...,
        current_epoch_start_height: builtins.int = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["current_epoch_start_time",b"current_epoch_start_time","duration",b"duration","start_time",b"start_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["current_epoch",b"current_epoch","current_epoch_start_height",b"current_epoch_start_height","current_epoch_start_time",b"current_epoch_start_time","duration",b"duration","epoch_counting_started",b"epoch_counting_started","identifier",b"identifier","start_time",b"start_time"]) -> None: ...
global___EpochInfo = EpochInfo

class GenesisState(google.protobuf.message.Message):
    """GenesisState defines the epochs module's genesis state."""
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    EPOCHS_FIELD_NUMBER: builtins.int
    @property
    def epochs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EpochInfo]: ...
    def __init__(self,
        *,
        epochs: typing.Optional[typing.Iterable[global___EpochInfo]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["epochs",b"epochs"]) -> None: ...
global___GenesisState = GenesisState
