/// <reference types="node" />
import { ScrollableWindow } from './scrollableWindow';
import { ScrollPosition } from './scrollPosition';
import { DebouncedFunc } from 'lodash';
import { EventEmitter } from '@wix/bex-core/events';
import { PartialLodash } from '@wix/bex-core';
export interface ReachBottomListenerParams {
    offsetPX?: number;
    onReachBottom: () => unknown;
    delay?: number;
    container: ScrollableWindow;
    target?: HTMLElement | null;
    lodash: PartialLodash;
}
export interface ReachBottomListener extends ReachBottomListenerParams {
}
export declare class ReachBottomListener {
    scrollPosition: ScrollPosition;
    offsetPX: number;
    onReachBottom: () => unknown;
    scrollListener: () => Promise<void> | undefined;
    container: ScrollableWindow;
    _target?: HTMLElement | null;
    targetScrollingParent?: HTMLElement | null;
    triggerListenerIfReached: DebouncedFunc<() => Promise<boolean>>;
    isScrolling: boolean;
    events: EventEmitter<[never]>;
    debounceSetScrollingIdle: () => unknown;
    constructor(params: ReachBottomListenerParams);
    set target(value: HTMLElement | null | undefined);
    get target(): HTMLElement | null | undefined;
    currentScrollPosition(): ScrollPosition;
    handleScroll: () => Promise<void>;
    get bottomX(): number;
    resizeListener: () => void;
    subscribe(): this;
    unsubscribe(): void;
}
//# sourceMappingURL=reachBottomListener.d.ts.map