/** * Coarse, dependency-free User-Agent → `{ browser, os }` derivation, run * server-side at ingestion (ADR 0041). The raw User-Agent is **never stored** — it * is consumed for the visitor hash and reduced here to two low-cardinality, * non-PII family labels used only to segment the performance panels (ADR 0003). * * Intentionally coarse: no version numbers, no device model, no exhaustive bot * matrix. The goal is a handful of stable buckets ("is my scene slower on Safari * / iOS?"), not fingerprinting. Anything unrecognized collapses to `"Other"`. */ /** Low-cardinality browser + OS families derived from a User-Agent. */ export interface ClientInfo { /** Coarse browser family, e.g. `"Chrome"`, `"Safari"`, `"Other"`. */ browser: string; /** Coarse OS family, e.g. `"Windows"`, `"iOS"`, `"Other"`. */ os: string; } /** * Derive coarse `{ browser, os }` from a User-Agent header. An empty/missing UA * yields `{ browser: "Other", os: "Other" }`. The input string is not retained. */ export declare function parseClientInfo(ua: string | undefined): ClientInfo; //# sourceMappingURL=userAgent.d.ts.map