import { Subject } from 'rxjs/Subject';
import { DomController } from './dom-controller';
export declare class ScrollView {
    private _dom;
    isScrolling: boolean;
    scrollStart: Subject<ScrollEvent>;
    scroll: Subject<ScrollEvent>;
    scrollEnd: Subject<ScrollEvent>;
    private _el;
    private _js;
    private _t;
    private _l;
    private _lsn;
    private _endTmr;
    ev: ScrollEvent;
    constructor(_dom: DomController);
    init(ele: HTMLElement, contentTop: number, contentBottom: number): void;
    private enableNativeScrolling();
    enableJsScroll(contentTop: number, contentBottom: number): void;
    getTop(): number;
    getLeft(): number;
    setTop(top: number): void;
    setLeft(left: number): void;
    scrollTo(x: number, y: number, duration: number, done?: Function): Promise<any>;
    scrollToTop(duration: number): Promise<any>;
    scrollToBottom(duration: number): Promise<any>;
    stop(): void;
    destroy(): void;
}
export interface ScrollEvent {
    scrollTop?: number;
    scrollLeft?: number;
    startY?: number;
    startX?: number;
    deltaY?: number;
    deltaX?: number;
    timeStamp?: number;
    velocityY?: number;
    velocityX?: number;
    directionY?: ScrollDirection;
    directionX?: ScrollDirection;
}
export declare enum ScrollDirection {
    Up = 0,
    Down = 1,
    Left = 2,
    Right = 3,
}
export interface DomFn {
    (callback: Function): void;
}
