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

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

global___update_proposal_end_date = update_proposal_end_date

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

    VOID_T_FIELD_NUMBER: builtins.int
    UPDATE_PROPOSAL_END_DATE_FIELD_NUMBER: builtins.int
    @property
    def void_t(self) -> future_extensions_pb2.void_t: ...
    @property
    def update_proposal_end_date(self) -> global___update_proposal_end_date: ...
    def __init__(
        self,
        *,
        void_t: future_extensions_pb2.void_t | None = ...,
        update_proposal_end_date: global___update_proposal_end_date | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["update_proposal_end_date", b"update_proposal_end_date", "value", b"value", "void_t", b"void_t"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["update_proposal_end_date", b"update_proposal_end_date", "value", b"value", "void_t", b"void_t"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["void_t", "update_proposal_end_date"] | None: ...

global___update_proposal_extension = update_proposal_extension

@typing_extensions.final
class update_proposal(google.protobuf.message.Message):
    """A user who created the proposal may update it. A user may decrease {daily_pay},
    change subject, permlink and {end_date} (using {extensions}).
    In order to update the proposal parameters, all parameters should be entered.

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROPOSAL_ID_FIELD_NUMBER: builtins.int
    CREATOR_FIELD_NUMBER: builtins.int
    DAILY_PAY_FIELD_NUMBER: builtins.int
    SUBJECT_FIELD_NUMBER: builtins.int
    PERMLINK_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    proposal_id: builtins.int
    """@param {number} proposal_id"""
    creator: builtins.str
    """@param {string} creator"""
    @property
    def daily_pay(self) -> asset_pb2.asset:
        """@param {asset} daily_pay"""
    subject: builtins.str
    """@param {string} subject"""
    permlink: builtins.str
    """@param {string} permlinks"""
    @property
    def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___update_proposal_extension]:
        """@param {update_proposal_extension} extensions"""
    def __init__(
        self,
        *,
        proposal_id: builtins.int | None = ...,
        creator: builtins.str | None = ...,
        daily_pay: asset_pb2.asset | None = ...,
        subject: builtins.str | None = ...,
        permlink: builtins.str | None = ...,
        extensions: collections.abc.Iterable[global___update_proposal_extension] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["creator", b"creator", "daily_pay", b"daily_pay", "permlink", b"permlink", "proposal_id", b"proposal_id", "subject", b"subject"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["creator", b"creator", "daily_pay", b"daily_pay", "extensions", b"extensions", "permlink", b"permlink", "proposal_id", b"proposal_id", "subject", b"subject"]) -> None: ...

global___update_proposal = update_proposal
