/** * SSRF-style guard for browser navigation. * * Validates: protocol (http/https), no embedded credentials, no private IPs, * no cloud metadata endpoints, no API key exfiltration attempts. * * @param raw URL string from the agent * @param options.allowPrivateUrls When true, skip private-IP blocking (cloud metadata still blocked) */ export declare function assertBrowserUrlAllowed(raw: string, options?: { allowPrivateUrls?: boolean; }): void; /** * Check whether a URL targets an always-blocked cloud metadata endpoint. * Used for post-redirect verification — the navigate tool checks the *final* URL * after redirects, not just the initial one. * * Returns `true` (= blocked) for: * - Hostnames in {@link ALWAYS_BLOCKED_HOSTNAMES} * - IPs in {@link ALWAYS_BLOCKED_IPV4} * - Any address in the 169.254.0.0/16 link-local range */ export declare function isAlwaysBlockedUrl(raw: string): boolean; /** * Check whether a URL contains patterns that look like API keys or tokens. * Prevents prompt-injection exfiltration via browser navigation. */ export declare function containsApiKeyPattern(raw: string): boolean; /** * Validate a final URL after redirect — blocks private/internal targets * that the original URL may have redirected to. * * @returns Error message string if blocked, `undefined` if safe. */ export declare function checkPostRedirectUrl(finalUrl: string, options?: { allowPrivateUrls?: boolean; }): string | undefined;