export type PublicEndpointGuardCode =
  | "URL_REJECTED"
  | "IP_LITERAL"
  | "BLOCKED_NAME"
  | "NON_PUBLIC_ADDRESS"
  | "REDIRECT_REFUSED"
  | "RESPONSE_TOO_LARGE"
  | "DEADLINE_EXCEEDED";
export type PublicEndpointGuardError = Error & {
  code: PublicEndpointGuardCode;
};
export type PublicAddress = { address: string; family: number };
export type PublicTarget = {
  url: URL;
  host: string;
  addresses: PublicAddress[];
};
export function isPublicAddress(ip: string): boolean;
export function resolvePublicTarget(
  rawUrl: string,
  options?: { lookup?: (host: string) => Promise<readonly PublicAddress[]> }
): Promise<PublicTarget>;
export function createPinnedFetch(options?: {
  maxResponseBytes?: number;
  deadlineMs?: number;
  resolve?: (rawUrl: string) => Promise<PublicTarget>;
  request?: typeof import("node:https").request;
}): typeof fetch;
