import { z } from "zod"; /** * SSRF-guarded HTTP fetch with optional disk cache. Wraps the existing * `cachedFetch` primitive plus `validateTargetHost` so private/reserved IPs * are rejected on every redirect hop. * * Returned as a tool to the orchestrator — typically the first call the * model makes when auditing a domain. */ export declare const fetchPageTool: { name: string; description: string; inputSchema: z.ZodType<{ url: string; timeoutMs?: number | undefined; cacheDir?: string | undefined; cacheTtlMs?: number | undefined; }, unknown, z.core.$ZodTypeInternals<{ url: string; timeoutMs?: number | undefined; cacheDir?: string | undefined; cacheTtlMs?: number | undefined; }, unknown>>; outputSchema: z.ZodType<{ url: string; status: number; headers: Record; pageId: string; bodyExcerpt: string; fromCache: boolean; bodyBytes: number; }, unknown, z.core.$ZodTypeInternals<{ url: string; status: number; headers: Record; pageId: string; bodyExcerpt: string; fromCache: boolean; bodyBytes: number; }, unknown>>; toAiTool(): import("ai").Tool<{ url: string; timeoutMs?: number | undefined; cacheDir?: string | undefined; cacheTtlMs?: number | undefined; }, import("./types.js").ToolResult<{ url: string; status: number; headers: Record; pageId: string; bodyExcerpt: string; fromCache: boolean; bodyBytes: number; }>>; run(input: { url: string; timeoutMs?: number | undefined; cacheDir?: string | undefined; cacheTtlMs?: number | undefined; }, ctx?: import("./types.js").ToolExecuteContext): Promise; pageId: string; bodyExcerpt: string; fromCache: boolean; bodyBytes: number; }>>; }; //# sourceMappingURL=fetch-page.d.ts.map