import { type LookupFn, type SsrFPolicy } from "./ssrf.js";
type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
export type GuardedFetchOptions = {
    url: string;
    fetchImpl?: FetchLike;
    init?: RequestInit;
    maxRedirects?: number;
    timeoutMs?: number;
    signal?: AbortSignal;
    policy?: SsrFPolicy;
    lookupFn?: LookupFn;
    pinDns?: boolean;
    proxy?: "env";
    auditContext?: string;
    dispatcherPolicy?: unknown;
};
export type GuardedFetchResult = {
    response: Response;
    finalUrl: string;
    release: () => Promise<void>;
};
export type EnvHttpProxyAgentOptions = {
    httpProxy?: string;
    httpsProxy?: string;
};
export declare function resolveEnvHttpProxyAgentOptions(env?: NodeJS.ProcessEnv): EnvHttpProxyAgentOptions | undefined;
export declare function fetchWithSsrFGuard(params: GuardedFetchOptions): Promise<GuardedFetchResult>;
export {};
