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

from collections.abc import Callable
from typing import Any, Literal, Self

from fastapi.openapi.models import APIKey, HTTPBase, HTTPBearer, OAuth2, OpenIdConnect
from google.adk.agents.agent_config import AgentConfig as _ADK_AgentConfig
from google.adk.agents.base_agent_config import BaseAgentConfig as _ADK_BaseAgentConfig
from google.adk.agents.common_configs import AgentRefConfig as _ADK_AgentRefConfig
from google.adk.agents.common_configs import ArgumentConfig as _ADK_ArgumentConfig
from google.adk.agents.common_configs import CodeConfig as _ADK_CodeConfig
from google.adk.agents.context_cache_config import ContextCacheConfig as _ADK_ContextCacheConfig
from google.adk.agents.llm_agent_config import LlmAgentConfig as _ADK_LlmAgentConfig
from google.adk.agents.loop_agent_config import LoopAgentConfig as _ADK_LoopAgentConfig
from google.adk.agents.parallel_agent_config import ParallelAgentConfig as _ADK_ParallelAgentConfig
from google.adk.agents.run_config import RunConfig as _ADK_RunConfig
from google.adk.agents.run_config import StreamingMode
from google.adk.agents.run_config import ToolThreadPoolConfig as _ADK_ToolThreadPoolConfig
from google.adk.agents.sequential_agent_config import SequentialAgentConfig as _ADK_SequentialAgentConfig
from google.adk.apps.app import EventsCompactionConfig as _ADK_EventsCompactionConfig
from google.adk.apps.app import ResumabilityConfig as _ADK_ResumabilityConfig
from google.adk.apps.base_events_summarizer import BaseEventsSummarizer
from google.adk.auth.auth_credential import AuthCredential
from google.adk.auth.auth_schemes import OpenIdConnectWithConfig
from google.adk.features._feature_registry import FeatureConfig as _ADK_FeatureConfig
from google.adk.flows.llm_flows.audio_cache_manager import AudioCacheConfig as _ADK_AudioCacheConfig
from google.adk.optimization.simple_prompt_optimizer import (
    SimplePromptOptimizerConfig as _ADK_SimplePromptOptimizerConfig,
)
from google.adk.plugins.bigquery_agent_analytics_plugin import BigQueryLoggerConfig as _ADK_BigQueryLoggerConfig
from google.adk.plugins.bigquery_agent_analytics_plugin import RetryConfig as _ADK_RetryConfig
from google.adk.sessions.base_session_service import GetSessionConfig as _ADK_GetSessionConfig
from google.adk.tools._google_credentials import BaseGoogleCredentialsConfig as _ADK_BaseGoogleCredentialsConfig
from google.adk.tools.agent_simulator.agent_simulator_config import AgentSimulatorConfig as _ADK_AgentSimulatorConfig
from google.adk.tools.agent_simulator.agent_simulator_config import InjectedError, MockStrategy
from google.adk.tools.agent_simulator.agent_simulator_config import InjectionConfig as _ADK_InjectionConfig
from google.adk.tools.agent_simulator.agent_simulator_config import ToolSimulationConfig as _ADK_ToolSimulationConfig
from google.adk.tools.agent_tool import AgentToolConfig as _ADK_AgentToolConfig
from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsConfig as _ADK_BigQueryCredentialsConfig
from google.adk.tools.bigquery.config import BigQueryToolConfig as _ADK_BigQueryToolConfig
from google.adk.tools.bigquery.config import WriteMode
from google.adk.tools.bigtable.bigtable_credentials import BigtableCredentialsConfig as _ADK_BigtableCredentialsConfig
from google.adk.tools.data_agent.config import DataAgentToolConfig as _ADK_DataAgentToolConfig
from google.adk.tools.data_agent.credentials import DataAgentCredentialsConfig as _ADK_DataAgentCredentialsConfig
from google.adk.tools.example_tool import ExampleToolConfig as _ADK_ExampleToolConfig
from google.adk.tools.mcp_tool.mcp_session_manager import (
    SseConnectionParams,
    StdioConnectionParams,
    StreamableHTTPConnectionParams,
)
from google.adk.tools.mcp_tool.mcp_toolset import McpToolsetConfig as _ADK_McpToolsetConfig
from google.adk.tools.pubsub.config import PubSubToolConfig as _ADK_PubSubToolConfig
from google.adk.tools.pubsub.pubsub_credentials import PubSubCredentialsConfig as _ADK_PubSubCredentialsConfig
from google.adk.tools.spanner.spanner_credentials import SpannerCredentialsConfig as _ADK_SpannerCredentialsConfig
from google.adk.tools.tool_configs import BaseToolConfig as _ADK_BaseToolConfig
from google.adk.tools.tool_configs import ToolArgsConfig as _ADK_ToolArgsConfig
from google.adk.tools.tool_configs import ToolConfig as _ADK_ToolConfig
from google.auth.credentials import Credentials
from google.genai.types import (
    AudioTranscriptionConfig,
    Content,
    ContextWindowCompressionConfig,
    File,
    GenerateContentConfig,
    Part,
    ProactivityConfig,
    RealtimeInputConfig,
    SessionResumptionConfig,
    SpeechConfig,
)
from mcp.client.stdio import StdioServerParameters

from adk_fluent._base import BuilderBase

class AgentConfig(BuilderBase):
    """The config for the YAML schema to create an agent."""
    def __init__(self, root: str) -> None: ...
    def build(self) -> _ADK_AgentConfig: ...

class BaseAgentConfig(BuilderBase):
    """The config for the YAML schema of a BaseAgent."""
    def __init__(self, name: str) -> None: ...
    def describe(self, value: str) -> Self: ...
    def agent_class(self, value: Literal["BaseAgent"] | str) -> Self: ...
    def sub_agents(self, value: list[_ADK_AgentRefConfig] | None) -> Self: ...
    def before_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def sub_agent(self, value: _ADK_AgentRefConfig) -> Self: ...
    def before_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def build(self) -> _ADK_BaseAgentConfig: ...

class AgentRefConfig(BuilderBase):
    """The config for the reference to another agent."""
    def __init__(self) -> None: ...
    def config_path(self, value: str | None) -> Self: ...
    def code(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_AgentRefConfig: ...

class ArgumentConfig(BuilderBase):
    """An argument passed to a function or a class's constructor."""
    def __init__(self, value: str) -> None: ...
    def name(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_ArgumentConfig: ...

class CodeConfig(BuilderBase):
    """Code reference config for a variable, a function, or a class."""
    def __init__(self, name: str) -> None: ...
    def args(self, value: list[_ADK_ArgumentConfig] | None) -> Self: ...
    def arg(self, value: _ADK_ArgumentConfig) -> Self: ...
    def build(self) -> _ADK_CodeConfig: ...

class ContextCacheConfig(BuilderBase):
    """Configuration for context caching across all agents in an app."""
    def __init__(self) -> None: ...
    def cache_intervals(self, value: int) -> Self: ...
    def ttl_seconds(self, value: int) -> Self: ...
    def min_tokens(self, value: int) -> Self: ...
    def build(self) -> _ADK_ContextCacheConfig: ...

class LlmAgentConfig(BuilderBase):
    """The config for the YAML schema of a LlmAgent."""
    def __init__(self, name: str, instruction: str) -> None: ...
    def describe(self, value: str) -> Self: ...
    def history(self, value: Literal["default", "none"]) -> Self: ...
    def include_history(self, value: Literal["default", "none"]) -> Self: ...
    def instruct(self, value: str) -> Self: ...
    def outputs(self, value: str | None) -> Self: ...
    def static(self, value: Content | str | File | Part | list[str | File | Part] | None) -> Self: ...
    def static_instruct(self, value: Content | str | File | Part | list[str | File | Part] | None) -> Self: ...
    def agent_class(self, value: str) -> Self: ...
    def sub_agents(self, value: list[_ADK_AgentRefConfig] | None) -> Self: ...
    def before_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def model(self, value: str | None) -> Self: ...
    def model_code(self, value: _ADK_CodeConfig | None) -> Self: ...
    def disallow_transfer_to_parent(self, value: bool | None) -> Self: ...
    def disallow_transfer_to_peers(self, value: bool | None) -> Self: ...
    def input_schema(self, value: _ADK_CodeConfig | None) -> Self: ...
    def output_schema(self, value: _ADK_CodeConfig | None) -> Self: ...
    def tools(self, value: list[_ADK_ToolConfig] | None) -> Self: ...
    def before_model_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_model_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def before_tool_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_tool_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def generate_content_config(self, value: GenerateContentConfig | None) -> Self: ...
    def sub_agent(self, value: _ADK_AgentRefConfig) -> Self: ...
    def before_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def tool(self, value: _ADK_ToolConfig) -> Self: ...
    def before_model_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_model_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def before_tool_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_tool_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def build(self) -> _ADK_LlmAgentConfig: ...

class LoopAgentConfig(BuilderBase):
    """The config for the YAML schema of a LoopAgent."""
    def __init__(self, name: str) -> None: ...
    def describe(self, value: str) -> Self: ...
    def agent_class(self, value: str) -> Self: ...
    def sub_agents(self, value: list[_ADK_AgentRefConfig] | None) -> Self: ...
    def before_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def max_iterations(self, value: int | None) -> Self: ...
    def sub_agent(self, value: _ADK_AgentRefConfig) -> Self: ...
    def before_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def build(self) -> _ADK_LoopAgentConfig: ...

class ParallelAgentConfig(BuilderBase):
    """The config for the YAML schema of a ParallelAgent."""
    def __init__(self, name: str) -> None: ...
    def describe(self, value: str) -> Self: ...
    def agent_class(self, value: str) -> Self: ...
    def sub_agents(self, value: list[_ADK_AgentRefConfig] | None) -> Self: ...
    def before_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def sub_agent(self, value: _ADK_AgentRefConfig) -> Self: ...
    def before_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def build(self) -> _ADK_ParallelAgentConfig: ...

class RunConfig(BuilderBase):
    """Configs for runtime behavior of agents."""
    def __init__(self) -> None: ...
    def input_audio_transcribe(self, value: AudioTranscriptionConfig | None) -> Self: ...
    def output_audio_transcribe(self, value: AudioTranscriptionConfig | None) -> Self: ...
    def speech_config(self, value: SpeechConfig | None) -> Self: ...
    def response_modalities(self, value: list[str] | None) -> Self: ...
    def save_input_blobs_as_artifacts(self, value: bool) -> Self: ...
    def support_cfc(self, value: bool) -> Self: ...
    def streaming_mode(self, value: StreamingMode) -> Self: ...
    def realtime_input_config(self, value: RealtimeInputConfig | None) -> Self: ...
    def enable_affective_dialog(self, value: bool | None) -> Self: ...
    def proactivity(self, value: ProactivityConfig | None) -> Self: ...
    def session_resumption(self, value: SessionResumptionConfig | None) -> Self: ...
    def context_window_compression(self, value: ContextWindowCompressionConfig | None) -> Self: ...
    def save_live_blob(self, value: bool) -> Self: ...
    def tool_thread_pool_config(self, value: _ADK_ToolThreadPoolConfig | None) -> Self: ...
    def save_live_audio(self, value: bool) -> Self: ...
    def max_llm_calls(self, value: int) -> Self: ...
    def custom_metadata(self, value: dict[str, Any] | None) -> Self: ...
    def build(self) -> _ADK_RunConfig: ...

class ToolThreadPoolConfig(BuilderBase):
    """Configuration for the tool thread pool executor."""
    def __init__(self) -> None: ...
    def max_workers(self, value: int) -> Self: ...
    def build(self) -> _ADK_ToolThreadPoolConfig: ...

class SequentialAgentConfig(BuilderBase):
    """The config for the YAML schema of a SequentialAgent."""
    def __init__(self, name: str) -> None: ...
    def describe(self, value: str) -> Self: ...
    def agent_class(self, value: str) -> Self: ...
    def sub_agents(self, value: list[_ADK_AgentRefConfig] | None) -> Self: ...
    def before_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def after_agent_callbacks(self, value: list[_ADK_CodeConfig] | None) -> Self: ...
    def sub_agent(self, value: _ADK_AgentRefConfig) -> Self: ...
    def before_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def after_agent_callback(self, value: _ADK_CodeConfig) -> Self: ...
    def build(self) -> _ADK_SequentialAgentConfig: ...

class EventsCompactionConfig(BuilderBase):
    """The config of event compaction for an application."""
    def __init__(self, compaction_interval: str, overlap_size: str) -> None: ...
    def summarizer(self, value: BaseEventsSummarizer | None) -> Self: ...
    def token_threshold(self, value: int | None) -> Self: ...
    def event_retention_size(self, value: int | None) -> Self: ...
    def build(self) -> _ADK_EventsCompactionConfig: ...

class ResumabilityConfig(BuilderBase):
    """The config of the resumability for an application."""
    def __init__(self) -> None: ...
    def is_resumable(self, value: bool) -> Self: ...
    def build(self) -> _ADK_ResumabilityConfig: ...

class FeatureConfig(BuilderBase):
    """Feature configuration."""
    def __init__(self, stage: str) -> None: ...
    def default_on(self, value: bool) -> Self: ...
    def build(self) -> _ADK_FeatureConfig: ...

class AudioCacheConfig(BuilderBase):
    """Configuration for audio caching behavior."""
    def __init__(self) -> None: ...
    def max_cache_size_bytes(self, value: int) -> Self: ...
    def max_cache_duration_seconds(self, value: float) -> Self: ...
    def auto_flush_threshold(self, value: int) -> Self: ...
    def build(self) -> _ADK_AudioCacheConfig: ...

class SimplePromptOptimizerConfig(BuilderBase):
    """Configuration for the IterativePromptOptimizer."""
    def __init__(self) -> None: ...
    def model_configure(self, value: GenerateContentConfig) -> Self: ...
    def optimizer_model(self, value: str) -> Self: ...
    def num_iterations(self, value: int) -> Self: ...
    def batch_size(self, value: int) -> Self: ...
    def build(self) -> _ADK_SimplePromptOptimizerConfig: ...

class BigQueryLoggerConfig(BuilderBase):
    """Configuration for the BigQueryAgentAnalyticsPlugin."""
    def __init__(self) -> None: ...
    def enabled(self, value: bool) -> Self: ...
    def event_allowlist(self, value: list[str] | None) -> Self: ...
    def event_denylist(self, value: list[str] | None) -> Self: ...
    def max_content_length(self, value: int) -> Self: ...
    def table_id(self, value: str) -> Self: ...
    def clustering_fields(self, value: list[str]) -> Self: ...
    def log_multi_modal_content(self, value: bool) -> Self: ...
    def retry_config(self, value: _ADK_RetryConfig) -> Self: ...
    def batch_size(self, value: int) -> Self: ...
    def batch_flush_interval(self, value: float) -> Self: ...
    def shutdown_timeout(self, value: float) -> Self: ...
    def queue_max_size(self, value: int) -> Self: ...
    def content_formatter(self, value: Callable[[Any, str], Any] | None) -> Self: ...
    def gcs_bucket_name(self, value: str | None) -> Self: ...
    def connection_id(self, value: str | None) -> Self: ...
    def log_session_metadata(self, value: bool) -> Self: ...
    def custom_tags(self, value: dict[str, Any]) -> Self: ...
    def build(self) -> _ADK_BigQueryLoggerConfig: ...

class RetryConfig(BuilderBase):
    """Configuration for retrying failed BigQuery write operations."""
    def __init__(self) -> None: ...
    def max_retries(self, value: int) -> Self: ...
    def initial_delay(self, value: float) -> Self: ...
    def multiplier(self, value: float) -> Self: ...
    def max_delay(self, value: float) -> Self: ...
    def build(self) -> _ADK_RetryConfig: ...

class GetSessionConfig(BuilderBase):
    """The configuration of getting a session."""
    def __init__(self) -> None: ...
    def num_recent_events(self, value: int | None) -> Self: ...
    def after_timestamp(self, value: float | None) -> Self: ...
    def build(self) -> _ADK_GetSessionConfig: ...

class BaseGoogleCredentialsConfig(BuilderBase):
    """Base Google Credentials Configuration for Google API tools (Experimental)."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_BaseGoogleCredentialsConfig: ...

class AgentSimulatorConfig(BuilderBase):
    """Configuration for AgentSimulator."""
    def __init__(self) -> None: ...
    def simulation_model_configure(self, value: GenerateContentConfig) -> Self: ...
    def tool_simulation_configs(self, value: list[_ADK_ToolSimulationConfig]) -> Self: ...
    def simulation_model(self, value: str) -> Self: ...
    def tracing_path(self, value: str | None) -> Self: ...
    def environment_data(self, value: str | None) -> Self: ...
    def tool_simulation_config(self, value: _ADK_ToolSimulationConfig) -> Self: ...
    def build(self) -> _ADK_AgentSimulatorConfig: ...

class InjectionConfig(BuilderBase):
    """Injection configuration for a tool."""
    def __init__(self) -> None: ...
    def injection_probability(self, value: float) -> Self: ...
    def match_args(self, value: dict[str, Any] | None) -> Self: ...
    def injected_latency_seconds(self, value: float) -> Self: ...
    def random_seed(self, value: int | None) -> Self: ...
    def injected_error(self, value: InjectedError | None) -> Self: ...
    def injected_response(self, value: dict[str, Any] | None) -> Self: ...
    def build(self) -> _ADK_InjectionConfig: ...

class ToolSimulationConfig(BuilderBase):
    """Simulation configuration for a single tool."""
    def __init__(self, tool_name: str) -> None: ...
    def injection_configs(self, value: list[_ADK_InjectionConfig]) -> Self: ...
    def mock_strategy_type(self, value: MockStrategy) -> Self: ...
    def injection_config(self, value: _ADK_InjectionConfig) -> Self: ...
    def build(self) -> _ADK_ToolSimulationConfig: ...

class AgentToolConfig(BuilderBase):
    """The config for the AgentTool."""
    def __init__(self, agent: str) -> None: ...
    def skip_summarizate(self, value: bool) -> Self: ...
    def include_plugins(self, value: bool) -> Self: ...
    def build(self) -> _ADK_AgentToolConfig: ...

class BigQueryCredentialsConfig(BuilderBase):
    """BigQuery Credentials Configuration for Google API tools (Experimental)."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_BigQueryCredentialsConfig: ...

class BigQueryToolConfig(BuilderBase):
    """Configuration for BigQuery tools."""
    def __init__(self) -> None: ...
    def locate(self, value: str | None) -> Self: ...
    def write_mode(self, value: WriteMode) -> Self: ...
    def maximum_bytes_billed(self, value: int | None) -> Self: ...
    def max_query_result_rows(self, value: int) -> Self: ...
    def application_name(self, value: str | None) -> Self: ...
    def compute_project_id(self, value: str | None) -> Self: ...
    def job_labels(self, value: dict[str, str] | None) -> Self: ...
    def build(self) -> _ADK_BigQueryToolConfig: ...

class BigtableCredentialsConfig(BuilderBase):
    """Bigtable Credentials Configuration for Google API tools (Experimental)."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_BigtableCredentialsConfig: ...

class DataAgentToolConfig(BuilderBase):
    """Configuration for Data Agent tools."""
    def __init__(self) -> None: ...
    def max_query_result_rows(self, value: int) -> Self: ...
    def build(self) -> _ADK_DataAgentToolConfig: ...

class DataAgentCredentialsConfig(BuilderBase):
    """Data Agent Credentials Configuration for Google API tools."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_DataAgentCredentialsConfig: ...

class ExampleToolConfig(BuilderBase):
    """Fluent builder for ExampleToolConfig."""
    def __init__(self, examples: str) -> None: ...
    def build(self) -> _ADK_ExampleToolConfig: ...

class McpToolsetConfig(BuilderBase):
    """The config for McpToolset."""
    def __init__(self) -> None: ...
    def stdio_server_params(self, value: StdioServerParameters | None) -> Self: ...
    def stdio_connection_params(self, value: StdioConnectionParams | None) -> Self: ...
    def sse_connection_params(self, value: SseConnectionParams | None) -> Self: ...
    def streamable_http_connection_params(self, value: StreamableHTTPConnectionParams | None) -> Self: ...
    def tool_filter(self, value: list[str] | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def auth_scheme(
        self, value: APIKey | HTTPBase | OAuth2 | OpenIdConnect | HTTPBearer | OpenIdConnectWithConfig | None
    ) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def use_mcp_resources(self, value: bool) -> Self: ...
    def build(self) -> _ADK_McpToolsetConfig: ...

class PubSubToolConfig(BuilderBase):
    """Configuration for Pub/Sub tools."""
    def __init__(self) -> None: ...
    def project_id(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_PubSubToolConfig: ...

class PubSubCredentialsConfig(BuilderBase):
    """Pub/Sub Credentials Configuration for Google API tools (Experimental)."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_PubSubCredentialsConfig: ...

class SpannerCredentialsConfig(BuilderBase):
    """Spanner Credentials Configuration for Google API tools (Experimental)."""
    def __init__(self) -> None: ...
    def credentials(self, value: Credentials | None) -> Self: ...
    def external_access_token_key(self, value: str | None) -> Self: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def scopes(self, value: list[str] | None) -> Self: ...
    def build(self) -> _ADK_SpannerCredentialsConfig: ...

class BaseToolConfig(BuilderBase):
    """The base class for all tool configs."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_BaseToolConfig: ...

class ToolArgsConfig(BuilderBase):
    """Config to host free key-value pairs for the args in ToolConfig."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_ToolArgsConfig: ...

class ToolConfig(BuilderBase):
    """The configuration for a tool."""
    def __init__(self, name: str) -> None: ...
    def args(self, value: _ADK_ToolArgsConfig | None) -> Self: ...
    def build(self) -> _ADK_ToolConfig: ...
