import { AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter } from "@angular/core";
import { ViewportData } from "../../core/data/component-data";
import { AbstractJigsawComponent } from "../common";
/**
 * 视口滚动时所发出的事件里所携带的数据。
 */
export declare class ViewportScrollEvent {
    /**
     * 本次滚动所发生的方向，分别是水平和垂直。
     */
    direction: "horizontal" | "vertical";
    /**
     * 本次滚动到的位置，需要配合`direction`来确定是哪个方向上的滚动。
     */
    scrollTo: number;
}
/**
 * 为一个视口增加滚动条，让视口可以在整体可视区域中调整位置，具体用法请参考[这个demo]($demo=table/big-table)。
 */
export declare class JigsawViewport extends AbstractJigsawComponent implements AfterViewChecked {
    private _elementRef;
    private _changeDetector;
    /**
     * 滚动条在垂直方向上的偏移量，例如让滚动条跳过表格的表头，这样会让滚动条与表格的视觉效果更佳。
     * 一般来说，默认皮肤下，JigsawTable的表头高度为42px。
     *
     * @type {number}
     */
    verticalOffset: number;
    /**
     * 视口数据，这些数据描述了视口尺寸、位置，及其整体可视区域的尺寸等信息，
     * `JigsawViewport`通过修改这些数据达到调整视口位置、尺寸等的目的。
     */
    viewport: ViewportData;
    /**
     * 鼠标滑轮每移动一次，视口位置偏移的单位数。笼统的讲，这个数值越大，滚动条越敏感。
     * “视口”是一个抽象的概念，视口位置偏移量也是抽象的，这个偏移量的单位是在视口设计时给定的。
     * 例如`BigTableData`所设计的视口，在垂直方向上的单位是记录数，即视口的每一个单位代表着表格的一行。
     *
     * @type {number}
     */
    step: number;
    /**
     * 视口在发生滚动时，`JigsawViewport`会不停的发出此事件
     *
     * @type {EventEmitter<ViewportScrollEvent>}
     */
    scroll: EventEmitter<ViewportScrollEvent>;
    constructor(_elementRef: ElementRef, _changeDetector: ChangeDetectorRef);
    ngAfterViewChecked(): void;
    /**
     * @internal
     */
    _$handleViewChange(scrollTo: number, direction: "horizontal" | "vertical"): void;
    /**
     * @internal
     */
    _$showSlider: boolean;
    /**
     * @internal
     */
    _$handleMouseEnter(): void;
    /**
     * @internal
     */
    _$handleMouseLeave(): void;
    /**
     * @internal
     */
    _$handleMouseWheel(e: any): void;
}
export declare class JigsawViewportModule {
}
