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

import builtins
import collections.abc
import google.protobuf.descriptor
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 DebugValue(google.protobuf.message.Message):
    """General debug value holder for developer spans."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FLOAT64_FIELD_NUMBER: builtins.int
    BOOL_FIELD_NUMBER: builtins.int
    STRING_FIELD_NUMBER: builtins.int
    BYTES_FIELD_NUMBER: builtins.int
    float64: builtins.float
    bool: builtins.bool
    string: builtins.str
    bytes: builtins.bytes
    def __init__(
        self,
        *,
        float64: builtins.float = ...,
        bool: builtins.bool = ...,
        string: builtins.str = ...,
        bytes: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["bool", b"bool", "bytes", b"bytes", "float64", b"float64", "string", b"string", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["bool", b"bool", "bytes", b"bytes", "float64", b"float64", "string", b"string", "value", b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["value", b"value"]) -> typing.Literal["float64", "bool", "string", "bytes"] | None: ...

Global___DebugValue: typing_extensions.TypeAlias = DebugValue

@typing.final
class CallTrace(google.protobuf.message.Message):
    """Special event emitted only at TRACE level, and disabled by default.
    Used for troubleshooting complex bugs in Fusion itself.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> Global___DebugValue: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: Global___DebugValue | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    NAME_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    LINE_FIELD_NUMBER: builtins.int
    EXTRA_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Internal developer span name, often a function/method."""
    file: builtins.str
    """File name where the span was created."""
    line: builtins.int
    """Line number in the file where the span was created."""
    @property
    def extra(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, Global___DebugValue]:
        """Arbitrary extra structured data."""

    def __init__(
        self,
        *,
        name: builtins.str = ...,
        file: builtins.str | None = ...,
        line: builtins.int | None = ...,
        extra: collections.abc.Mapping[builtins.str, Global___DebugValue] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_file", b"_file", "_line", b"_line", "file", b"file", "line", b"line"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_file", b"_file", "_line", b"_line", "extra", b"extra", "file", b"file", "line", b"line", "name", b"name"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_file", b"_file"]) -> typing.Literal["file"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_line", b"_line"]) -> typing.Literal["line"] | None: ...

Global___CallTrace: typing_extensions.TypeAlias = CallTrace

@typing.final
class Unknown(google.protobuf.message.Message):
    """Unknown span placeholder used as a fallback. Presence of this
    event in the stream indicates a bug in the telemetry instrumentation.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    LINE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Inferred name, often a function/method."""
    file: builtins.str
    """File name where the span was created."""
    line: builtins.int
    """Line number in the file where the span was created."""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        file: builtins.str = ...,
        line: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["file", b"file", "line", b"line", "name", b"name"]) -> None: ...

Global___Unknown: typing_extensions.TypeAlias = Unknown
