"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2025 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 Transcription Normalization gRPC API
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
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 NormalizeRequest(google.protobuf.message.Message):
    """The top-level message sent by the client for the <code>Normalize</code> method."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SEGMENTS_FIELD_NUMBER: builtins.int
    CONFIG_FIELD_NUMBER: builtins.int
    @property
    def segments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Segment]:
        """Sequential list of transcription segments corresponding to sequential
        portions of audio.
        """

    @property
    def config(self) -> Global___NormalizeConfig:
        """Configuration of the normalization."""

    def __init__(
        self,
        *,
        segments: collections.abc.Iterable[Global___Segment] | None = ...,
        config: Global___NormalizeConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_config", b"_config", "config", b"config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_config", b"_config", "config", b"config", "segments", b"segments"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_config", b"_config"]) -> typing.Literal["config"] | None: ...

Global___NormalizeRequest: typing_extensions.TypeAlias = NormalizeRequest

@typing.final
class NormalizeConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LANGUAGE_FIELD_NUMBER: builtins.int
    language: builtins.str
    """The language of the text data specified as an RFC 5646 language tag.
    It is used for converting numbers written out of words to digits. Numbers are not converted if this field is not set.
    """
    def __init__(
        self,
        *,
        language: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_language", b"_language", "language", b"language"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_language", b"_language", "language", b"language"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_language", b"_language"]) -> typing.Literal["language"] | None: ...

Global___NormalizeConfig: typing_extensions.TypeAlias = NormalizeConfig

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

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SEGMENTS_FIELD_NUMBER: builtins.int
    @property
    def segments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Segment]:
        """Sequential list of transcription segments corresponding to sequential
        portions of audio.
        """

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

Global___NormalizeResponse: typing_extensions.TypeAlias = NormalizeResponse

@typing.final
class Word(google.protobuf.message.Message):
    """Individual word with timestamps."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    PUNCTUATED_TEXT_FIELD_NUMBER: builtins.int
    text: builtins.str
    """Text of the word."""
    punctuated_text: builtins.str
    """Punctuated text of the word."""
    @property
    def start_time(self) -> google.protobuf.duration_pb2.Duration:
        """Start time of the word."""

    @property
    def end_time(self) -> google.protobuf.duration_pb2.Duration:
        """End time of the word."""

    def __init__(
        self,
        *,
        text: builtins.str = ...,
        start_time: google.protobuf.duration_pb2.Duration | None = ...,
        end_time: google.protobuf.duration_pb2.Duration | None = ...,
        punctuated_text: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["end_time", b"end_time", "punctuated_text", b"punctuated_text", "start_time", b"start_time", "text", b"text"]) -> None: ...

Global___Word: typing_extensions.TypeAlias = Word

@typing.final
class Segment(google.protobuf.message.Message):
    """Transcription segment."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    START_TIME_FIELD_NUMBER: builtins.int
    END_TIME_FIELD_NUMBER: builtins.int
    WORDS_FIELD_NUMBER: builtins.int
    text: builtins.str
    """Text content of the whole segment."""
    @property
    def start_time(self) -> google.protobuf.duration_pb2.Duration:
        """Start time of the segment."""

    @property
    def end_time(self) -> google.protobuf.duration_pb2.Duration:
        """End time of the segment."""

    @property
    def words(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[Global___Word]:
        """Detailed word-level segmentation of the segment."""

    def __init__(
        self,
        *,
        text: builtins.str = ...,
        start_time: google.protobuf.duration_pb2.Duration | None = ...,
        end_time: google.protobuf.duration_pb2.Duration | None = ...,
        words: collections.abc.Iterable[Global___Word] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["end_time", b"end_time", "start_time", b"start_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["end_time", b"end_time", "start_time", b"start_time", "text", b"text", "words", b"words"]) -> None: ...

Global___Segment: typing_extensions.TypeAlias = Segment
