import type { PortableTool } from "../portable-tool.js";
import type { WebSearchBackend, WebSearchOutput, WebSearchResult } from "../../runtime/ports/web-search-contracts.js";
export declare const WEB_SEARCH_TOOL_NAME: "web_search";
export interface WebSearchToolParams {
    query: string;
    allowedDomains?: string[];
    blockedDomains?: string[];
    freshness?: "day" | "week" | "month" | "year" | "any";
}
export declare const WEB_SEARCH_TOOL_SCHEMA: {
    readonly type: "object";
    readonly properties: {
        readonly query: {
            readonly type: "string";
            readonly description: "Search query string. Be specific and concise for best results.";
        };
        readonly allowedDomains: {
            readonly type: "array";
            readonly items: {
                readonly type: "string";
            };
            readonly description: string;
        };
        readonly blockedDomains: {
            readonly type: "array";
            readonly items: {
                readonly type: "string";
            };
            readonly description: "Exclude results from these domains. Cannot be used together with allowedDomains.";
        };
        readonly freshness: {
            readonly type: "string";
            readonly enum: readonly ["day", "week", "month", "year", "any"];
            readonly description: string;
        };
    };
    readonly required: readonly ["query"];
};
export type { WebSearchOutput, WebSearchResult };
/**
 * Host-provided web search backend.
 * The host may use any search engine (SearXNG, Brave, Tavily, etc.).
 */
export interface WebSearchToolDeps extends WebSearchBackend {
}
export declare function createWebSearchTool(deps: WebSearchToolDeps): PortableTool<WebSearchToolParams>;
