"""
@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.message
import google.protobuf.timestamp_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 ValidatorSigningInfo(google.protobuf.message.Message):
    """ValidatorSigningInfo defines a validator's signing info for monitoring their
    liveness activity.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_FIELD_NUMBER: builtins.int
    START_HEIGHT_FIELD_NUMBER: builtins.int
    INDEX_OFFSET_FIELD_NUMBER: builtins.int
    JAILED_UNTIL_FIELD_NUMBER: builtins.int
    TOMBSTONED_FIELD_NUMBER: builtins.int
    MISSED_BLOCKS_COUNTER_FIELD_NUMBER: builtins.int
    address: builtins.str
    start_height: builtins.int
    """Height at which validator was first a candidate OR was unjailed"""
    index_offset: builtins.int
    """Index which is incremented each time the validator was a bonded
    in a block and may have signed a precommit or not. This in conjunction with the
    `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`.
    """
    @property
    def jailed_until(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Timestamp until which the validator is jailed due to liveness downtime."""
    tombstoned: builtins.bool
    """Whether or not a validator has been tombstoned (killed out of validator set). It is set
    once the validator commits an equivocation or for any other configured misbehiavor.
    """
    missed_blocks_counter: builtins.int
    """A counter kept to avoid unnecessary array reads.
    Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`.
    """
    def __init__(
        self,
        *,
        address: builtins.str = ...,
        start_height: builtins.int = ...,
        index_offset: builtins.int = ...,
        jailed_until: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        tombstoned: builtins.bool = ...,
        missed_blocks_counter: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["jailed_until", b"jailed_until"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "index_offset", b"index_offset", "jailed_until", b"jailed_until", "missed_blocks_counter", b"missed_blocks_counter", "start_height", b"start_height", "tombstoned", b"tombstoned"]) -> None: ...

global___ValidatorSigningInfo = ValidatorSigningInfo

@typing_extensions.final
class Params(google.protobuf.message.Message):
    """Params represents the parameters used for by the slashing module."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SIGNED_BLOCKS_WINDOW_FIELD_NUMBER: builtins.int
    MIN_SIGNED_PER_WINDOW_FIELD_NUMBER: builtins.int
    DOWNTIME_JAIL_DURATION_FIELD_NUMBER: builtins.int
    SLASH_FRACTION_DOUBLE_SIGN_FIELD_NUMBER: builtins.int
    SLASH_FRACTION_DOWNTIME_FIELD_NUMBER: builtins.int
    signed_blocks_window: builtins.int
    min_signed_per_window: builtins.bytes
    @property
    def downtime_jail_duration(self) -> google.protobuf.duration_pb2.Duration: ...
    slash_fraction_double_sign: builtins.bytes
    slash_fraction_downtime: builtins.bytes
    def __init__(
        self,
        *,
        signed_blocks_window: builtins.int = ...,
        min_signed_per_window: builtins.bytes = ...,
        downtime_jail_duration: google.protobuf.duration_pb2.Duration | None = ...,
        slash_fraction_double_sign: builtins.bytes = ...,
        slash_fraction_downtime: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["downtime_jail_duration", b"downtime_jail_duration"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["downtime_jail_duration", b"downtime_jail_duration", "min_signed_per_window", b"min_signed_per_window", "signed_blocks_window", b"signed_blocks_window", "slash_fraction_double_sign", b"slash_fraction_double_sign", "slash_fraction_downtime", b"slash_fraction_downtime"]) -> None: ...

global___Params = Params
