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

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class FinetunigState(str, enum.Enum):
    NOT_STARTED = "not_started"
    IS_FINE_TUNING = "is_fine_tuning"
    FINE_TUNED = "fine_tuned"

    def visit(
        self,
        not_started: typing.Callable[[], T_Result],
        is_fine_tuning: typing.Callable[[], T_Result],
        fine_tuned: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is FinetunigState.NOT_STARTED:
            return not_started()
        if self is FinetunigState.IS_FINE_TUNING:
            return is_fine_tuning()
        if self is FinetunigState.FINE_TUNED:
            return fine_tuned()
