import { ElementRef, NgZone, OnInit, OnDestroy } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
/**
 * @hidden
 */
export declare class IgxScrollInertiaDirective implements OnInit, OnDestroy {
    private element;
    private _zone;
    IgxScrollInertiaDirection: string;
    IgxScrollInertiaScrollContainer: any;
    wheelStep: number;
    inertiaStep: number;
    smoothingStep: number;
    smoothingDuration: number;
    swipeToleranceX: number;
    inertiaDeltaY: number;
    inertiaDeltaX: number;
    inertiaDuration: number;
    private _touchInertiaAnimID;
    private _startX;
    private _startY;
    private _touchStartX;
    private _touchStartY;
    private _lastTouchEnd;
    private _lastTouchX;
    private _lastTouchY;
    private _savedSpeedsX;
    private _savedSpeedsY;
    private _totalMovedX;
    private _offsetRecorded;
    private _offsetDirection;
    private _lastMovedX;
    private _lastMovedY;
    private _nextX;
    private _nextY;
    private parentElement;
    private baseDeltaMultiplier;
    private firefoxDeltaMultiplier;
    constructor(element: ElementRef, _zone: NgZone);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * @hidden
     * Function that is called when scrolling with the mouse wheel or using touchpad
     */
    protected onWheel(evt: any): void;
    /**
     * @hidden
     * When there is still room to scroll up/down prevent the parent elements from scrolling too.
     */
    protected preventParentScroll(evt: any, preventDefault: any, nextTop?: number): void;
    /**
     * @hidden
     * Function that is called the first moment we start interacting with the content on a touch device
     */
    protected onTouchStart(event: any): boolean;
    /**
     * @hidden
     * Function that is called when we need to scroll the content based on touch interactions
     */
    protected onTouchMove(event: any): void;
    protected onTouchEnd(event: any): void;
    protected _smoothWheelScroll(delta: any): void;
    protected _inertiaInit(speedX: any, speedY: any): void;
    private calcAxisCoords;
    private _scrollTo;
    private _scrollToX;
    private _scrollToY;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxScrollInertiaDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxScrollInertiaDirective, "[igxScrollInertia]", never, { "IgxScrollInertiaDirection": "IgxScrollInertiaDirection"; "IgxScrollInertiaScrollContainer": "IgxScrollInertiaScrollContainer"; "wheelStep": "wheelStep"; "inertiaStep": "inertiaStep"; "smoothingStep": "smoothingStep"; "smoothingDuration": "smoothingDuration"; "swipeToleranceX": "swipeToleranceX"; "inertiaDeltaY": "inertiaDeltaY"; "inertiaDeltaX": "inertiaDeltaX"; "inertiaDuration": "inertiaDuration"; }, {}, never>;
}
/**
 * @hidden
 */
export declare class IgxScrollInertiaModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxScrollInertiaModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<IgxScrollInertiaModule, [typeof IgxScrollInertiaDirective], [typeof i1.CommonModule], [typeof IgxScrollInertiaDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<IgxScrollInertiaModule>;
}
