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

import ssl
from collections.abc import Callable, Mapping
from typing import Any, Literal, Self, TextIO

from fastapi.openapi.models import Operation
from google.adk.agents.active_streaming_tool import ActiveStreamingTool as _ADK_ActiveStreamingTool
from google.adk.agents.live_request_queue import LiveRequestQueue
from google.adk.agents.readonly_context import ReadonlyContext
from google.adk.auth.auth_credential import AuthCredential, ServiceAccount
from google.adk.auth.auth_schemes import AuthScheme
from google.adk.auth.auth_tool import AuthConfig
from google.adk.tools._google_credentials import BaseGoogleCredentialsConfig
from google.adk.tools.agent_tool import AgentTool as _ADK_AgentTool
from google.adk.tools.apihub_tool.apihub_toolset import APIHubToolset as _ADK_APIHubToolset
from google.adk.tools.apihub_tool.clients.apihub_client import APIHubClient
from google.adk.tools.application_integration_tool.application_integration_toolset import (
    ApplicationIntegrationToolset as _ADK_ApplicationIntegrationToolset,
)
from google.adk.tools.application_integration_tool.integration_connector_tool import (
    IntegrationConnectorTool as _ADK_IntegrationConnectorTool,
)
from google.adk.tools.base_authenticated_tool import BaseAuthenticatedTool as _ADK_BaseAuthenticatedTool
from google.adk.tools.base_tool import BaseTool as _ADK_BaseTool
from google.adk.tools.base_toolset import BaseToolset as _ADK_BaseToolset
from google.adk.tools.base_toolset import ToolPredicate
from google.adk.tools.bigquery.bigquery_credentials import BigQueryCredentialsConfig
from google.adk.tools.bigquery.bigquery_toolset import BigQueryToolset as _ADK_BigQueryToolset
from google.adk.tools.bigquery.config import BigQueryToolConfig
from google.adk.tools.bigtable.bigtable_credentials import BigtableCredentialsConfig
from google.adk.tools.bigtable.bigtable_toolset import BigtableToolset as _ADK_BigtableToolset
from google.adk.tools.bigtable.settings import BigtableToolSettings
from google.adk.tools.computer_use.computer_use_tool import ComputerUseTool as _ADK_ComputerUseTool
from google.adk.tools.computer_use.computer_use_toolset import ComputerUseToolset as _ADK_ComputerUseToolset
from google.adk.tools.data_agent.config import DataAgentToolConfig
from google.adk.tools.data_agent.credentials import DataAgentCredentialsConfig
from google.adk.tools.data_agent.data_agent_toolset import DataAgentToolset as _ADK_DataAgentToolset
from google.adk.tools.discovery_engine_search_tool import DiscoveryEngineSearchTool as _ADK_DiscoveryEngineSearchTool
from google.adk.tools.enterprise_search_tool import EnterpriseWebSearchTool as _ADK_EnterpriseWebSearchTool
from google.adk.tools.example_tool import ExampleTool as _ADK_ExampleTool
from google.adk.tools.function_tool import FunctionTool as _ADK_FunctionTool
from google.adk.tools.google_api_tool.google_api_tool import GoogleApiTool as _ADK_GoogleApiTool
from google.adk.tools.google_api_tool.google_api_toolset import GoogleApiToolset as _ADK_GoogleApiToolset
from google.adk.tools.google_api_tool.google_api_toolsets import CalendarToolset as _ADK_CalendarToolset
from google.adk.tools.google_api_tool.google_api_toolsets import DocsToolset as _ADK_DocsToolset
from google.adk.tools.google_api_tool.google_api_toolsets import GmailToolset as _ADK_GmailToolset
from google.adk.tools.google_api_tool.google_api_toolsets import SheetsToolset as _ADK_SheetsToolset
from google.adk.tools.google_api_tool.google_api_toolsets import SlidesToolset as _ADK_SlidesToolset
from google.adk.tools.google_api_tool.google_api_toolsets import YoutubeToolset as _ADK_YoutubeToolset
from google.adk.tools.google_maps_grounding_tool import GoogleMapsGroundingTool as _ADK_GoogleMapsGroundingTool
from google.adk.tools.google_search_agent_tool import GoogleSearchAgentTool as _ADK_GoogleSearchAgentTool
from google.adk.tools.google_search_tool import GoogleSearchTool as _ADK_GoogleSearchTool
from google.adk.tools.google_tool import GoogleTool as _ADK_GoogleTool
from google.adk.tools.load_artifacts_tool import LoadArtifactsTool as _ADK_LoadArtifactsTool
from google.adk.tools.load_mcp_resource_tool import LoadMcpResourceTool as _ADK_LoadMcpResourceTool
from google.adk.tools.load_memory_tool import LoadMemoryTool as _ADK_LoadMemoryTool
from google.adk.tools.long_running_tool import LongRunningFunctionTool as _ADK_LongRunningFunctionTool
from google.adk.tools.mcp_tool.mcp_tool import MCPTool as _ADK_MCPTool
from google.adk.tools.mcp_tool.mcp_tool import McpTool as _ADK_McpTool
from google.adk.tools.mcp_tool.mcp_tool import ProgressCallbackFactory
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset as _ADK_MCPToolset
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset as _ADK_McpToolset
from google.adk.tools.openapi_tool.openapi_spec_parser.openapi_toolset import OpenAPIToolset as _ADK_OpenAPIToolset
from google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool import RestApiTool as _ADK_RestApiTool
from google.adk.tools.preload_memory_tool import PreloadMemoryTool as _ADK_PreloadMemoryTool
from google.adk.tools.pubsub.config import PubSubToolConfig
from google.adk.tools.pubsub.pubsub_credentials import PubSubCredentialsConfig
from google.adk.tools.pubsub.pubsub_toolset import PubSubToolset as _ADK_PubSubToolset
from google.adk.tools.retrieval.base_retrieval_tool import BaseRetrievalTool as _ADK_BaseRetrievalTool
from google.adk.tools.set_model_response_tool import SetModelResponseTool as _ADK_SetModelResponseTool
from google.adk.tools.skill_toolset import LoadSkillResourceTool as _ADK_LoadSkillResourceTool
from google.adk.tools.skill_toolset import LoadSkillTool as _ADK_LoadSkillTool
from google.adk.tools.skill_toolset import SkillToolset as _ADK_SkillToolset
from google.adk.tools.spanner.settings import SpannerToolSettings
from google.adk.tools.spanner.spanner_credentials import SpannerCredentialsConfig
from google.adk.tools.spanner.spanner_toolset import SpannerToolset as _ADK_SpannerToolset
from google.adk.tools.toolbox_toolset import ToolboxToolset as _ADK_ToolboxToolset
from google.adk.tools.transfer_to_agent_tool import TransferToAgentTool as _ADK_TransferToAgentTool
from google.adk.tools.url_context_tool import UrlContextTool as _ADK_UrlContextTool
from google.adk.tools.vertex_ai_search_tool import VertexAiSearchTool as _ADK_VertexAiSearchTool
from google.genai.types import VertexAISearchDataStoreSpec
from mcp.shared.session import ProgressFnT
from pydantic import BaseModel

from adk_fluent._base import BuilderBase

class ActiveStreamingTool(BuilderBase):
    """Manages streaming tool related resources during invocation."""
    def __init__(self) -> None: ...
    def task(self, value: Any | None) -> Self: ...
    def stream(self, value: LiveRequestQueue | None) -> Self: ...
    def build(self) -> _ADK_ActiveStreamingTool: ...

class AgentTool(BuilderBase):
    """A tool that wraps an agent."""
    def __init__(self, agent: str) -> None: ...
    def skip_summarization(self, value: bool) -> Self: ...
    def include_plugins(self, value: bool) -> Self: ...
    def build(self) -> _ADK_AgentTool: ...

class APIHubToolset(BuilderBase):
    """APIHubTool generates tools from a given API Hub resource."""
    def __init__(self, apihub_resource_name: str) -> None: ...
    def access_token(self, value: str | None) -> Self: ...
    def service_account_json(self, value: str | None) -> Self: ...
    def name(self, value: str) -> Self: ...
    def description(self, value: str) -> Self: ...
    def lazy_load_spec(self, value: Any) -> Self: ...
    def auth_scheme(self, value: AuthScheme | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def apihub_client(self, value: APIHubClient | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def build(self) -> _ADK_APIHubToolset: ...

class ApplicationIntegrationToolset(BuilderBase):
    """ApplicationIntegrationToolset generates tools from a given Application."""
    def __init__(self, project: str, location: str) -> None: ...
    def connection_template_override(self, value: str | None) -> Self: ...
    def integration(self, value: str | None) -> Self: ...
    def triggers(self, value: list[str] | None) -> Self: ...
    def connection(self, value: str | None) -> Self: ...
    def entity_operations(self, value: str | None) -> Self: ...
    def actions(self, value: list[str] | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def tool_instructions(self, value: str | None) -> Self: ...
    def service_account_json(self, value: str | None) -> Self: ...
    def auth_scheme(self, value: AuthScheme | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def build(self) -> _ADK_ApplicationIntegrationToolset: ...

class IntegrationConnectorTool(BuilderBase):
    """A tool that wraps a RestApiTool to interact with a specific Application Integration endpoint."""
    def __init__(self, name: str, description: str, connection_name: str) -> None: ...
    def connection_host(self, value: str) -> Self: ...
    def connection_service_name(self, value: str) -> Self: ...
    def entity(self, value: str) -> Self: ...
    def operation(self, value: str) -> Self: ...
    def action(self, value: str) -> Self: ...
    def rest_api_tool(self, value: _ADK_RestApiTool) -> Self: ...
    def auth_scheme(self, value: AuthScheme | str | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | str | None) -> Self: ...
    def build(self) -> _ADK_IntegrationConnectorTool: ...

class BaseAuthenticatedTool(BuilderBase):
    """A base tool class that handles authentication before the actual tool logic."""
    def __init__(self, name: str, description: str) -> None: ...
    def auth_config(self, value: AuthConfig) -> Self: ...
    def response_for_auth_required(self, value: dict[str, Any] | str | None) -> Self: ...
    def build(self) -> _ADK_BaseAuthenticatedTool: ...

class BaseTool(BuilderBase):
    """The base class for all tools."""
    def __init__(self, name: str, description: str) -> None: ...
    def is_long_running(self, value: bool) -> Self: ...
    def custom_metadata(self, value: dict[str, Any] | None) -> Self: ...
    def build(self) -> _ADK_BaseTool: ...

class BaseToolset(BuilderBase):
    """Base class for toolset."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_BaseToolset: ...

class BigQueryToolset(BuilderBase):
    """BigQuery Toolset contains tools for interacting with BigQuery data and metadata."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def credentials_config(self, value: BigQueryCredentialsConfig | None) -> Self: ...
    def bigquery_tool_config(self, value: BigQueryToolConfig | None) -> Self: ...
    def build(self) -> _ADK_BigQueryToolset: ...

class BigtableToolset(BuilderBase):
    """Bigtable Toolset contains tools for interacting with Bigtable data and metadata."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def credentials_config(self, value: BigtableCredentialsConfig | None) -> Self: ...
    def bigtable_tool_settings(self, value: BigtableToolSettings | None) -> Self: ...
    def build(self) -> _ADK_BigtableToolset: ...

class ComputerUseTool(BuilderBase):
    """A tool that wraps computer control functions for use with LLMs."""
    def __init__(self, func: str, screen_size: str) -> None: ...
    def virtual_screen_size(self, value: tuple[int, int]) -> Self: ...
    def build(self) -> _ADK_ComputerUseTool: ...

class ComputerUseToolset(BuilderBase):
    """Fluent builder for ComputerUseToolset."""
    def __init__(self, computer: str) -> None: ...
    def build(self) -> _ADK_ComputerUseToolset: ...

class DataAgentToolset(BuilderBase):
    """Data Agent Toolset contains tools for interacting with data agents."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def credentials_config(self, value: DataAgentCredentialsConfig | None) -> Self: ...
    def data_agent_tool_config(self, value: DataAgentToolConfig | None) -> Self: ...
    def build(self) -> _ADK_DataAgentToolset: ...

class DiscoveryEngineSearchTool(BuilderBase):
    """Tool for searching the discovery engine."""
    def __init__(self) -> None: ...
    def data_store_id(self, value: str | None) -> Self: ...
    def data_store_specs(self, value: list[VertexAISearchDataStoreSpec] | None) -> Self: ...
    def search_engine_id(self, value: str | None) -> Self: ...
    def filter(self, value: str | None) -> Self: ...
    def max_results(self, value: int | None) -> Self: ...
    def build(self) -> _ADK_DiscoveryEngineSearchTool: ...

class EnterpriseWebSearchTool(BuilderBase):
    """A Gemini 2+ built-in tool using web grounding for Enterprise compliance."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_EnterpriseWebSearchTool: ...

class ExampleTool(BuilderBase):
    """A tool that adds (few-shot) examples to the LLM request."""
    def __init__(self, examples: str) -> None: ...
    def build(self) -> _ADK_ExampleTool: ...

class FunctionTool(BuilderBase):
    """A tool that wraps a user-defined Python function."""
    def __init__(self, func: str) -> None: ...
    def require_confirmation(self, value: bool | Callable[..., bool]) -> Self: ...
    def build(self) -> _ADK_FunctionTool: ...

class GoogleApiTool(BuilderBase):
    """Fluent builder for GoogleApiTool."""
    def __init__(self, rest_api_tool: str) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def additional_headers(self, value: dict[str, str] | None) -> Self: ...
    def build(self) -> _ADK_GoogleApiTool: ...

class GoogleApiToolset(BuilderBase):
    """Google API Toolset contains tools for interacting with Google APIs."""
    def __init__(self, api_name: str, api_version: str) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def additional_headers(self, value: dict[str, str] | None) -> Self: ...
    def build(self) -> _ADK_GoogleApiToolset: ...

class CalendarToolset(BuilderBase):
    """Auto-generated Calendar toolset based on Google Calendar API v3 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_CalendarToolset: ...

class DocsToolset(BuilderBase):
    """Auto-generated Docs toolset based on Google Docs API v1 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_DocsToolset: ...

class GmailToolset(BuilderBase):
    """Auto-generated Gmail toolset based on Google Gmail API v1 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_GmailToolset: ...

class SheetsToolset(BuilderBase):
    """Auto-generated Sheets toolset based on Google Sheets API v4 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_SheetsToolset: ...

class SlidesToolset(BuilderBase):
    """Auto-generated Slides toolset based on Google Slides API v1 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_SlidesToolset: ...

class YoutubeToolset(BuilderBase):
    """Auto-generated YouTube toolset based on YouTube API v3 spec exposed by Google API discovery API."""
    def __init__(self) -> None: ...
    def client_id(self, value: str | None) -> Self: ...
    def client_secret(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def service_account(self, value: ServiceAccount | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_YoutubeToolset: ...

class GoogleMapsGroundingTool(BuilderBase):
    """A built-in tool that is automatically invoked by Gemini 2 models to ground query results with Google Maps."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_GoogleMapsGroundingTool: ...

class GoogleSearchAgentTool(BuilderBase):
    """A tool that wraps a sub-agent that only uses google_search tool."""
    def __init__(self, agent: str) -> None: ...
    def build(self) -> _ADK_GoogleSearchAgentTool: ...

class GoogleSearchTool(BuilderBase):
    """A built-in tool that is automatically invoked by Gemini 2 models to retrieve search results from Google Search."""
    def __init__(self) -> None: ...
    def bypass_multi_tools_limit(self, value: bool) -> Self: ...
    def model(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_GoogleSearchTool: ...

class GoogleTool(BuilderBase):
    """GoogleTool class for tools that call Google APIs."""
    def __init__(self, func: str) -> None: ...
    def credentials_config(self, value: BaseGoogleCredentialsConfig | None) -> Self: ...
    def tool_settings(self, value: BaseModel | None) -> Self: ...
    def build(self) -> _ADK_GoogleTool: ...

class LoadArtifactsTool(BuilderBase):
    """A tool that loads the artifacts and adds them to the session."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_LoadArtifactsTool: ...

class LoadMcpResourceTool(BuilderBase):
    """A tool that loads the MCP resources and adds them to the session."""
    def __init__(self, mcp_toolset: str) -> None: ...
    def build(self) -> _ADK_LoadMcpResourceTool: ...

class LoadMemoryTool(BuilderBase):
    """A tool that loads the memory for the current user."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_LoadMemoryTool: ...

class LongRunningFunctionTool(BuilderBase):
    """A function tool that returns the result asynchronously."""
    def __init__(self, func: str) -> None: ...
    def build(self) -> _ADK_LongRunningFunctionTool: ...

class MCPTool(BuilderBase):
    """Deprecated name, use `McpTool` instead."""
    def __init__(self, args: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_MCPTool: ...

class McpTool(BuilderBase):
    """Turns an MCP Tool into an ADK Tool."""
    def __init__(self, mcp_tool: str, mcp_session_manager: str) -> None: ...
    def auth_scheme(self, value: AuthScheme | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def require_confirmation(self, value: bool | Callable[..., bool]) -> Self: ...
    def header_provider(self, value: Callable[[ReadonlyContext], dict[str, str]] | None) -> Self: ...
    def progress_callback(self, value: ProgressFnT | ProgressCallbackFactory | None) -> Self: ...
    def build(self) -> _ADK_McpTool: ...

class MCPToolset(BuilderBase):
    """Deprecated name, use `McpToolset` instead."""
    def __init__(self, args: str, kwargs: str) -> None: ...
    def build(self) -> _ADK_MCPToolset: ...

class McpToolset(BuilderBase):
    """Connects to a MCP Server, and retrieves MCP Tools into ADK Tools."""
    def __init__(self, connection_params: str) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def errlog(self, value: TextIO) -> Self: ...
    def auth_scheme(self, value: AuthScheme | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def require_confirmation(self, value: bool | Callable[..., bool]) -> Self: ...
    def header_provider(self, value: Callable[[ReadonlyContext], dict[str, str]] | None) -> Self: ...
    def progress_callback(self, value: ProgressFnT | ProgressCallbackFactory | None) -> Self: ...
    def use_mcp_resources(self, value: bool | None) -> Self: ...
    def build(self) -> _ADK_McpToolset: ...

class OpenAPIToolset(BuilderBase):
    """Class for parsing OpenAPI spec into a list of RestApiTool."""
    def __init__(self) -> None: ...
    def spec_dict(self, value: dict[str, Any] | None) -> Self: ...
    def spec_str(self, value: str | None) -> Self: ...
    def spec_str_type(self, value: Literal["json", "yaml"]) -> Self: ...
    def auth_scheme(self, value: AuthScheme | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | None) -> Self: ...
    def credential_key(self, value: str | None) -> Self: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def tool_name_prefix(self, value: str | None) -> Self: ...
    def ssl_verify(self, value: bool | str | ssl.SSLContext | None) -> Self: ...
    def header_provider(self, value: Callable[[ReadonlyContext], dict[str, str]] | None) -> Self: ...
    def build(self) -> _ADK_OpenAPIToolset: ...

class RestApiTool(BuilderBase):
    """A generic tool that interacts with a REST API."""
    def __init__(self, name: str, description: str, endpoint: str) -> None: ...
    def operation(self, value: Operation | str) -> Self: ...
    def auth_scheme(self, value: AuthScheme | str | None) -> Self: ...
    def auth_credential(self, value: AuthCredential | str | None) -> Self: ...
    def should_parse_operation(self, value: Any) -> Self: ...
    def ssl_verify(self, value: bool | str | ssl.SSLContext | None) -> Self: ...
    def header_provider(self, value: Callable[[ReadonlyContext], dict[str, str]] | None) -> Self: ...
    def credential_key(self, value: str | None) -> Self: ...
    def build(self) -> _ADK_RestApiTool: ...

class PreloadMemoryTool(BuilderBase):
    """A tool that preloads the memory for the current user."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_PreloadMemoryTool: ...

class PubSubToolset(BuilderBase):
    """Pub/Sub Toolset contains tools for interacting with Pub/Sub topics and subscriptions."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def credentials_config(self, value: PubSubCredentialsConfig | None) -> Self: ...
    def pubsub_tool_config(self, value: PubSubToolConfig | None) -> Self: ...
    def build(self) -> _ADK_PubSubToolset: ...

class BaseRetrievalTool(BuilderBase):
    """Fluent builder for BaseRetrievalTool."""
    def __init__(self, name: str, description: str) -> None: ...
    def is_long_running(self, value: bool) -> Self: ...
    def custom_metadata(self, value: dict[str, Any] | None) -> Self: ...
    def build(self) -> _ADK_BaseRetrievalTool: ...

class SetModelResponseTool(BuilderBase):
    """Internal tool used for output schema workaround."""
    def __init__(self, output_schema: str) -> None: ...
    def build(self) -> _ADK_SetModelResponseTool: ...

class LoadSkillResourceTool(BuilderBase):
    """Tool to load resources (references or assets) from a skill."""
    def __init__(self, toolset: str) -> None: ...
    def build(self) -> _ADK_LoadSkillResourceTool: ...

class LoadSkillTool(BuilderBase):
    """Tool to load a skill's instructions."""
    def __init__(self, toolset: str) -> None: ...
    def build(self) -> _ADK_LoadSkillTool: ...

class SkillToolset(BuilderBase):
    """A toolset for managing and interacting with agent skills."""
    def __init__(self, skills: str) -> None: ...
    def build(self) -> _ADK_SkillToolset: ...

class SpannerToolset(BuilderBase):
    """Spanner Toolset contains tools for interacting with Spanner data, database and table information."""
    def __init__(self) -> None: ...
    def tool_filter(self, value: ToolPredicate | list[str] | None) -> Self: ...
    def credentials_config(self, value: SpannerCredentialsConfig | None) -> Self: ...
    def spanner_tool_settings(self, value: SpannerToolSettings | None) -> Self: ...
    def build(self) -> _ADK_SpannerToolset: ...

class ToolboxToolset(BuilderBase):
    """A class that provides access to toolbox toolsets."""
    def __init__(self, server_url: str, kwargs: str) -> None: ...
    def toolset_name(self, value: str | None) -> Self: ...
    def tool_names(self, value: list[str] | None) -> Self: ...
    def auth_token_getters(self, value: Mapping[str, Callable[[], str]] | None) -> Self: ...
    def bound_params(self, value: Mapping[str, Callable[[], Any] | Any] | None) -> Self: ...
    def credentials(self, value: Any | None) -> Self: ...
    def additional_headers(self, value: Mapping[str, str] | None) -> Self: ...
    def build(self) -> _ADK_ToolboxToolset: ...

class TransferToAgentTool(BuilderBase):
    """A specialized FunctionTool for agent transfer with enum constraints."""
    def __init__(self, agent_names: str) -> None: ...
    def build(self) -> _ADK_TransferToAgentTool: ...

class UrlContextTool(BuilderBase):
    """A built-in tool that is automatically invoked by Gemini 2 models to retrieve content from the URLs and use that content to inform and shape its response."""
    def __init__(self) -> None: ...
    def build(self) -> _ADK_UrlContextTool: ...

class VertexAiSearchTool(BuilderBase):
    """A built-in tool using Vertex AI Search."""
    def __init__(self) -> None: ...
    def data_store_id(self, value: str | None) -> Self: ...
    def data_store_specs(self, value: list[VertexAISearchDataStoreSpec] | None) -> Self: ...
    def search_engine_id(self, value: str | None) -> Self: ...
    def filter(self, value: str | None) -> Self: ...
    def max_results(self, value: int | None) -> Self: ...
    def bypass_multi_tools_limit(self, value: bool) -> Self: ...
    def build(self) -> _ADK_VertexAiSearchTool: ...
