"""AUTO-GENERATED by adk-fluent generator -- do not edit manually
Generated from google-adk 1.25.0
Timestamp: 2026-02-27T11:05:47.398098+00:00"""

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

from fastapi.openapi.models import APIKey
from fastapi.openapi.models import HTTPBase
from fastapi.openapi.models import HTTPBearer
from fastapi.openapi.models import OAuth2
from fastapi.openapi.models import 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
from google.adk.tools.agent_simulator.agent_simulator_config import InjectionConfig as _ADK_InjectionConfig
from google.adk.tools.agent_simulator.agent_simulator_config import MockStrategy
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
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from google.adk.tools.mcp_tool.mcp_session_manager import 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
from google.genai.types import Content
from google.genai.types import ContextWindowCompressionConfig
from google.genai.types import File
from google.genai.types import GenerateContentConfig
from google.genai.types import Part
from google.genai.types import ProactivityConfig
from google.genai.types import RealtimeInputConfig
from google.genai.types import SessionResumptionConfig
from google.genai.types import 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: ...
