/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { BaseDeclarativeTool, type ToolInvocation, type ToolResult } from './tools.js';
import { type CallableTool } from '@google/genai';
import type { Config } from '../config/config.js';
type ToolParams = Record<string, unknown>;
export declare class DiscoveredMCPTool extends BaseDeclarativeTool<ToolParams, ToolResult> {
    private readonly mcpTool;
    readonly serverName: string;
    readonly serverToolName: string;
    readonly parameterSchema: unknown;
    readonly trust?: boolean | undefined;
    private readonly cliConfig?;
    constructor(mcpTool: CallableTool, serverName: string, serverToolName: string, description: string, parameterSchema: unknown, trust?: boolean | undefined, nameOverride?: string, cliConfig?: Config | undefined);
    /**
     * @deprecated This method is no longer used as MCP tools now receive unique names during creation.
     * The unique name is formed as generateMcpToolName(serverName, serverToolName) in the discovery process.
     */
    asFullyQualifiedTool(): DiscoveredMCPTool;
    protected createInvocation(params: ToolParams): ToolInvocation<ToolParams, ToolResult>;
}
/** Visible for testing */
export declare function generateValidName(name: string): string;
/**
 * Generates a valid MCP tool name that includes server and tool information
 * while ensuring it meets API requirements.
 */
export declare function generateMcpToolName(serverName: string, toolName: string): string;
export {};
