from google.protobuf.descriptor import Descriptor, FieldDescriptor as FieldDescriptor
from google.protobuf.message import Message

class FieldMask:
    def ToJsonString(self) -> str: ...
    def FromJsonString(self, value: str) -> None: ...
    def IsValidForDescriptor(self, message_descriptor: Descriptor) -> bool: ...
    def AllFieldsFromDescriptor(self, message_descriptor: Descriptor) -> None: ...
    def CanonicalFormFromMask(self, mask: FieldMask) -> None: ...
    def Union(self, mask1: FieldMask, mask2: FieldMask) -> None: ...
    def Intersect(self, mask1: FieldMask, mask2: FieldMask) -> None: ...
    def MergeMessage(
        self, source: Message, destination: Message, replace_message_field: bool = False, replace_repeated_field: bool = False
    ) -> None: ...
