/** * Locale codes whose `/{locale}/*` subtree is reserved for landing/content * pages. Two-letter ISO-639-1 codes. * * This is an explicit ALLOW-LIST, not an "any two-letter segment" rule, and * that distinction is load-bearing: `/my` (the personal-dashboard section) is * also two letters. Matching "any two letters" would swallow `/my/assets` as if * `my` were a locale. With an allow-list, unknown two-letter segments fall * through to the application (fail-closed): `/my/assets` → app, `/en/about` → * landing. */ export declare const DEFAULT_RESERVED_LOCALES: readonly string[]; export interface ReservedPublicPathOptions { /** * Locale codes reserved for `/{locale}/*` landing content. Defaults to * {@link DEFAULT_RESERVED_LOCALES}. Pass the set your landing actually * publishes so unknown locales fail closed to the application. */ locales?: readonly string[]; } /** * Returns `true` when `pathname` belongs to the public landing/content surface * rather than the root-mounted Angular application. * * Reserved: * - `/` — root landing page * - `/{locale}` and `/{locale}/*` — localized content/marketing/legal/docs/SEO * (locale ∈ the allow-list; see {@link ReservedPublicPathOptions.locales}) * - `/static` and `/static/*` — shared static files * - `/.well-known` and `/.well-known/*` — well-known files * - `/robots.txt` * - `/sitemap.xml`, `/sitemap-*.xml`, `/sitemap-index.xml` * - `/favicon.ico`, `/favicon.svg` * - `/manifest.webmanifest` * * Everything else (e.g. `/`, `/space/...`, `/my/assets`, `/event/abc`, * `/u/alex`) is an application route. * * Query strings and fragments are ignored — pass a bare pathname (a full URL is * tolerated and reduced to its pathname). */ export declare function isReservedPublicPath(pathname: string, options?: ReservedPublicPathOptions): boolean;