ai-debug-local-mcp
Version:
🎯 ENHANCED AI GUIDANCE v4.1.2: Dramatically improved tool descriptions help AI users choose the right tools instead of 'close enough' options. Ultra-fast keyboard automation (10x speed), universal recording, multi-ecosystem debugging support, and compreh
80 lines • 2.55 kB
TypeScript
export interface TrackedListener {
target: EventTarget;
event: string;
handler: EventListenerOrEventListenerObject;
addedAt: Date;
id: string;
}
export interface PotentialLeak {
event: string;
count: number;
oldestListener: Date;
targets: string[];
}
/**
* EventListenerManager - Prevents memory leaks by tracking and managing event listeners
*
* Key Features:
* - Tracks all addEventListener calls for automatic cleanup
* - Prevents duplicate listeners
* - Graceful error handling during cleanup
* - Memory leak detection and reporting
* - Backward compatible with standard addEventListener
*/
export declare class EventListenerManager {
private listeners;
private listenerIdCounter;
/**
* Add an event listener with automatic tracking for cleanup
* Prevents duplicate listeners for the same target/event/handler combination
*/
addEventListener(target: EventTarget | null | undefined, event: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
/**
* Remove a specific event listener
*/
removeEventListener(target: EventTarget, event: string, handler: EventListenerOrEventListenerObject): boolean;
/**
* Remove all tracked event listeners
* Essential for preventing memory leaks
*/
cleanup(): void;
/**
* Get count of currently tracked listeners
*/
getActiveListenerCount(): number;
/**
* Get listeners filtered by event type
*/
getListenersByType(eventType: string): TrackedListener[];
/**
* Get detailed information about all tracked listeners
*/
getDetailedListenerInfo(): TrackedListener[];
/**
* Detect potential memory leaks based on listener patterns
*/
detectPotentialLeaks(): PotentialLeak[];
/**
* Generate unique ID for listener to prevent duplicates
*/
private generateListenerId;
/**
* Get description of event target for debugging
*/
private getTargetDescription;
/**
* Get debugging statistics
*/
getStats(): {
totalListeners: number;
eventTypes: Record<string, number>;
oldestListener: Date | null;
targetTypes: Record<string, number>;
};
}
/**
* Global instance for easy access across the application
* This can be used to ensure all event listeners are tracked globally
*/
export declare const globalEventListenerManager: EventListenerManager;
//# sourceMappingURL=event-listener-manager.d.ts.map