import { OnDestroy, OnInit } from '@angular/core'; import { DebugLogEntry } from './types'; import * as i0 from "@angular/core"; export declare class DebugConsoleComponent implements OnInit, OnDestroy { /** Gate maestro: `false` (sin provider o `enabled: false`) → todo inerte. */ readonly enabled: boolean; readonly open: import("@angular/core").WritableSignal; readonly entries: import("@angular/core").WritableSignal; /** * Buffer plano (NO signal). `console.log` puede invocarse dentro de un * `effect()`/`computed()`; escribir el signal `entries` ahí mismo dispara * NG0600. Acumulamos en este array y volcamos al signal en un microtask, * fuera de todo contexto reactivo. */ private buffer; private flushScheduled; /** Referencias a los métodos originales para restaurarlos en destroy. */ private original; ngOnInit(): void; ngOnDestroy(): void; toggle(): void; clear(): void; copy(): Promise; /** Reemplaza los métodos de `console` para espejar cada llamada al buffer. */ private patchConsole; /** Restaura los métodos originales de `console`. */ private restoreConsole; /** * Agrega una entrada al buffer plano y programa el volcado al signal. * El volcado se difiere a un microtask: `console.log` puede llamarse desde * dentro de un `effect()`, y escribir un signal ahí lanzaría NG0600. */ private push; /** * Vuelca el buffer al signal `entries`, diferido y throttled. * * `entries.set()` dispara change-detection (el signal se lee en el template). * Si algo emite `console.*` en cada CD (p.ej. un binding que loguea), un flush * por microtask re-encola CD inmediatamente → loop infinito que congela el * navegador. El throttle por tiempo acota el peor caso a ~1 CD/ventana en vez * de 1 CD/microtask: el buffer absorbe todos los logs intermedios en una sola * escritura. Sigue fuera del contexto reactivo del `console.log` (evita NG0600). */ private scheduleFlush; /** Convierte cualquier argumento a una representación legible de una línea. */ private stringify; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }