import type { IMatcher, IIpMatchOptions } from '../types.js'; /** * IpMatcher provides comprehensive IP address matching functionality * Supporting exact matches, CIDR notation, ranges, and wildcards */ export declare class IpMatcher implements IMatcher { /** * Check if a value is a valid IPv4 address */ static isValidIpv4(ip: string): boolean; /** * Check if a value is a valid IPv6 address (simplified check) */ static isValidIpv6(ip: string): boolean; /** * Convert IP address to numeric value for comparison */ private static ipToNumber; /** * Match an IP against a CIDR notation pattern */ static matchCidr(cidr: string, ip: string): boolean; /** * Match an IP against a wildcard pattern */ static matchWildcard(pattern: string, ip: string): boolean; /** * Match an IP against a range (e.g., "192.168.1.1-192.168.1.100") */ static matchRange(range: string, ip: string): boolean; /** * Match an IP pattern against an IP address * Supports multiple formats: * - Exact match: "192.168.1.1" * - CIDR: "192.168.1.0/24" * - Wildcard: "192.168.1.*" * - Range: "192.168.1.1-192.168.1.100" */ static match(pattern: string, ip: string, options?: IIpMatchOptions): boolean; /** * Check if an IP is authorized based on allow and block lists */ static isAuthorized(ip: string, allowList?: string[], blockList?: string[]): boolean; /** * Calculate the specificity of an IP pattern * Higher values mean more specific patterns */ static calculateSpecificity(pattern: string): number; /** * Instance method for interface compliance */ match(pattern: string, ip: string, options?: IIpMatchOptions): boolean; }