import { Observable, Subject } from 'rxjs';
/**
 * Scroll position type
 */
export interface ElScrollPosition {
    /**
     * x - left
     * @type {number}
     */
    x: number;
    /**
     * y - top
     * @type {number}
     */
    y: number;
}
/**
 * Layout scroll service. Provides information about current scroll position,
 * as well as methods to update position of the scroll.
 *
 * The reason we added this service is that in Endlessjs there are two scroll modes:
 * - the default mode when scroll is on body
 * - and the `withScroll` mode, when scroll is removed from the body and moved to an element inside of the
 * `el-layout` component
 */
export declare class ElLayoutScrollService {
    private scrollPositionReq$;
    private manualScroll$;
    private scroll$;
    private scrollable$;
    /**
     * Returns scroll position
     *
     * @returns {Observable<ElScrollPosition>}
     */
    getPosition(): Observable<ElScrollPosition>;
    /**
     * Sets scroll position
     *
     * @param {number} x
     * @param {number} y
     */
    scrollTo(x?: number, y?: number): void;
    /**
     * Returns a stream of scroll events
     *
     * @returns {Observable<any>}
     */
    onScroll(): Observable<any>;
    /**
     * @private
     * @returns Observable<ElScrollPosition>.
     */
    onManualScroll(): Observable<ElScrollPosition>;
    /**
     * @private
     * @returns {Subject<any>}
     */
    onGetPosition(): Subject<any>;
    onScrollableChange(): Observable<boolean>;
    /**
     * @private
     * @param {any} event
     */
    fireScrollChange(event: any): void;
    scrollable(scrollable: boolean): void;
}
