/**
 * useScrollableList Hook
 *
 * @deprecated Use `useVirtualList` instead - it provides the same functionality
 * plus overscan support for smoother scrolling and pinToEnd for log tailing.
 *
 * This hook is now a thin compatibility wrapper around `useVirtualList`.
 * It will be removed in a future major version.
 *
 * Migration example:
 * ```typescript
 * // Before (deprecated):
 * const { startIndex, endIndex } = useScrollableList({
 *   itemCount,
 *   maxVisibleItems,
 *   selectedIndex,
 * });
 *
 * // After:
 * const { startIndex, endIndex } = useVirtualList({
 *   itemCount,
 *   viewportHeight: maxVisibleItems,
 *   selectedIndex,
 *   overscan: 0, // Set to 0 to match old behavior, or use default 2 for smoother scrolling
 * });
 * ```
 *
 * @since v1.0.0
 * @deprecated v1.9.4 - Use `useVirtualList` instead
 */
export interface UseScrollableListOptions {
    /** Total number of items in the list */
    itemCount: number;
    /** Maximum number of visible items */
    maxVisibleItems: number;
    /** Currently selected/focused index */
    selectedIndex: number;
    /** Dependencies that should reset scroll position when changed */
    resetDeps?: unknown[];
}
export interface ScrollableListState {
    /** Current scroll offset (first visible item index) */
    scrollOffset: number;
    /** Calculated start index for visible items */
    startIndex: number;
    /** Calculated end index for visible items (exclusive) */
    endIndex: number;
    /** Number of items hidden above the visible window */
    hiddenAbove: number;
    /** Number of items hidden below the visible window */
    hiddenBelow: number;
    /** Whether there are items above the visible window */
    hasItemsAbove: boolean;
    /** Whether there are items below the visible window */
    hasItemsBelow: boolean;
}
/**
 * Pure function to calculate new scroll offset based on selection
 * Extracted for testability.
 */
export declare function calculateScrollOffset(prevOffset: number, selectedIndex: number, itemCount: number, maxVisibleItems: number): number;
/**
 * Pure function to calculate visible window state from scroll offset
 * Extracted for testability.
 */
export declare function calculateVisibleWindow(scrollOffset: number, itemCount: number, maxVisibleItems: number): Omit<ScrollableListState, 'scrollOffset'>;
/**
 * Hook for managing scrollable list state with item-by-item scrolling
 *
 * @deprecated Use `useVirtualList` instead for enhanced functionality.
 *
 * @example
 * ```tsx
 * const { startIndex, endIndex, hasItemsAbove, hasItemsBelow } = useScrollableList({
 *   itemCount: items.length,
 *   maxVisibleItems: 10,
 *   selectedIndex,
 *   resetDeps: [searchQuery],
 * });
 *
 * const visibleItems = items.slice(startIndex, endIndex);
 * ```
 */
export declare function useScrollableList({ itemCount, maxVisibleItems, selectedIndex, resetDeps }: UseScrollableListOptions): ScrollableListState;
//# sourceMappingURL=useScrollableList.d.ts.map