/** 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 ``/`