"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import tendermint.types.types_pb2
import tendermint.types.validator_pb2

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    DUPLICATE_VOTE_EVIDENCE_FIELD_NUMBER: builtins.int
    LIGHT_CLIENT_ATTACK_EVIDENCE_FIELD_NUMBER: builtins.int
    @property
    def duplicate_vote_evidence(self) -> global___DuplicateVoteEvidence: ...
    @property
    def light_client_attack_evidence(self) -> global___LightClientAttackEvidence: ...
    def __init__(
        self,
        *,
        duplicate_vote_evidence: global___DuplicateVoteEvidence | None = ...,
        light_client_attack_evidence: global___LightClientAttackEvidence | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["duplicate_vote_evidence", b"duplicate_vote_evidence", "light_client_attack_evidence", b"light_client_attack_evidence", "sum", b"sum"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["duplicate_vote_evidence", b"duplicate_vote_evidence", "light_client_attack_evidence", b"light_client_attack_evidence", "sum", b"sum"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["sum", b"sum"]) -> typing_extensions.Literal["duplicate_vote_evidence", "light_client_attack_evidence"] | None: ...

global___Evidence = Evidence

@typing_extensions.final
class DuplicateVoteEvidence(google.protobuf.message.Message):
    """DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VOTE_A_FIELD_NUMBER: builtins.int
    VOTE_B_FIELD_NUMBER: builtins.int
    TOTAL_VOTING_POWER_FIELD_NUMBER: builtins.int
    VALIDATOR_POWER_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    @property
    def vote_a(self) -> tendermint.types.types_pb2.Vote: ...
    @property
    def vote_b(self) -> tendermint.types.types_pb2.Vote: ...
    total_voting_power: builtins.int
    validator_power: builtins.int
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        vote_a: tendermint.types.types_pb2.Vote | None = ...,
        vote_b: tendermint.types.types_pb2.Vote | None = ...,
        total_voting_power: builtins.int = ...,
        validator_power: builtins.int = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp", "vote_a", b"vote_a", "vote_b", b"vote_b"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["timestamp", b"timestamp", "total_voting_power", b"total_voting_power", "validator_power", b"validator_power", "vote_a", b"vote_a", "vote_b", b"vote_b"]) -> None: ...

global___DuplicateVoteEvidence = DuplicateVoteEvidence

@typing_extensions.final
class LightClientAttackEvidence(google.protobuf.message.Message):
    """LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONFLICTING_BLOCK_FIELD_NUMBER: builtins.int
    COMMON_HEIGHT_FIELD_NUMBER: builtins.int
    BYZANTINE_VALIDATORS_FIELD_NUMBER: builtins.int
    TOTAL_VOTING_POWER_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    @property
    def conflicting_block(self) -> tendermint.types.types_pb2.LightBlock: ...
    common_height: builtins.int
    @property
    def byzantine_validators(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[tendermint.types.validator_pb2.Validator]: ...
    total_voting_power: builtins.int
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        conflicting_block: tendermint.types.types_pb2.LightBlock | None = ...,
        common_height: builtins.int = ...,
        byzantine_validators: collections.abc.Iterable[tendermint.types.validator_pb2.Validator] | None = ...,
        total_voting_power: builtins.int = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["conflicting_block", b"conflicting_block", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["byzantine_validators", b"byzantine_validators", "common_height", b"common_height", "conflicting_block", b"conflicting_block", "timestamp", b"timestamp", "total_voting_power", b"total_voting_power"]) -> None: ...

global___LightClientAttackEvidence = LightClientAttackEvidence

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

    EVIDENCE_FIELD_NUMBER: builtins.int
    @property
    def evidence(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Evidence]: ...
    def __init__(
        self,
        *,
        evidence: collections.abc.Iterable[global___Evidence] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["evidence", b"evidence"]) -> None: ...

global___EvidenceList = EvidenceList
