"""
@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 escrow_approve(google.protobuf.message.Message):
    """The operation escrow_approve_operation is used to approve the escrow.
    The approval should be done by { to } and by the { agent }.
    The escrow approval is irreversible.
    If { agent } or { to } haven’t approved the escrow before the { ratification_deadline} or either
    of them explicitly rejected the escrow, the escrow is rejected.
    If {agent} and {to} have approved the escrow, the {fee} is transferred from temporary balance to {agent} account.

    Description https://gitlab.syncad.com/hive/hive/-/blob/develop/doc/devs/operations/31_escrow_approve.md?ref_type=heads
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FROM_ACCOUNT_FIELD_NUMBER: builtins.int
    TO_ACCOUNT_FIELD_NUMBER: builtins.int
    AGENT_FIELD_NUMBER: builtins.int
    WHO_FIELD_NUMBER: builtins.int
    ESCROW_ID_FIELD_NUMBER: builtins.int
    APPROVE_FIELD_NUMBER: builtins.int
    from_account: builtins.str
    """@param {string} from_account - Account name."""
    to_account: builtins.str
    """@param {string} to_account - Account name."""
    agent: builtins.str
    """@param {string} agent - Account name."""
    who: builtins.str
    """@param {string} who - Account name. Either {to} or {agent}."""
    escrow_id: builtins.int
    """@param {number} escrow_id - Escrow identifier."""
    approve: builtins.bool
    """@param {bool} approve - approve = true; (approve = false explicitly rejects the escrow)"""
    def __init__(
        self,
        *,
        from_account: builtins.str | None = ...,
        to_account: builtins.str | None = ...,
        agent: builtins.str | None = ...,
        who: builtins.str | None = ...,
        escrow_id: builtins.int | None = ...,
        approve: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["agent", b"agent", "approve", b"approve", "escrow_id", b"escrow_id", "from_account", b"from_account", "to_account", b"to_account", "who", b"who"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["agent", b"agent", "approve", b"approve", "escrow_id", b"escrow_id", "from_account", b"from_account", "to_account", b"to_account", "who", b"who"]) -> None: ...

global___escrow_approve = escrow_approve
