"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright Aristech GmbH"""

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class FunctionRequest(google.protobuf.message.Message):
    """Request for list of functions that server provides"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___FunctionRequest = FunctionRequest

@typing.final
class Function(google.protobuf.message.Message):
    """A function is a specific operation or information that can be performed on
    incoming text. I.E. Classification, recasing etc.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    ARGUMENTS_FIELD_NUMBER: builtins.int
    id: builtins.str
    """An unique ID for the function used (i.e. useful when using different
    versions of a functions)
    """
    name: builtins.str
    """An self-explaining name of the function"""
    description: builtins.str
    """A description of the function."""
    @property
    def arguments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """A list of arguments for the function"""

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

global___Function = Function

@typing.final
class RunFunctionsRequest(google.protobuf.message.Message):
    """Process raw text input."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FUNCTIONS_FIELD_NUMBER: builtins.int
    INPUT_FIELD_NUMBER: builtins.int
    ARGUMENTS_FIELD_NUMBER: builtins.int
    input: builtins.str
    """The input to be processed"""
    @property
    def functions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Function]:
        """Function to be requested"""

    @property
    def arguments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Arguments, if necessary. I.E. switchting between raw output and debug
        output.
        """

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

global___RunFunctionsRequest = RunFunctionsRequest

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

    OUTPUT_FIELD_NUMBER: builtins.int
    output: builtins.str
    """Processed text"""
    def __init__(
        self,
        *,
        output: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["output", b"output"]) -> None: ...

global___RunFunctionsResponse = RunFunctionsResponse
