"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2026 Phonexia s.r.o.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Phonexia Grapheme to Phoneme Conversion gRPC API.
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class ConvertRequest(google.protobuf.message.Message):
    """The top-level message sent by the client for the <code>Convert</code> method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORDS_FIELD_NUMBER: builtins.int
    @property
    def words(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of words written in graphemes.
        Only supported graphemes, listed by <code>ListAllowedGraphemes</code>, can be used.
        The words may contain multiple sub-words separated by the '+' symbol
        (e.g. "hello+world").
        """

    def __init__(
        self,
        *,
        words: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["words", b"words"]) -> None: ...

Global___ConvertRequest: typing_extensions.TypeAlias = ConvertRequest

@typing.final
class ConvertResponse(google.protobuf.message.Message):
    """The top-level message returned to the client by the <code>Convert</code> method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORD_PRONUNCIATIONS_FIELD_NUMBER: builtins.int
    @property
    def word_pronunciations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___WordPronunciations]:
        """Results for each input word. Each word may have multiple pronunciations."""

    def __init__(
        self,
        *,
        word_pronunciations: collections.abc.Iterable[Global___WordPronunciations] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["word_pronunciations", b"word_pronunciations"]) -> None: ...

Global___ConvertResponse: typing_extensions.TypeAlias = ConvertResponse

@typing.final
class WordPronunciations(google.protobuf.message.Message):
    """Pronunciations for a single word."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WORD_FIELD_NUMBER: builtins.int
    PRONUNCIATIONS_FIELD_NUMBER: builtins.int
    word: builtins.str
    """The source word to which the pronunciations belong."""
    @property
    def pronunciations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Pronunciation]:
        """List of possible pronunciations for the word."""

    def __init__(
        self,
        *,
        word: builtins.str = ...,
        pronunciations: collections.abc.Iterable[Global___Pronunciation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["pronunciations", b"pronunciations", "word", b"word"]) -> None: ...

Global___WordPronunciations: typing_extensions.TypeAlias = WordPronunciations

@typing.final
class Pronunciation(google.protobuf.message.Message):
    """A single pronunciation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    class _PronunciationSource:
        ValueType = typing.NewType("ValueType", builtins.int)
        V: typing_extensions.TypeAlias = ValueType

    class _PronunciationSourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Pronunciation._PronunciationSource.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        DICTIONARY: Pronunciation._PronunciationSource.ValueType  # 0
        """The pronunciation is in the model's vocabulary."""
        GENERATED: Pronunciation._PronunciationSource.ValueType  # 1
        """The pronunciation has been generated by the system."""
        PARTLY_GENERATED: Pronunciation._PronunciationSource.ValueType  # 2
        """Part of the pronunciation has been generated by the system,
        the rest of the pronunciation is in the model's vocabulary.
        Only applicable for words containing the '+' separator.
        """

    class PronunciationSource(_PronunciationSource, metaclass=_PronunciationSourceEnumTypeWrapper):
        """Source of the pronunciation."""

    DICTIONARY: Pronunciation.PronunciationSource.ValueType  # 0
    """The pronunciation is in the model's vocabulary."""
    GENERATED: Pronunciation.PronunciationSource.ValueType  # 1
    """The pronunciation has been generated by the system."""
    PARTLY_GENERATED: Pronunciation.PronunciationSource.ValueType  # 2
    """Part of the pronunciation has been generated by the system,
    the rest of the pronunciation is in the model's vocabulary.
    Only applicable for words containing the '+' separator.
    """

    PRONUNCIATION_FIELD_NUMBER: builtins.int
    PRONUNCIATION_SOURCE_FIELD_NUMBER: builtins.int
    pronunciation: builtins.str
    """The pronunciation written in phonemes separated by spaces."""
    pronunciation_source: Global___Pronunciation.PronunciationSource.ValueType
    """Source of the pronunciation."""
    def __init__(
        self,
        *,
        pronunciation: builtins.str = ...,
        pronunciation_source: Global___Pronunciation.PronunciationSource.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["pronunciation", b"pronunciation", "pronunciation_source", b"pronunciation_source"]) -> None: ...

Global___Pronunciation: typing_extensions.TypeAlias = Pronunciation

@typing.final
class ListAllowedGraphemesRequest(google.protobuf.message.Message):
    """The top-level message sent by the client for the <code>ListAllowedGraphemes</code> method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

Global___ListAllowedGraphemesRequest: typing_extensions.TypeAlias = ListAllowedGraphemesRequest

@typing.final
class ListAllowedGraphemesResponse(google.protobuf.message.Message):
    """The top-level message returned to the client by the <code>ListAllowedGraphemes</code> method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    GRAPHEMES_FIELD_NUMBER: builtins.int
    @property
    def graphemes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """The list of allowed graphemes."""

    def __init__(
        self,
        *,
        graphemes: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["graphemes", b"graphemes"]) -> None: ...

Global___ListAllowedGraphemesResponse: typing_extensions.TypeAlias = ListAllowedGraphemesResponse
