# AUTO-GENERATED by adk-fluent generator — do not edit manually
# Generated from google-adk 1.25.0
# Timestamp: 2026-02-17T13:14:37.903105+00:00

from typing import Any, AsyncGenerator, Callable, Self

from adk_fluent._base import BuilderBase

from google.adk.apps.app import App as _ADK_App
from google.adk.runners import InMemoryRunner as _ADK_InMemoryRunner
from google.adk.runners import Runner as _ADK_Runner

class App(BuilderBase):
    """Represents an LLM-backed agentic application."""
    def __init__(self, name: str, root_agent: str) -> None: ...
    def plugins(self, value: list[BasePlugin]) -> Self: ...
    def events_compaction_config(self, value: Union[EventsCompactionConfig, NoneType]) -> Self: ...
    def context_cache_config(self, value: Union[ContextCacheConfig, NoneType]) -> Self: ...
    def resumability_config(self, value: Union[ResumabilityConfig, NoneType]) -> Self: ...
    def build(self) -> App: ...

class InMemoryRunner(BuilderBase):
    """An in-memory Runner for testing and development."""
    def __init__(self, ) -> None: ...
    def agent(self, value: Optional[BaseAgent]) -> Self: ...
    def app_name(self, value: Optional[str]) -> Self: ...
    def plugins(self, value: Optional[list[BasePlugin]]) -> Self: ...
    def app(self, value: Optional[App]) -> Self: ...
    def plugin_close_timeout(self, value: float) -> Self: ...
    def build(self) -> InMemoryRunner: ...

class Runner(BuilderBase):
    """The Runner class is used to run agents."""
    def __init__(self, session_service: str) -> None: ...
    def app(self, value: Optional[App]) -> Self: ...
    def app_name(self, value: Optional[str]) -> Self: ...
    def agent(self, value: Optional[BaseAgent]) -> Self: ...
    def plugins(self, value: Optional[List[BasePlugin]]) -> Self: ...
    def artifact_service(self, value: Optional[BaseArtifactService]) -> Self: ...
    def memory_service(self, value: Optional[BaseMemoryService]) -> Self: ...
    def credential_service(self, value: Optional[BaseCredentialService]) -> Self: ...
    def plugin_close_timeout(self, value: float) -> Self: ...
    def auto_create_session(self, value: bool) -> Self: ...
    def build(self) -> Runner: ...
