/** Console methods we can forward, in increasing severity. */ type ConsoleLevel = 'debug' | 'log' | 'info' | 'warn' | 'error'; /** * Authenticated end-user identity passed to {@link setUser}. `id` is required; the * label/role are optional. Numbers are accepted for `id` and stringified. */ interface ObservUser { /** Stable application user id → `enduser.id`. */ id: string | number; /** Optional role/permission tag → `enduser.role`. */ role?: string; /** Optional display name → `enduser.name` (avoid storing raw PII if sensitive). */ name?: string; } /** Attach the authenticated user to all subsequent telemetry. */ declare function setUser(user: ObservUser): void; /** Clear the authenticated identity (call on sign-out). The pseudo id persists. */ declare function clearUser(): void; /** * PII masking / privacy controls for the heavy rrweb replay flux * (Epic 4 — Confidentialité, story 4.1). * * SAFE-BY-DEFAULT: omitting `privacy` (or any field) masks all input values in * the replay. Architecture D7 / PRD Open Q5 require masking before any real * data. Three conventional CSS classes let a host page mark sensitive nodes * declaratively; only override a class name if it collides with the host's. */ interface PrivacyOptions { /** * Mask the value of every ``/`