import type { IncomingMessage } from 'node:http';
/** Normalize IP for comparison (strip zone id, brackets, IPv4-mapped prefix). */
export declare function normalizeIpAddress(ip: string | undefined): string | undefined;
export declare function isLoopbackIpAddress(ip: string | undefined): boolean;
/** Match an IP against a CIDR or exact address string. */
export declare function isIpInCidr(ip: string, cidr: string): boolean;
export declare function isTrustedProxyAddress(ip: string | undefined, trustedProxies?: string[]): boolean;
export declare function resolveClientIp(params: {
    remoteAddr?: string;
    forwardedFor?: string;
    realIp?: string;
    trustedProxies?: string[];
    /** Default false: only trust X-Real-IP when explicitly enabled. */
    allowRealIpFallback?: boolean;
}): string | undefined;
export declare function resolveRequestClientIp(req?: IncomingMessage, trustedProxies?: string[], allowRealIpFallback?: boolean): string | undefined;
export declare function resolveClientIpFromRequest(params: {
    remoteAddress?: string;
    getHeader: (name: string) => string | undefined;
    trustedProxies?: string[];
    allowRealIpFallback?: boolean;
}): string;
