import * as i0 from '@angular/core';
import { Nullable } from '@fundamental-ngx/cdk/utils';

/**
 * Tool directive used to achieve the infinite scroll mechanism.
 */
declare class InfiniteScrollDirective {
    /** Scroll percentage at which the onScrollAction event is fired. */
    readonly scrollPercent: i0.InputSignal<number>;
    /** Scroll PX at which the onScrollAction event is fired. */
    readonly scrollOffset: i0.InputSignal<Nullable<number>>;
    /** Event emitted when the scrollPercent threshold is met. */
    readonly onScrollAction: i0.OutputEmitterRef<void>;
    /** @hidden */
    private readonly _element;
    /** @hidden */
    private readonly _destroyRef;
    constructor();
    /** @hidden */
    shouldTriggerAction(): boolean;
    /** @hidden */
    private _listenOnScroll;
    static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InfiniteScrollDirective, "[fdInfiniteScroll]", never, { "scrollPercent": { "alias": "scrollPercent"; "required": false; "isSignal": true; }; "scrollOffset": { "alias": "scrollOffset"; "required": false; "isSignal": true; }; }, { "onScrollAction": "onScrollAction"; }, never, never, true, never>;
}

/**
 * @deprecated
 * Use direct imports of components and directives.
 */
declare class InfiniteScrollModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<InfiniteScrollModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<InfiniteScrollModule, never, [typeof InfiniteScrollDirective], [typeof InfiniteScrollDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<InfiniteScrollModule>;
}

export { InfiniteScrollDirective, InfiniteScrollModule };
