/** * A mutable IP allowlist/blocklist for IPv4 and IPv6 addresses, ranges, and subnets. * * IPv4-mapped IPv6 addresses such as `::ffff:192.0.2.1` are treated as * equivalent to plain IPv4 addresses such as `192.0.2.1`. */ export declare class IPRangeList { private intervals; /** * Returns a snapshot of the currently stored canonical merged ranges. */ get ranges(): { start: string; end: string; }[]; /** * Adds one IPv4 or IPv6 address and returns the same list. */ addAddress(address: string): this; /** * Adds a CIDR subnet and returns the same list. * * Host bits are normalized to the subnet boundary. */ addSubnet(subnet: string): this; /** * Adds the inclusive range between two addresses and returns the same list. */ addRange(start: string, end: string): this; /** * Returns whether an address belongs to a stored range. * * Invalid candidates return false. */ contains(address: string): boolean; /** * Alias for {@link contains}, matching Node.js `net.BlockList` terminology. */ check(address: string): boolean; private addInterval; }