import { _Left, _Top } from '@angular/cdk/scrolling';
import { SmoothScrollElement, SmoothScrollOptions, SmoothScrollToOptions } from './smooth-scroll.model';
import * as ɵngcc0 from '@angular/core';
export declare class SmoothScrollManager {
    private _document;
    private _platform;
    private readonly _defaultOptions;
    private _onGoingScrolls;
    private get _w();
    /**
     * Timing method
     */
    private get _now();
    constructor(_document: any, _platform: object, customDefaultOptions: SmoothScrollToOptions);
    /**
     * changes scroll position inside an element
     */
    private _scrollElement;
    /**
     * Handles a given parameter of type HTMLElement, ElementRef or selector
     */
    private _getElement;
    /**
     * Initializes a destroyer stream, re-initializes it if the element is already being scrolled
     */
    private _initSmoothScroll;
    /**
     * Checks if smooth scroll has reached, cleans up the smooth scroll stream and resolves its promise
     */
    private _isFinished;
    /**
     * Terminates an ongoing smooth scroll
     */
    private _interrupted;
    /**
     * Deletes the destroyer function, runs if the smooth scroll has finished or interrupted
     */
    private _destroy;
    /**
     * A function called recursively that, given a context, steps through scrolling
     */
    private _step;
    private _applyScrollToOptions;
    /**
     * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo
     * method, since browsers are not consistent about what scrollLeft means in RTL. For this method
     * left and right always refer to the left and right side of the scrolling container irrespective
     * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
     * in an RTL context.
     * @param scrollable element
     * @param customOptions specified the offsets to scroll to.
     */
    scrollTo(scrollable: SmoothScrollElement, customOptions: SmoothScrollToOptions): Promise<void>;
    /**
     * Scroll to element by reference or selector
     */
    scrollToElement(scrollable: SmoothScrollElement, target: SmoothScrollElement, customOptions: SmoothScrollOptions & _Top & _Left): Promise<void>;
    static ɵfac: ɵngcc0.ɵɵFactoryDef<SmoothScrollManager>;
}

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21vb3RoLXNjcm9sbC1tYW5hZ2VyLmQudHMiLCJzb3VyY2VzIjpbInNtb290aC1zY3JvbGwtbWFuYWdlci5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNEQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9MZWZ0LCBfVG9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBTbW9vdGhTY3JvbGxFbGVtZW50LCBTbW9vdGhTY3JvbGxPcHRpb25zLCBTbW9vdGhTY3JvbGxUb09wdGlvbnMgfSBmcm9tICcuL3Ntb290aC1zY3JvbGwubW9kZWwnO1xuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU21vb3RoU2Nyb2xsTWFuYWdlciB7XG4gICAgcHJpdmF0ZSBfZG9jdW1lbnQ7XG4gICAgcHJpdmF0ZSBfcGxhdGZvcm07XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdE9wdGlvbnM7XG4gICAgcHJpdmF0ZSBfb25Hb2luZ1Njcm9sbHM7XG4gICAgcHJpdmF0ZSBnZXQgX3coKTtcbiAgICAvKipcbiAgICAgKiBUaW1pbmcgbWV0aG9kXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXQgX25vdygpO1xuICAgIGNvbnN0cnVjdG9yKF9kb2N1bWVudDogYW55LCBfcGxhdGZvcm06IG9iamVjdCwgY3VzdG9tRGVmYXVsdE9wdGlvbnM6IFNtb290aFNjcm9sbFRvT3B0aW9ucyk7XG4gICAgLyoqXG4gICAgICogY2hhbmdlcyBzY3JvbGwgcG9zaXRpb24gaW5zaWRlIGFuIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zY3JvbGxFbGVtZW50O1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYSBnaXZlbiBwYXJhbWV0ZXIgb2YgdHlwZSBIVE1MRWxlbWVudCwgRWxlbWVudFJlZiBvciBzZWxlY3RvclxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEVsZW1lbnQ7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBkZXN0cm95ZXIgc3RyZWFtLCByZS1pbml0aWFsaXplcyBpdCBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IGJlaW5nIHNjcm9sbGVkXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5pdFNtb290aFNjcm9sbDtcbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgc21vb3RoIHNjcm9sbCBoYXMgcmVhY2hlZCwgY2xlYW5zIHVwIHRoZSBzbW9vdGggc2Nyb2xsIHN0cmVhbSBhbmQgcmVzb2x2ZXMgaXRzIHByb21pc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pc0ZpbmlzaGVkO1xuICAgIC8qKlxuICAgICAqIFRlcm1pbmF0ZXMgYW4gb25nb2luZyBzbW9vdGggc2Nyb2xsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW50ZXJydXB0ZWQ7XG4gICAgLyoqXG4gICAgICogRGVsZXRlcyB0aGUgZGVzdHJveWVyIGZ1bmN0aW9uLCBydW5zIGlmIHRoZSBzbW9vdGggc2Nyb2xsIGhhcyBmaW5pc2hlZCBvciBpbnRlcnJ1cHRlZFxuICAgICAqL1xuICAgIHByaXZhdGUgX2Rlc3Ryb3k7XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgcmVjdXJzaXZlbHkgdGhhdCwgZ2l2ZW4gYSBjb250ZXh0LCBzdGVwcyB0aHJvdWdoIHNjcm9sbGluZ1xuICAgICAqL1xuICAgIHByaXZhdGUgX3N0ZXA7XG4gICAgcHJpdmF0ZSBfYXBwbHlTY3JvbGxUb09wdGlvbnM7XG4gICAgLyoqXG4gICAgICogU2Nyb2xscyB0byB0aGUgc3BlY2lmaWVkIG9mZnNldHMuIFRoaXMgaXMgYSBub3JtYWxpemVkIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIncyBuYXRpdmUgc2Nyb2xsVG9cbiAgICAgKiBtZXRob2QsIHNpbmNlIGJyb3dzZXJzIGFyZSBub3QgY29uc2lzdGVudCBhYm91dCB3aGF0IHNjcm9sbExlZnQgbWVhbnMgaW4gUlRMLiBGb3IgdGhpcyBtZXRob2RcbiAgICAgKiBsZWZ0IGFuZCByaWdodCBhbHdheXMgcmVmZXIgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0IHNpZGUgb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIgaXJyZXNwZWN0aXZlXG4gICAgICogb2YgdGhlIGxheW91dCBkaXJlY3Rpb24uIHN0YXJ0IGFuZCBlbmQgcmVmZXIgdG8gbGVmdCBhbmQgcmlnaHQgaW4gYW4gTFRSIGNvbnRleHQgYW5kIHZpY2UtdmVyc2FcbiAgICAgKiBpbiBhbiBSVEwgY29udGV4dC5cbiAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSBlbGVtZW50XG4gICAgICogQHBhcmFtIGN1c3RvbU9wdGlvbnMgc3BlY2lmaWVkIHRoZSBvZmZzZXRzIHRvIHNjcm9sbCB0by5cbiAgICAgKi9cbiAgICBzY3JvbGxUbyhzY3JvbGxhYmxlOiBTbW9vdGhTY3JvbGxFbGVtZW50LCBjdXN0b21PcHRpb25zOiBTbW9vdGhTY3JvbGxUb09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKlxuICAgICAqIFNjcm9sbCB0byBlbGVtZW50IGJ5IHJlZmVyZW5jZSBvciBzZWxlY3RvclxuICAgICAqL1xuICAgIHNjcm9sbFRvRWxlbWVudChzY3JvbGxhYmxlOiBTbW9vdGhTY3JvbGxFbGVtZW50LCB0YXJnZXQ6IFNtb290aFNjcm9sbEVsZW1lbnQsIGN1c3RvbU9wdGlvbnM6IFNtb290aFNjcm9sbE9wdGlvbnMgJiBfVG9wICYgX0xlZnQpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19