/** * Global Scroll Manager * Singleton that manages scroll events for all lazy-render components * Uses only 2 event listeners for ALL components (scroll + resize) */ export interface ScrollManagerConfig { scrollThrottle?: number; resizeDebounce?: number; } export interface ScrollListener { id: string; callback: (scrollTop: number, container: HTMLElement) => void; container: HTMLElement; } declare class GlobalScrollManagerClass { private static instance; private listeners; private scrollThrottle; private resizeDebounce; private scrollHandler; private resizeHandler; private isInitialized; private constructor(); static getInstance(config?: ScrollManagerConfig): GlobalScrollManagerClass; /** * Register a scroll listener * Only 2 event listeners total (scroll + resize) for ALL components */ register(id: string, container: HTMLElement, callback: (scrollTop: number, container: HTMLElement) => void): void; /** * Unregister a scroll listener */ unregister(id: string): void; /** * Initialize global event listeners * Only called once, regardless of how many components */ private initialize; /** * Cleanup event listeners */ private cleanup; /** * Throttle helper */ private throttle; /** * Debounce helper */ private debounce; /** * Get stats */ getStats(): { listenerCount: number; isInitialized: boolean; }; } export declare const GlobalScrollManager: GlobalScrollManagerClass; export default GlobalScrollManager; //# sourceMappingURL=GlobalScrollManager.d.ts.map