import { ReactiveController, ReactiveControllerHost } from 'lit'; export interface InfiniteScrollControllerConfig { /** Callback when load-more conditions met */ onLoadMore: () => void; /** Distance from bottom to trigger load (default: 100px) */ scrollThreshold?: number; /** Debounce delay for scroll events (default: 150ms) */ debounceMs?: number; } /** * Reactive controller for infinite scroll functionality. * Manages scroll detection, debouncing, and pagination state. */ export declare class InfiniteScrollController implements ReactiveController { #private; constructor(host: ReactiveControllerHost, config: InfiniteScrollControllerConfig); hostConnected(): void; hostDisconnected(): void; /** Attach scroll listener to container element */ attach(container: HTMLElement): void; /** Remove scroll listener from current container */ detach(): void; /** Reset pagination state */ reset(): void; /** Set loading state (call when starting async load) */ setLoadingState(isLoading: boolean): void; /** Set whether more results available (false = end of list) */ setHasMore(hasMore: boolean): void; /** Current loading state */ get isLoadingMore(): boolean; /** Whether more results available */ get hasMoreResults(): boolean; }