/**
 * 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;
