# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init


class RagProbe(object):
    _types = {
        "hit_authority": bool,
        "hit_confidence_warn": bool,
        "hit_llm_reject": bool,
    }

    def __init__(self, d=None):
        self.hit_authority: Optional[bool] = None
        self.hit_confidence_warn: Optional[bool] = None
        self.hit_llm_reject: Optional[bool] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "RagProbeBuilder":
        return RagProbeBuilder()


class RagProbeBuilder(object):
    def __init__(self) -> None:
        self._rag_probe = RagProbe()

    def hit_authority(self, hit_authority: bool) -> "RagProbeBuilder":
        self._rag_probe.hit_authority = hit_authority
        return self

    def hit_confidence_warn(self, hit_confidence_warn: bool) -> "RagProbeBuilder":
        self._rag_probe.hit_confidence_warn = hit_confidence_warn
        return self

    def hit_llm_reject(self, hit_llm_reject: bool) -> "RagProbeBuilder":
        self._rag_probe.hit_llm_reject = hit_llm_reject
        return self

    def build(self) -> "RagProbe":
        return self._rag_probe
