"""AUTO-GENERATED by adk-fluent generator -- do not edit manually
Generated from google-adk 1.25.0 (manifest 14070a0ff3fb)"""

from collections.abc import Mapping
from typing import Any, Self

from google.adk.artifacts.base_artifact_service import BaseArtifactService as _ADK_BaseArtifactService
from google.adk.artifacts.file_artifact_service import FileArtifactService as _ADK_FileArtifactService
from google.adk.artifacts.gcs_artifact_service import GcsArtifactService as _ADK_GcsArtifactService
from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService as _ADK_InMemoryArtifactService
from google.adk.cli.utils.local_storage import PerAgentDatabaseSessionService as _ADK_PerAgentDatabaseSessionService
from google.adk.memory.base_memory_service import BaseMemoryService as _ADK_BaseMemoryService
from google.adk.memory.in_memory_memory_service import InMemoryMemoryService as _ADK_InMemoryMemoryService
from google.adk.memory.vertex_ai_memory_bank_service import VertexAiMemoryBankService as _ADK_VertexAiMemoryBankService
from google.adk.memory.vertex_ai_rag_memory_service import VertexAiRagMemoryService as _ADK_VertexAiRagMemoryService
from google.adk.sessions.base_session_service import BaseSessionService as _ADK_BaseSessionService
from google.adk.sessions.database_session_service import DatabaseSessionService as _ADK_DatabaseSessionService
from google.adk.sessions.in_memory_session_service import InMemorySessionService as _ADK_InMemorySessionService
from google.adk.sessions.sqlite_session_service import SqliteSessionService as _ADK_SqliteSessionService
from google.adk.sessions.vertex_ai_session_service import VertexAiSessionService as _ADK_VertexAiSessionService
from google.adk.tools._forwarding_artifact_service import ForwardingArtifactService as _ADK_ForwardingArtifactService

from adk_fluent._base import BuilderBase

class BaseArtifactService(BuilderBase):
    """Abstract base class for artifact services."""
    def __init__(self, args: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_BaseArtifactService: ...

class FileArtifactService(BuilderBase):
    """Stores filesystem-backed artifacts beneath a configurable root directory."""
    def __init__(self, root_dir: str) -> None: ...
    def build(self) -> _ADK_FileArtifactService: ...

class GcsArtifactService(BuilderBase):
    """An artifact service implementation using Google Cloud Storage (GCS)."""
    def __init__(self, bucket_name: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_GcsArtifactService: ...

class InMemoryArtifactService(BuilderBase):
    """An in-memory implementation of the artifact service."""
    def __init__(self) -> None: ...
    def artifacts(self, value: dict[str, list[Any]]) -> Self: ...
    def build(self) -> _ADK_InMemoryArtifactService: ...

class PerAgentDatabaseSessionService(BuilderBase):
    """Routes session storage to per-agent `.adk/session.db` files."""
    def __init__(self, agents_root: str) -> None: ...
    def app_name_to_dir(self, value: Mapping[str, str] | None) -> Self: ...
    def build(self) -> _ADK_PerAgentDatabaseSessionService: ...

class BaseMemoryService(BuilderBase):
    """Base class for memory services."""
    def __init__(self, args: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_BaseMemoryService: ...

class InMemoryMemoryService(BuilderBase):
    """An in-memory memory service for prototyping purpose only."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_InMemoryMemoryService: ...

class VertexAiMemoryBankService(BuilderBase):
    """Implementation of the BaseMemoryService using Vertex AI Memory Bank."""
    def __init__(self) -> None: ...
    def project(self, value: str | None) -> Self: ...
    def location(self, value: str | None) -> Self: ...
    def agent_engine_id(self, value: str | None) -> Self: ...
    def express_mode_api_key(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_VertexAiMemoryBankService: ...

class VertexAiRagMemoryService(BuilderBase):
    """A memory service that uses Vertex AI RAG for storage and retrieval."""
    def __init__(self) -> None: ...
    def rag_corpus(self, value: str | None) -> Self: ...
    def similarity_top_k(self, value: int | None) -> Self: ...
    def vector_distance_threshold(self, value: float) -> Self: ...
    def build(self) -> _ADK_VertexAiRagMemoryService: ...

class BaseSessionService(BuilderBase):
    """Base class for session services."""
    def __init__(self, args: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_BaseSessionService: ...

class DatabaseSessionService(BuilderBase):
    """A session service that uses a database for storage."""
    def __init__(self, db_url: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_DatabaseSessionService: ...

class InMemorySessionService(BuilderBase):
    """An in-memory implementation of the session service."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_InMemorySessionService: ...

class SqliteSessionService(BuilderBase):
    """A session service that uses an SQLite database for storage via aiosqlite."""
    def __init__(self, db_path: str) -> None: ...
    def build(self) -> _ADK_SqliteSessionService: ...

class VertexAiSessionService(BuilderBase):
    """Connects to the Vertex AI Agent Engine Session Service using Agent Engine SDK."""
    def __init__(self) -> None: ...
    def project(self, value: str | None) -> Self: ...
    def location(self, value: str | None) -> Self: ...
    def agent_engine_id(self, value: str | None) -> Self: ...
    def express_mode_api_key(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_VertexAiSessionService: ...

class ForwardingArtifactService(BuilderBase):
    """Artifact service that forwards to the parent tool context."""
    def __init__(self, tool_context: str) -> None: ...
    def build(self) -> _ADK_ForwardingArtifactService: ...
