"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Predicate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    class Simple(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        OPERATOR_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        operator: typing.Text = ...
        """==, <, <=, in, etc."""

        value: typing.Text = ...
        def __init__(self,
            *,
            operator : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"operator",b"operator",u"value",b"value"]) -> None: ...

    class Inter(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PREDICATES_FIELD_NUMBER: builtins.int
        @property
        def predicates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Predicate]: ...
        def __init__(self,
            *,
            predicates : typing.Optional[typing.Iterable[global___Predicate]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"predicates",b"predicates"]) -> None: ...

    class Union(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PREDICATES_FIELD_NUMBER: builtins.int
        @property
        def predicates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Predicate]: ...
        def __init__(self,
            *,
            predicates : typing.Optional[typing.Iterable[global___Predicate]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"predicates",b"predicates"]) -> None: ...

    class Comp(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PREDICATE_FIELD_NUMBER: builtins.int
        @property
        def predicate(self) -> global___Predicate: ...
        def __init__(self,
            *,
            predicate : typing.Optional[global___Predicate] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"predicate",b"predicate"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"predicate",b"predicate"]) -> None: ...

    SIMPLE_FIELD_NUMBER: builtins.int
    INTER_FIELD_NUMBER: builtins.int
    UNION_FIELD_NUMBER: builtins.int
    COMP_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    @property
    def simple(self) -> global___Predicate.Simple: ...
    @property
    def inter(self) -> global___Predicate.Inter: ...
    @property
    def union(self) -> global___Predicate.Union: ...
    @property
    def comp(self) -> global___Predicate.Comp: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Other properties"""
        pass
    def __init__(self,
        *,
        simple : typing.Optional[global___Predicate.Simple] = ...,
        inter : typing.Optional[global___Predicate.Inter] = ...,
        union : typing.Optional[global___Predicate.Union] = ...,
        comp : typing.Optional[global___Predicate.Comp] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"comp",b"comp",u"inter",b"inter",u"predicate",b"predicate",u"simple",b"simple",u"union",b"union"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"comp",b"comp",u"inter",b"inter",u"predicate",b"predicate",u"properties",b"properties",u"simple",b"simple",u"union",b"union"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"predicate",b"predicate"]) -> typing.Optional[typing_extensions.Literal["simple","inter","union","comp"]]: ...
global___Predicate = Predicate
