import { BoundaryInterval } from '@devexpress/utils/lib/intervals/boundary';
import { FixedInterval } from '@devexpress/utils/lib/intervals/fixed';
import { IInternalApi } from '../internal-api';
import { CanvasSizeInfo } from './canvas-size-info';
import { DocumentLayout } from '../layout/document-layout';
import { IModelChangesListener } from '../interfaces/model-changes-listener';
import { ModelChange } from '../model/changes/change';
export declare class CanvasScrollInfo implements IModelChangesListener {
    protected static VISIBLE_PAGES_RANGE: number;
    protected static VISIBLE_PAGES_RANGE_TOUCH: number;
    protected static VISIBLE_AREA_HEIGHT_MULTIPLIER: number;
    protected canvas: HTMLDivElement;
    protected sizes: CanvasSizeInfo;
    protected renderPagesOffset: number;
    lastScrollTop: number;
    lastScrollLeft: number;
    startVisiblePageIndex: number;
    endVisiblePageIndex: number;
    readonly internalApi: IInternalApi;
    private _needUpdatePageIndexes;
    constructor(canvas: HTMLDivElement, sizes: CanvasSizeInfo, internalApi: IInternalApi);
    modelChanged(change: ModelChange): void;
    init(canvas: HTMLDivElement, sizes: CanvasSizeInfo): void;
    getStartRenderPageIndex(): number;
    getEndRenderPageIndex(): number;
    renderPageIndexInterval(): FixedInterval;
    updatePageIndexesInfo(layout: DocumentLayout): void;
    getVisibleInterval(): BoundaryInterval;
    private getScrollTop;
    private getVisibleHeight;
    onCanvasSizeChanged(): void;
}
