import type { ControllerHost } from './Abstracts/ControllerBase';
import { ControllerBase } from './Abstracts/ControllerBase';
/**
 * Represents the `IInfiniteScrollControllerConfig` interface.
 *
 * @public
 */
export interface IInfiniteScrollControllerConfig {
    /**
     * The delay in milliseconds before the scroll event is processed.
     */
    delay?: number;
    /**
     * Whether the infinite scroll is disabled.
     */
    disabled?: boolean;
    /**
     * The offset in pixels from the bottom of the scrollable area to trigger the infinite scroll.
     */
    offset?: number;
    /**
     * Whether the direction of the scroll is reversed.
     */
    directionReversed?: boolean;
    /**
     * The CSS selector or HTMLElement for the scroll container.
     */
    container?: string | HTMLElement;
    /**
     * Callback function to be called when the infinite scroll is triggered.
     */
    callback?: () => void;
}
/**
 * Controller for HTML Infinite Scroll logic.
 *
 * @public
 */
export declare class InfiniteScrollController extends ControllerBase {
    private readonly _callback;
    private _container;
    private _containerElement;
    private _delay;
    private _disabled;
    private _offset;
    private _directionReversed;
    private _connected;
    private _scrollTimeout;
    /**
     * Constructs a new instance of the `InfiniteScrollController` class.
     *
     * @public
     */
    constructor(host: ControllerHost, config: IInfiniteScrollControllerConfig);
    get disabled(): boolean;
    set disabled(value: boolean);
    get delay(): number;
    set delay(value: number);
    get offset(): number;
    set offset(value: number);
    get directionReversed(): boolean;
    set directionReversed(value: boolean);
    get container(): string | HTMLElement;
    set container(value: string | HTMLElement);
    /**
     * Initializes the infinite scroll controller.
     *
     * @public
     */
    initialize(): void;
    /**
     * Disconnects the infinite scroll controller.
     *
     * @public
     */
    disconnect(): void;
    private onScroll;
    private resolveScrollContainer;
}
//# sourceMappingURL=InfiniteScrollController.d.ts.map