"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import asset_pb2
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
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 beneficiary_route_type(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ACCOUNT_FIELD_NUMBER: builtins.int
    WEIGHT_FIELD_NUMBER: builtins.int
    account: builtins.str
    weight: builtins.int
    def __init__(
        self,
        *,
        account: builtins.str | None = ...,
        weight: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["account", b"account", "weight", b"weight"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["account", b"account", "weight", b"weight"]) -> None: ...

global___beneficiary_route_type = beneficiary_route_type

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

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

global___comment_payout_beneficiaries = comment_payout_beneficiaries

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

    COMMENT_PAYOUT_BENEFICIARIES_FIELD_NUMBER: builtins.int
    @property
    def comment_payout_beneficiaries(self) -> global___comment_payout_beneficiaries: ...
    def __init__(
        self,
        *,
        comment_payout_beneficiaries: global___comment_payout_beneficiaries | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["comment_payout_beneficiaries", b"comment_payout_beneficiaries", "extension", b"extension"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comment_payout_beneficiaries", b"comment_payout_beneficiaries", "extension", b"extension"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["extension", b"extension"]) -> typing_extensions.Literal["comment_payout_beneficiaries"] | None: ...

global___comment_options_extension = comment_options_extension

@typing_extensions.final
class comment_options(google.protobuf.message.Message):
    """The operation comment_options_operation allows to set properties regarding payouts,
    rewards or beneficiaries (using {extensions}) for comments.
    If the operation: comment_options_operation is done by one of the frontends,
    it is usually in the same transaction with the operation: comment_operation.
    If a comment has received any votes, only the parameter {percent_hbd} may be changed.

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AUTHOR_FIELD_NUMBER: builtins.int
    PERMLINK_FIELD_NUMBER: builtins.int
    MAX_ACCEPTED_PAYOUT_FIELD_NUMBER: builtins.int
    PERCENT_HBD_FIELD_NUMBER: builtins.int
    ALLOW_VOTES_FIELD_NUMBER: builtins.int
    ALLOW_CURATION_REWARDS_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    author: builtins.str
    """@param {string} author - Account name, the author of the comment."""
    permlink: builtins.str
    @property
    def max_accepted_payout(self) -> asset_pb2.asset:
        """@param {asset} max_accepted_payout - The maximum value of payout in HBD.
                                             Default value: max_accepted_payout = asset( 1000000000, HBD_SYMBOL ).
                                             The allowed value should be less than the default value.
                                             If max_accepted_payout = 0, then voters and authors will not receive the payout.
        """
    percent_hbd: builtins.int
    """@param {number} percent_hbd - By default the author reward is paid 50% HP and 50 % HBD.
                                  In some rare situations, instead of HBD, the Hive may be paid.
                                  percent_hbd = HIVE_100_PERCENT means that 100 % of HBD part is paid in HBD.
                                  A user may decide how many percent of HBD (from 50 %) they wants to receive in the HBD,
                                  the rest will be paid out in HP.
                                  Default value: percent_hbd = HIVE_100_PERCENT.
                                  The allowed value should be less than the default value.
                                  This is the only parameter that can be modified after the comment receives any vote.
    """
    allow_votes: builtins.bool
    """@param {bool} allow_votes - The flag that allows to decide whether the comment may receive a vote.
                                Default value: allow_votes = true.
    """
    allow_curation_rewards: builtins.bool
    """@param {bool} allow_curation_rewards - The flag that allows to decide whether the voters for the comment should
                                           receive the curation rewards. Rewards return to the reward fund.
                                           Default value: allow_curation_rewards = true.
    """
    @property
    def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___comment_options_extension]:
        """@param {comment_options_extension} extensions - It may contain the list of the beneficiaries,
                                                        the accounts that should receive the author reward.
                                                        The list consists of the account name and the weight of the shares in the author reward.
                                                        If the sum of the weights is less than 100%,
                                                        the rest of the reward is received by the author.
                                                        It should be defined less than 128 accounts.
                                                        The allowed range of the weight is from 0 to 10000 (0 – 100%).
                                                        The beneficiaries should be listed in alphabetical order, no duplicates.
        """
    def __init__(
        self,
        *,
        author: builtins.str | None = ...,
        permlink: builtins.str | None = ...,
        max_accepted_payout: asset_pb2.asset | None = ...,
        percent_hbd: builtins.int | None = ...,
        allow_votes: builtins.bool | None = ...,
        allow_curation_rewards: builtins.bool | None = ...,
        extensions: collections.abc.Iterable[global___comment_options_extension] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["allow_curation_rewards", b"allow_curation_rewards", "allow_votes", b"allow_votes", "author", b"author", "max_accepted_payout", b"max_accepted_payout", "percent_hbd", b"percent_hbd", "permlink", b"permlink"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allow_curation_rewards", b"allow_curation_rewards", "allow_votes", b"allow_votes", "author", b"author", "extensions", b"extensions", "max_accepted_payout", b"max_accepted_payout", "percent_hbd", b"percent_hbd", "permlink", b"permlink"]) -> None: ...

global___comment_options = comment_options
