/** * Build the public multiaddrs of one hosted node from the host's current * understanding of its dialable surface. * * Pure so it's trivial to unit-test, and so `NatService` is the only place * that turns settings and routes into addresses. The addresses carry no * `/p2p/` suffix: the node appends its own (cadre-core `normalizeSelfAddrs`, * libp2p for announce addresses). The node's own LAN addresses are not here * either — libp2p reports those itself. */ import type { PortRoute } from './types.js'; export interface PublicAddressInput { ddnsHostname: string | null; /** Last known public IPv4; null when unknown. */ externalIp: string | null; cgnatDetected: boolean; tcp: PortRoute; ws: PortRoute | null; } export declare function buildPublicAddresses(input: PublicAddressInput): string[]; /** True for a hostname of dot-separated RFC 1123 labels, at most 253 characters. */ export declare function isDnsHostname(s: string): boolean; /** True for a dotted-quad IPv4 outside every non-public range above. */ export declare function isPublicIpv4(s: string): boolean;