/** * Binary search to find the item at a given scroll offset */ export declare function binarySearch(offsets: number[], target: number, low?: number, high?: number): number; /** * Calculate range with overscan */ export declare function getOverscanRange(startIndex: number, endIndex: number, overscan: number, itemCount: number): { start: number; end: number; }; /** * Debounce function */ export declare function debounce any>(fn: T, delay: number): (...args: Parameters) => void; /** * Throttle function */ export declare function throttle any>(fn: T, delay: number): (...args: Parameters) => void; /** * Request animation frame wrapper */ export declare function requestAnimationFrameWithFallback(callback: FrameRequestCallback): number; /** * Cancel animation frame with fallback */ export declare function cancelAnimationFrameWithFallback(id: number): void; /** * Check if an element is visible in viewport */ export declare function isElementInViewport(element: HTMLElement, container: HTMLElement): boolean; /** * Get scroll velocity */ export declare function calculateScrollVelocity(currentOffset: number, previousOffset: number, deltaTime: number): number; /** * Clamp a value between min and max */ export declare function clamp(value: number, min: number, max: number): number; /** * Check if ResizeObserver is supported */ export declare function isResizeObserverSupported(): boolean; /** * Check if IntersectionObserver is supported */ export declare function isIntersectionObserverSupported(): boolean; /** * Smooth scroll to position */ export declare function smoothScroll(element: HTMLElement, targetScroll: number, duration?: number): Promise; /** * Create a unique key from index and item */ export declare function createItemKey(index: number, item: T, keyGetter?: (index: number, item: T) => string | number): string | number; /** * Log virtualization stats (for debugging) */ export declare function logVirtualizationStats(stats: { itemCount: number; visibleCount: number; renderedCount: number; scrollOffset: number; totalSize: number; }): void; //# sourceMappingURL=helpers.d.ts.map