import type { ToolDefinition } from "../types.js";
interface WebFetchInput {
    url: string;
    format?: "text" | "raw";
    max_chars?: number;
}
export declare const webFetchTool: ToolDefinition<WebFetchInput, string>;
/** Throw if the URL isn't http(s) or resolves to a private/loopback host. */
export declare function assertAllowedUrl(u: URL): void;
/**
 * fetch() with manual redirect handling. Validates the host of EACH hop
 * (initial + every Location) against the private-IP blocklist before
 * issuing the request — closing the SSRF redirect bypass. Caps at
 * MAX_REDIRECTS to avoid loops.
 */
export declare function fetchFollowingSafeRedirects(startUrl: string, signal: AbortSignal | undefined): Promise<Response>;
export declare function isPrivateHost(host: string): boolean;
export declare function htmlToText(html: string): string;
export {};
//# sourceMappingURL=web_fetch.d.ts.map