# This file was auto-generated by Fern from our API Definition.

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class TraceIdTypeEnum(str, enum.Enum):
    LANGFUSE = "LANGFUSE"
    EXTERNAL = "EXTERNAL"

    def visit(self, langfuse: typing.Callable[[], T_Result], external: typing.Callable[[], T_Result]) -> T_Result:
        if self is TraceIdTypeEnum.LANGFUSE:
            return langfuse()
        if self is TraceIdTypeEnum.EXTERNAL:
            return external()
