/** * Base watchdog class for browser monitoring components. * * Watchdogs monitor browser state and emit events based on changes. * They automatically register event handlers based on method names. * * Handler methods should be named: on_EventTypeName(event: EventTypeName) */ import { EventEmitter } from 'events'; import { BrowserSession } from '../session'; export interface WatchdogConfig { checkIntervalSeconds?: number; enabled?: boolean; } export declare abstract class BaseWatchdog extends EventEmitter { protected browserSession: BrowserSession; protected config: WatchdogConfig; private handlers; private monitoringTask?; protected isAttached: boolean; static LISTENS_TO: any[]; static EMITS: any[]; constructor(browserSession: BrowserSession, config?: WatchdogConfig); /** * Attach watchdog to its browser session and start monitoring. * This method handles event listener registration. */ attachToSession(): void; /** * Detach watchdog from session and cleanup. */ detachFromSession(): void; /** * Find all handler methods (on_EventName pattern). */ private findEventHandlers; /** * Attach a single event handler to the browser session. */ private attachHandlerToSession; /** * Attempt basic recovery when handler fails. */ protected attemptRecovery(error: Error): Promise; /** * Start periodic monitoring if supported by the watchdog. */ protected startMonitoring(): void; /** * Stop periodic monitoring. */ protected stopMonitoring(): void; /** * Get logger for this watchdog. */ protected get logger(): import("winston").Logger; /** * Called when watchdog is attached to session. * Override in subclasses to perform initialization. */ protected onAttached(): void; /** * Called when watchdog is detached from session. * Override in subclasses to perform cleanup. */ protected onDetached(): void; /** * Called periodically during monitoring. * Override in subclasses to perform health checks. */ protected onMonitoringTick(): Promise; /** * Cleanup resources when watchdog is destroyed. */ destroy(): void; } //# sourceMappingURL=base.d.ts.map