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<boolean, IIpMatchOptions> {
    /**
     * 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;
}
