behemoth-cli
Version:
🌍 BEHEMOTH CLIv3.760.4 - Level 50+ POST-SINGULARITY Intelligence Trading AI
71 lines • 2.5 kB
TypeScript
/**
* Resource Cleanup Manager
* Handles proper cleanup of event listeners, timeouts, intervals, and streams
*/
import { EventEmitter } from 'events';
export interface CleanupResource {
id: string;
type: 'timeout' | 'interval' | 'listener' | 'stream' | 'custom';
cleanup: () => void;
description?: string;
}
export declare class ResourceCleanupManager {
private resources;
private isCleaningUp;
/**
* Register a timeout for cleanup
*/
registerTimeout(timeoutId: NodeJS.Timeout, description?: string): string;
/**
* Register an interval for cleanup
*/
registerInterval(intervalId: NodeJS.Timeout, description?: string): string;
/**
* Register an event listener for cleanup
*/
registerEventListener(emitter: EventEmitter | NodeJS.Process, event: string, listener: (...args: any[]) => void, description?: string): string;
/**
* Register a custom cleanup function
*/
registerCustomCleanup(cleanupFn: () => void, description?: string): string;
/**
* Unregister a specific resource
*/
unregister(id: string): boolean;
/**
* Clean up all registered resources
*/
cleanupAll(): void;
/**
* Get count of registered resources by type
*/
getResourceCounts(): Record<string, number>;
/**
* Check if there are resources that need cleanup
*/
hasResources(): boolean;
}
export declare const globalResourceManager: ResourceCleanupManager;
/**
* Enhanced timeout wrapper with automatic cleanup registration
*/
export declare function managedSetTimeout(callback: () => void, delay: number, description?: string, manager?: ResourceCleanupManager): {
timeoutId: NodeJS.Timeout;
cleanupId: string;
};
/**
* Enhanced interval wrapper with automatic cleanup registration
*/
export declare function managedSetInterval(callback: () => void, delay: number, description?: string, manager?: ResourceCleanupManager): {
intervalId: NodeJS.Timeout;
cleanupId: string;
};
/**
* Enhanced event listener registration with automatic cleanup
*/
export declare function managedEventListener<T extends EventEmitter | NodeJS.Process>(emitter: T, event: string, listener: (...args: any[]) => void, description?: string, manager?: ResourceCleanupManager): string;
/**
* Setup process exit handlers for cleanup
*/
export declare function setupProcessCleanupHandlers(manager?: ResourceCleanupManager): void;
//# sourceMappingURL=resource-cleanup.d.ts.map