import type { PortableTool } from "../portable-tool.js";
import type { WebSearchBackend } from "../../runtime/ports/web-search-contracts.js";
import type { WebFetchToolDeps } from "./web-fetch-tool.js";
export declare const WEB_ANSWER_TOOL_NAME: "web_answer";
export interface WebAnswerToolParams {
    query: string;
}
export declare const WEB_ANSWER_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly query: {
            readonly type: "string";
            readonly description: "The question to answer using live web search. Be specific and concise.";
        };
    };
    readonly required: readonly ["query"];
};
export interface WebAnswerToolDeps {
    search: WebSearchBackend["search"];
    fetchUrl: WebFetchToolDeps["fetchUrl"];
    /**
     * host 用指定档位 LLM 生成文本(内部 resolveClientForPurpose + transport.stream 累加)。
     * 无可用模型时返回 null —— 工具据此 fail-loud 降级,不静默编造。
     */
    generate(purpose: "smallModel" | "textGeneration", prompt: string, signal: AbortSignal): Promise<string | null>;
}
export declare function createWebAnswerTool(deps: WebAnswerToolDeps): PortableTool<WebAnswerToolParams>;
