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

# isort: skip_file

import typing
from importlib import import_module

if typing.TYPE_CHECKING:
    from .ai_endpoint_configuration import AiEndpointConfiguration
    from .blocked_chunk import BlockedChunk
    from .boolean_field_schema import BooleanFieldSchema
    from .collection_filtered_data import CollectionFilteredData
    from .configuration import Configuration
    from .create_conversation_response import CreateConversationResponse
    from .create_copilot_response import CreateCopilotResponse
    from .data_chunk import DataChunk
    from .data_filter import DataFilter
    from .datetime_field_schema import DatetimeFieldSchema
    from .delete_copilot_response import DeleteCopilotResponse
    from .end_of_message_chunk import EndOfMessageChunk
    from .error_chunk import ErrorChunk
    from .error_chunk_data import ErrorChunkData
    from .export_copilots_response import ExportCopilotsResponse
    from .exported_copilot import ExportedCopilot
    from .feedback_enum import FeedbackEnum
    from .filter import Filter, Filter_Boolean, Filter_Datetime, Filter_Number, Filter_String
    from .final_chunk import FinalChunk
    from .initial_chunk import InitialChunk
    from .input_variable import InputVariable
    from .inserted_audit_log import InsertedAuditLog
    from .message_blocked import MessageBlocked
    from .message_feedback import MessageFeedback
    from .message_reply import MessageReply
    from .number_field_schema import NumberFieldSchema
    from .referenced_source import ReferencedSource
    from .response_chunk import ResponseChunk
    from .send_agent_message_response import SendAgentMessageResponse
    from .send_message_response import (
        SendMessageResponse,
        SendMessageResponse_AiResponseResult,
        SendMessageResponse_BlockedResult,
    )
    from .streaming_chunk import (
        StreamingChunk,
        StreamingChunk_Blocked,
        StreamingChunk_DataChunk,
        StreamingChunk_EndOfMessage,
        StreamingChunk_ErrorChunk,
        StreamingChunk_FinalChunk,
        StreamingChunk_Initial,
    )
    from .string_field_schema import StringFieldSchema
    from .web_search_result import WebSearchResult
_dynamic_imports: typing.Dict[str, str] = {
    "AiEndpointConfiguration": ".ai_endpoint_configuration",
    "BlockedChunk": ".blocked_chunk",
    "BooleanFieldSchema": ".boolean_field_schema",
    "CollectionFilteredData": ".collection_filtered_data",
    "Configuration": ".configuration",
    "CreateConversationResponse": ".create_conversation_response",
    "CreateCopilotResponse": ".create_copilot_response",
    "DataChunk": ".data_chunk",
    "DataFilter": ".data_filter",
    "DatetimeFieldSchema": ".datetime_field_schema",
    "DeleteCopilotResponse": ".delete_copilot_response",
    "EndOfMessageChunk": ".end_of_message_chunk",
    "ErrorChunk": ".error_chunk",
    "ErrorChunkData": ".error_chunk_data",
    "ExportCopilotsResponse": ".export_copilots_response",
    "ExportedCopilot": ".exported_copilot",
    "FeedbackEnum": ".feedback_enum",
    "Filter": ".filter",
    "Filter_Boolean": ".filter",
    "Filter_Datetime": ".filter",
    "Filter_Number": ".filter",
    "Filter_String": ".filter",
    "FinalChunk": ".final_chunk",
    "InitialChunk": ".initial_chunk",
    "InputVariable": ".input_variable",
    "InsertedAuditLog": ".inserted_audit_log",
    "MessageBlocked": ".message_blocked",
    "MessageFeedback": ".message_feedback",
    "MessageReply": ".message_reply",
    "NumberFieldSchema": ".number_field_schema",
    "ReferencedSource": ".referenced_source",
    "ResponseChunk": ".response_chunk",
    "SendAgentMessageResponse": ".send_agent_message_response",
    "SendMessageResponse": ".send_message_response",
    "SendMessageResponse_AiResponseResult": ".send_message_response",
    "SendMessageResponse_BlockedResult": ".send_message_response",
    "StreamingChunk": ".streaming_chunk",
    "StreamingChunk_Blocked": ".streaming_chunk",
    "StreamingChunk_DataChunk": ".streaming_chunk",
    "StreamingChunk_EndOfMessage": ".streaming_chunk",
    "StreamingChunk_ErrorChunk": ".streaming_chunk",
    "StreamingChunk_FinalChunk": ".streaming_chunk",
    "StreamingChunk_Initial": ".streaming_chunk",
    "StringFieldSchema": ".string_field_schema",
    "WebSearchResult": ".web_search_result",
}


def __getattr__(attr_name: str) -> typing.Any:
    module_name = _dynamic_imports.get(attr_name)
    if module_name is None:
        raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
    try:
        module = import_module(module_name, __package__)
        if module_name == f".{attr_name}":
            return module
        else:
            return getattr(module, attr_name)
    except ImportError as e:
        raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
    except AttributeError as e:
        raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e


def __dir__():
    lazy_attrs = list(_dynamic_imports.keys())
    return sorted(lazy_attrs)


__all__ = [
    "AiEndpointConfiguration",
    "BlockedChunk",
    "BooleanFieldSchema",
    "CollectionFilteredData",
    "Configuration",
    "CreateConversationResponse",
    "CreateCopilotResponse",
    "DataChunk",
    "DataFilter",
    "DatetimeFieldSchema",
    "DeleteCopilotResponse",
    "EndOfMessageChunk",
    "ErrorChunk",
    "ErrorChunkData",
    "ExportCopilotsResponse",
    "ExportedCopilot",
    "FeedbackEnum",
    "Filter",
    "Filter_Boolean",
    "Filter_Datetime",
    "Filter_Number",
    "Filter_String",
    "FinalChunk",
    "InitialChunk",
    "InputVariable",
    "InsertedAuditLog",
    "MessageBlocked",
    "MessageFeedback",
    "MessageReply",
    "NumberFieldSchema",
    "ReferencedSource",
    "ResponseChunk",
    "SendAgentMessageResponse",
    "SendMessageResponse",
    "SendMessageResponse_AiResponseResult",
    "SendMessageResponse_BlockedResult",
    "StreamingChunk",
    "StreamingChunk_Blocked",
    "StreamingChunk_DataChunk",
    "StreamingChunk_EndOfMessage",
    "StreamingChunk_ErrorChunk",
    "StreamingChunk_FinalChunk",
    "StreamingChunk_Initial",
    "StringFieldSchema",
    "WebSearchResult",
]
