# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
    FieldDescriptor as google___protobuf___descriptor___FieldDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer as google___protobuf___internal___containers___RepeatedScalarFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from typing import (
    Iterable as typing___Iterable,
    List as typing___List,
    Optional as typing___Optional,
    Text as typing___Text,
    Tuple as typing___Tuple,
    Union as typing___Union,
    cast as typing___cast,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int
builtin___str = str
if sys.version_info < (3,):
    builtin___buffer = buffer
    builtin___unicode = unicode


class ScalaPbOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class OptionsScope(builtin___int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: builtin___int) -> builtin___str: ...
        @classmethod
        def Value(cls, name: builtin___str) -> 'ScalaPbOptions.OptionsScope': ...
        @classmethod
        def keys(cls) -> typing___List[builtin___str]: ...
        @classmethod
        def values(cls) -> typing___List['ScalaPbOptions.OptionsScope']: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[builtin___str, 'ScalaPbOptions.OptionsScope']]: ...
        FILE = typing___cast('ScalaPbOptions.OptionsScope', 0)
        PACKAGE = typing___cast('ScalaPbOptions.OptionsScope', 1)
    FILE = typing___cast('ScalaPbOptions.OptionsScope', 0)
    PACKAGE = typing___cast('ScalaPbOptions.OptionsScope', 1)

    class EnumValueNaming(builtin___int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: builtin___int) -> builtin___str: ...
        @classmethod
        def Value(cls, name: builtin___str) -> 'ScalaPbOptions.EnumValueNaming': ...
        @classmethod
        def keys(cls) -> typing___List[builtin___str]: ...
        @classmethod
        def values(cls) -> typing___List['ScalaPbOptions.EnumValueNaming']: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[builtin___str, 'ScalaPbOptions.EnumValueNaming']]: ...
        AS_IN_PROTO = typing___cast('ScalaPbOptions.EnumValueNaming', 0)
        CAMEL_CASE = typing___cast('ScalaPbOptions.EnumValueNaming', 1)
    AS_IN_PROTO = typing___cast('ScalaPbOptions.EnumValueNaming', 0)
    CAMEL_CASE = typing___cast('ScalaPbOptions.EnumValueNaming', 1)

    class AuxMessageOptions(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        target = ... # type: typing___Text

        @property
        def options(self) -> MessageOptions: ...

        def __init__(self,
            *,
            target : typing___Optional[typing___Text] = None,
            options : typing___Optional[MessageOptions] = None,
            ) -> None: ...
        if sys.version_info >= (3,):
            @classmethod
            def FromString(cls, s: builtin___bytes) -> ScalaPbOptions.AuxMessageOptions: ...
        else:
            @classmethod
            def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ScalaPbOptions.AuxMessageOptions: ...
        def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def HasField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> None: ...

    class AuxFieldOptions(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        target = ... # type: typing___Text

        @property
        def options(self) -> FieldOptions: ...

        def __init__(self,
            *,
            target : typing___Optional[typing___Text] = None,
            options : typing___Optional[FieldOptions] = None,
            ) -> None: ...
        if sys.version_info >= (3,):
            @classmethod
            def FromString(cls, s: builtin___bytes) -> ScalaPbOptions.AuxFieldOptions: ...
        else:
            @classmethod
            def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ScalaPbOptions.AuxFieldOptions: ...
        def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def HasField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> None: ...

    class AuxEnumOptions(google___protobuf___message___Message):
        DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
        target = ... # type: typing___Text

        @property
        def options(self) -> EnumOptions: ...

        def __init__(self,
            *,
            target : typing___Optional[typing___Text] = None,
            options : typing___Optional[EnumOptions] = None,
            ) -> None: ...
        if sys.version_info >= (3,):
            @classmethod
            def FromString(cls, s: builtin___bytes) -> ScalaPbOptions.AuxEnumOptions: ...
        else:
            @classmethod
            def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ScalaPbOptions.AuxEnumOptions: ...
        def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
        def HasField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"options",b"options",u"target",b"target"]) -> None: ...

    package_name = ... # type: typing___Text
    flat_package = ... # type: builtin___bool
    preamble = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    single_file = ... # type: builtin___bool
    no_primitive_wrappers = ... # type: builtin___bool
    primitive_wrappers = ... # type: builtin___bool
    collection_type = ... # type: typing___Text
    preserve_unknown_fields = ... # type: builtin___bool
    object_name = ... # type: typing___Text
    scope = ... # type: ScalaPbOptions.OptionsScope
    lenses = ... # type: builtin___bool
    retain_source_code_info = ... # type: builtin___bool
    map_type = ... # type: typing___Text
    no_default_values_in_constructor = ... # type: builtin___bool
    enum_value_naming = ... # type: ScalaPbOptions.EnumValueNaming
    enum_strip_prefix = ... # type: builtin___bool
    bytes_type = ... # type: typing___Text
    test_only_no_java_conversions = ... # type: builtin___bool

    @property
    def aux_message_options(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ScalaPbOptions.AuxMessageOptions]: ...

    @property
    def aux_field_options(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ScalaPbOptions.AuxFieldOptions]: ...

    @property
    def aux_enum_options(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[ScalaPbOptions.AuxEnumOptions]: ...

    def __init__(self,
        *,
        package_name : typing___Optional[typing___Text] = None,
        flat_package : typing___Optional[builtin___bool] = None,
        preamble : typing___Optional[typing___Iterable[typing___Text]] = None,
        single_file : typing___Optional[builtin___bool] = None,
        no_primitive_wrappers : typing___Optional[builtin___bool] = None,
        primitive_wrappers : typing___Optional[builtin___bool] = None,
        collection_type : typing___Optional[typing___Text] = None,
        preserve_unknown_fields : typing___Optional[builtin___bool] = None,
        object_name : typing___Optional[typing___Text] = None,
        scope : typing___Optional[ScalaPbOptions.OptionsScope] = None,
        lenses : typing___Optional[builtin___bool] = None,
        retain_source_code_info : typing___Optional[builtin___bool] = None,
        map_type : typing___Optional[typing___Text] = None,
        no_default_values_in_constructor : typing___Optional[builtin___bool] = None,
        enum_value_naming : typing___Optional[ScalaPbOptions.EnumValueNaming] = None,
        enum_strip_prefix : typing___Optional[builtin___bool] = None,
        aux_message_options : typing___Optional[typing___Iterable[ScalaPbOptions.AuxMessageOptions]] = None,
        aux_field_options : typing___Optional[typing___Iterable[ScalaPbOptions.AuxFieldOptions]] = None,
        aux_enum_options : typing___Optional[typing___Iterable[ScalaPbOptions.AuxEnumOptions]] = None,
        bytes_type : typing___Optional[typing___Text] = None,
        test_only_no_java_conversions : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> ScalaPbOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> ScalaPbOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"bytes_type",b"bytes_type",u"collection_type",b"collection_type",u"enum_strip_prefix",b"enum_strip_prefix",u"enum_value_naming",b"enum_value_naming",u"flat_package",b"flat_package",u"lenses",b"lenses",u"map_type",b"map_type",u"no_default_values_in_constructor",b"no_default_values_in_constructor",u"no_primitive_wrappers",b"no_primitive_wrappers",u"object_name",b"object_name",u"package_name",b"package_name",u"preserve_unknown_fields",b"preserve_unknown_fields",u"primitive_wrappers",b"primitive_wrappers",u"retain_source_code_info",b"retain_source_code_info",u"scope",b"scope",u"single_file",b"single_file",u"test_only_no_java_conversions",b"test_only_no_java_conversions"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"aux_enum_options",b"aux_enum_options",u"aux_field_options",b"aux_field_options",u"aux_message_options",b"aux_message_options",u"bytes_type",b"bytes_type",u"collection_type",b"collection_type",u"enum_strip_prefix",b"enum_strip_prefix",u"enum_value_naming",b"enum_value_naming",u"flat_package",b"flat_package",u"import",b"import",u"lenses",b"lenses",u"map_type",b"map_type",u"no_default_values_in_constructor",b"no_default_values_in_constructor",u"no_primitive_wrappers",b"no_primitive_wrappers",u"object_name",b"object_name",u"package_name",b"package_name",u"preamble",b"preamble",u"preserve_unknown_fields",b"preserve_unknown_fields",u"primitive_wrappers",b"primitive_wrappers",u"retain_source_code_info",b"retain_source_code_info",u"scope",b"scope",u"single_file",b"single_file",u"test_only_no_java_conversions",b"test_only_no_java_conversions"]) -> None: ...

class MessageOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    companion_extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    annotations = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    type = ... # type: typing___Text
    companion_annotations = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    sealed_oneof_extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    no_box = ... # type: builtin___bool

    def __init__(self,
        *,
        extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        companion_extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        annotations : typing___Optional[typing___Iterable[typing___Text]] = None,
        type : typing___Optional[typing___Text] = None,
        companion_annotations : typing___Optional[typing___Iterable[typing___Text]] = None,
        sealed_oneof_extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        no_box : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> MessageOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> MessageOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"no_box",b"no_box",u"type",b"type"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"annotations",b"annotations",u"companion_annotations",b"companion_annotations",u"companion_extends",b"companion_extends",u"extends",b"extends",u"no_box",b"no_box",u"sealed_oneof_extends",b"sealed_oneof_extends",u"type",b"type"]) -> None: ...

class FieldOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    type = ... # type: typing___Text
    scala_name = ... # type: typing___Text
    collection_type = ... # type: typing___Text
    key_type = ... # type: typing___Text
    value_type = ... # type: typing___Text
    annotations = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    map_type = ... # type: typing___Text
    no_box = ... # type: builtin___bool

    def __init__(self,
        *,
        type : typing___Optional[typing___Text] = None,
        scala_name : typing___Optional[typing___Text] = None,
        collection_type : typing___Optional[typing___Text] = None,
        key_type : typing___Optional[typing___Text] = None,
        value_type : typing___Optional[typing___Text] = None,
        annotations : typing___Optional[typing___Iterable[typing___Text]] = None,
        map_type : typing___Optional[typing___Text] = None,
        no_box : typing___Optional[builtin___bool] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> FieldOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> FieldOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"collection_type",b"collection_type",u"key_type",b"key_type",u"map_type",b"map_type",u"no_box",b"no_box",u"scala_name",b"scala_name",u"type",b"type",u"value_type",b"value_type"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"annotations",b"annotations",u"collection_type",b"collection_type",u"key_type",b"key_type",u"map_type",b"map_type",u"no_box",b"no_box",u"scala_name",b"scala_name",u"type",b"type",u"value_type",b"value_type"]) -> None: ...

class EnumOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    companion_extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    type = ... # type: typing___Text

    def __init__(self,
        *,
        extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        companion_extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        type : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> EnumOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> EnumOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"type",b"type"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"companion_extends",b"companion_extends",u"extends",b"extends",u"type",b"type"]) -> None: ...

class EnumValueOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]
    scala_name = ... # type: typing___Text

    def __init__(self,
        *,
        extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        scala_name : typing___Optional[typing___Text] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> EnumValueOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> EnumValueOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def HasField(self, field_name: typing_extensions___Literal[u"scala_name",b"scala_name"]) -> builtin___bool: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"extends",b"extends",u"scala_name",b"scala_name"]) -> None: ...

class OneofOptions(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    extends = ... # type: google___protobuf___internal___containers___RepeatedScalarFieldContainer[typing___Text]

    def __init__(self,
        *,
        extends : typing___Optional[typing___Iterable[typing___Text]] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> OneofOptions: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> OneofOptions: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def ClearField(self, field_name: typing_extensions___Literal[u"extends",b"extends"]) -> None: ...

options = ... # type: google___protobuf___descriptor___FieldDescriptor

message = ... # type: google___protobuf___descriptor___FieldDescriptor

field = ... # type: google___protobuf___descriptor___FieldDescriptor

enum_options = ... # type: google___protobuf___descriptor___FieldDescriptor

enum_value = ... # type: google___protobuf___descriptor___FieldDescriptor

oneof = ... # type: google___protobuf___descriptor___FieldDescriptor
