"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
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 proxy_cleared(google.protobuf.message.Message):
    """There are 4 cases( 4 operations ) that can generate `proxy_cleared_operation` virtual operation:

    `account_witness_proxy_operation`:
    A vop `proxy_cleared_operation` is created in the same block.
    We want to set a proxy, but an old proxy exists:
    1) {"type":"proxy_cleared_operation","value":{"account":"ACCOUNT","proxy":"OLD-PROXY-ACCOUNT-NAME"}}
    We don't want to set a proxy:
    2) {"type":"proxy_cleared_operation","value":{"account":"ACCOUNT","proxy":"OLD-PROXY-ACCOUNT-NAME"}}

    `decline_voting_rights_operation`:
    A vop `proxy_cleared_operation` is generated automatically after `HIVE_OWNER_AUTH_RECOVERY_PERIOD` time ( 30 days ).
    3) {"type":"proxy_cleared_operation","value":{"account":"ACCOUNT","proxy":"OLD-PROXY-ACCOUNT-NAME"}}

    `update_proposal_votes_operation`, `account_witness_proxy_operation`, `account_witness_vote_operation`:
    After HF25 a vop `proxy_cleared_operation` is generated automatically after `HIVE_GOVERNANCE_VOTE_EXPIRATION_PERIOD` time ( 365 days ).
    4) {"type":"proxy_cleared_operation","value":{"account":"ACCOUNT","proxy":"OLD-PROXY-ACCOUNT-NAME"}}
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_FIELD_NUMBER: builtins.int
    PROXY_FIELD_NUMBER: builtins.int
    account: builtins.str
    """@param {string} account - user that sets/unsets a proxy"""
    proxy: builtins.str
    """@param {string} proxy - proxy user that facilitates voting on witnesses"""
    def __init__(
        self,
        *,
        account: builtins.str | None = ...,
        proxy: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["account", b"account", "proxy", b"proxy"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["account", b"account", "proxy", b"proxy"]) -> None: ...

global___proxy_cleared = proxy_cleared
