/** * Route53 DNS-name canonicalisation shared by the drift probes (D9) and the * record-collision pre-flight (D5). Route53 stores record and zone names * lowercased, fully qualified (trailing dot) and with non-alphanumeric * characters octal-escaped (a wildcard label is returned as `\052`), while * CloudFormation physical ids and template `Name` properties carry whatever * the operator wrote (`*.example.com`, mixed case, dot-optional). Comparing * the two shapes raw silently mismatches, and a silent mismatch here reads a * live record as absent — the confirmed-deleted direction — so every * comparison in both modules MUST go through `canonicalDnsName`. */ /** * Canonical comparison form: octal escapes decoded, lowercased, trailing dot * enforced. `\052.EXAMPLE.com` and `*.example.com.` both canonicalise to * `*.example.com.`. */ export declare function canonicalDnsName(name: string): string; /** * The form safe to hand Route53 as `StartRecordName`: canonical, with any * wildcard asterisk re-escaped to the documented `\052` stored form so the * listing starts exactly at the wildcard record rather than at an * API-interpreted position. */ export declare function listStartName(name: string): string; /** * Every zone name that could legally hold `recordName` in this account: the * name itself and each parent suffix down to the TLD, canonicalised. A record * `www.dev.example.com` can live in `dev.example.com` OR in `example.com` * (masked by delegation — the H2 audit lesson), so callers must consult ALL * candidates, never just the longest match. Labels containing a wildcard are * skipped as zone candidates (a hosted zone cannot be named with one). */ export declare function candidateZoneNames(recordName: string): string[]; /** Strip the `/hostedzone/` prefix Route53 APIs variously include on zone ids. */ export declare function bareHostedZoneId(id: string): string;