"""
ID Wispera Framework Integrations
LangChain, CrewAI, OpenAI Agents, Google A2A, Slack, and other AI framework integrations
"""

from id_wispera.integrations.base import WisperaBaseProvider

# Import integrations conditionally to avoid hard dependencies
try:
    from id_wispera.integrations.langchain import WisperaCredentialProvider
except ImportError:
    WisperaCredentialProvider = None  # type: ignore

try:
    from id_wispera.integrations.crewai import WisperaSecretManager
except ImportError:
    WisperaSecretManager = None  # type: ignore

try:
    from id_wispera.integrations.openai_agents import WisperaOpenAIAgentProvider
except ImportError:
    WisperaOpenAIAgentProvider = None  # type: ignore

try:
    from id_wispera.integrations.google_a2a import WisperaA2AProvider
except ImportError:
    WisperaA2AProvider = None  # type: ignore

try:
    from id_wispera.integrations.slack import WisperaSlackProvider
except ImportError:
    WisperaSlackProvider = None  # type: ignore

__all__ = ["WisperaBaseProvider"]

if WisperaCredentialProvider is not None:
    __all__.append("WisperaCredentialProvider")

if WisperaSecretManager is not None:
    __all__.append("WisperaSecretManager")

if WisperaOpenAIAgentProvider is not None:
    __all__.append("WisperaOpenAIAgentProvider")

if WisperaA2AProvider is not None:
    __all__.append("WisperaA2AProvider")

if WisperaSlackProvider is not None:
    __all__.append("WisperaSlackProvider")
