import type { ToolToConvert } from './tool-builder/builder.js';
import type { VercelTool } from './types.js';
/**
 * Checks if a tool is a Mastra Tool, using both instanceof and marker.
 * The marker fallback handles environments like Vite SSR where the same
 * module may be loaded multiple times, causing instanceof to fail.
 */
export declare function isMastraTool(tool: unknown): boolean;
/**
 * Checks if a tool is a Vercel Tool (AI SDK tool)
 * @param tool - The tool to check
 * @returns True if the tool is a Vercel Tool, false otherwise
 */
export declare function isVercelTool(tool?: ToolToConvert): tool is VercelTool;
type ProviderTool = {
    type: 'provider-defined' | 'provider';
    id: string;
    args?: Record<string, unknown>;
    inputSchema?: unknown;
    outputSchema?: unknown;
    requestContextSchema?: unknown;
};
/**
 * Checks if a tool is a provider-defined tool from the AI SDK.
 * Provider tools (like google.tools.googleSearch(), openai.tools.webSearch()) have:
 * - type: "provider-defined" (AI SDK v5) or "provider" (AI SDK v6)
 * - id: in format 'provider.tool_name' (e.g., 'google.google_search')
 *
 * These tools have a lazy `inputSchema` function that returns an AI SDK Schema
 * (not a Zod schema), so they require special handling during serialization.
 */
export declare function isProviderDefinedTool(tool: unknown): tool is ProviderTool;
/**
 * Alias for callers that prefer the shorter provider-tool terminology.
 */
export declare const isProviderTool: typeof isProviderDefinedTool;
/**
 * Extracts the model-facing tool name from a provider tool id.
 * e.g. 'openai.web_search' -> 'web_search'
 */
export declare function getProviderToolName(providerId: string): string;
export {};
//# sourceMappingURL=toolchecks.d.ts.map