import * as i0 from "@angular/core"; /** * Capa 5 del estándar de manejo de errores: **el equipo se entera**. * * Las capas 1 a 4 sirven al usuario y al diagnóstico posterior (interceptor, * `interpretError`, `ValtechErrorService`, `val-empty-state`). Ninguna avisa a * nadie en el momento: un fallo que solo ocurre en el navegador no deja rastro * en ningún log del backend. * * Esta capa reporta a `POST /v2/telemetry/client-error`, que registra siempre y * alerta por Telegram cuando el fallo es crítico. * * **Cuándo usarla.** Solo para fallos graves: el usuario perdió datos o quedó * bloqueado. Una degradación que el usuario sortea va por `ValtechErrorService` * y nada más. Un canal que avisa de todo se termina ignorando, y ese es * exactamente el modo en que este mecanismo falla. * * Ejemplos que sí lo justifican: un guardado de progreso rechazado, una compra * cobrada que no se registró, un upload que el usuario cree hecho y no está. * * @example * ```ts * private telemetry = inject(ClientTelemetryService); * * await this.saveProgress().catch((err) => * this.telemetry.reportCritical(err, 'chessimals.adventure.saveProgress'), * ); * ``` * * Origen: el progreso del modo historia de Chessimals no se guardó durante * cuatro días sin que nadie se enterara, porque el único registro era un * `console.warn` en la consola del jugador. * Ver `docs/incidents/chessimals/2026-08-17-progreso-de-aventura-nunca-se-guardaba.md`. */ export declare class ClientTelemetryService { private readonly http; private readonly errors; /** * `apiUrl` sale de la config de auth: la app ya la declara una vez en * `provideValtechAuth`. Si la app no tiene auth (sitio público), el reporte * remoto queda inerte y solo funciona la capa local. */ private readonly authConfig; /** * Registra un fallo grave: observabilidad local (log + Analytics) y reporte * al backend, que decide si alerta. * * No muestra nada al usuario. Si además hace falta feedback visible, usar * `ValtechErrorService.handle()` con toast donde corresponda. * * Best-effort: si el reporte no sale, no se reintenta ni se propaga. Quien * llama ya estaba manejando un error; no se le agrega otro. * * @param err error capturado, en crudo. * @param context punto de fallo, ej. `'chessimals.adventure.saveProgress'`. * Mismo valor que se le pasa a `ValtechErrorService.handle()`. */ reportCritical(err: unknown, context: string): void; /** * Variante para errores ya normalizados o construidos a mano. */ reportRaw(err: unknown, context: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }