"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
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 witness_set_properties(google.protobuf.message.Message):
    """This is an operation for witnesses.
    This is one of the two operations allowing to update witness properties (@see witness_update_operation).
    The whole list of properties is available here:
    https://gitlab.syncad.com/hive/hive/-/blob/master/doc/witness_parameters.md.

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

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

    OWNER_FIELD_NUMBER: builtins.int
    PROPS_FIELD_NUMBER: builtins.int
    EXTENSIONS_FIELD_NUMBER: builtins.int
    owner: builtins.str
    """@param {string} owner - Witness account name."""
    @property
    def props(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """@param {map<string, string>} props - There are the following properties available in the {props}: 
                                             account_creation_fee, account_subsidy_budget, account_subsidy_decay,
                                             maximum_block_size, hbd_interest_rate. hbd_exchange_rate, url and new_signing_key.
        """
    @property
    def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[future_extensions_pb2.future_extensions]:
        """@param {future_extensions} extensions"""
    def __init__(
        self,
        *,
        owner: builtins.str | None = ...,
        props: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        extensions: collections.abc.Iterable[future_extensions_pb2.future_extensions] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["owner", b"owner"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["extensions", b"extensions", "owner", b"owner", "props", b"props"]) -> None: ...

global___witness_set_properties = witness_set_properties
