/** * Safely destroy an instance with error handling * Prevents crashes from failed cleanup operations * * @param {Record} instance - Object to destroy * @param {string} methodName - Method name to call (default: 'destroy') * @returns {boolean} True if destroyed successfully * * @example * safeDestroy(panzoomInstance); * safeDestroy(observer, 'disconnect'); */ export function safeDestroy(instance: Record, methodName?: string): boolean; /** * Add event listener with automatic cleanup on destroy * Prevents memory leaks from forgotten event listeners * * @param {EventTarget} target - Element to attach listener to * @param {string} event - Event name * @param {Function} handler - Event handler function * @param {object | boolean} options - Event listener options * @returns {Function} Cleanup function to remove listener * * @example * // Automatically cleaned up on destroy * addManagedListener(window, 'resize', handleResize); * * // Manual cleanup if needed * const cleanup = addManagedListener(button, 'click', handleClick); * cleanup(); // Remove listener manually */ export function addManagedListener(target: EventTarget, event: string, handler: Function, options: object | boolean): Function; /** * Add event listener with automatic cleanup on modal close * Used for focus traps and modal-specific interactions * * @param {EventTarget} target - Element to attach listener to * @param {string} event - Event name * @param {Function} handler - Event handler function * @param {object | boolean} options - Event listener options * @returns {Function} Cleanup function to remove listener */ export function addModalListener(target: EventTarget, event: string, handler: Function, options: object | boolean): Function; /** * Register a timeout with automatic cleanup * @param {import('./config.js').DiagViewState} state - Instance state * @param {Function} fn - Callback function * @param {number} delay - Delay in ms * @returns {ReturnType} Timeout ID */ export function registerTimeout(state: import("./config.js").DiagViewState, fn: Function, delay: number): ReturnType; /** * Register a RequestAnimationFrame with automatic cleanup * @param {import('./config.js').DiagViewState} state - Instance state * @param {FrameRequestCallback} fn - Callback function * @returns {number} RAF ID */ export function registerRAF(state: import("./config.js").DiagViewState, fn: FrameRequestCallback): number; /** * Clear all pending async tasks for an instance * @param {import('./config.js').DiagViewState} state - Instance state */ export function clearAsyncTasks(state: import("./config.js").DiagViewState): void; export { addModalCleanupFunction }; import { addModalCleanupFunction } from "./config.js"; //# sourceMappingURL=lifecycle.d.ts.map