import { ScrollMode } from '../../enums';
import { VisibleElements } from '../../utils';
import { Page } from '../page';
import { Manager } from './';
export declare function isValidScrollMode(mode: number): boolean;
export type ScrollDestination = undefined | [
    'XYZ',
    number,
    number,
    string | number | undefined
] | [
    'Fit'
] | [
    'FitB'
] | [
    'FitH',
    number | undefined
] | [
    'FitBH',
    number | undefined
] | [
    'FitV',
    number
] | [
    'FitBV',
    number
] | [
    'FitR',
    number,
    number,
    number,
    number
];
export type ScrollModePageState = {
    previousPageNumber: number;
    scrollDown: boolean;
    pages: Page[];
};
export declare class ScrollManager extends Manager {
    private scrollModePageState;
    private _scrollMode;
    private previousScrollMode;
    private scroll;
    init(): void;
    reset(): void;
    ensurePageVisible(): void;
    getVisiblePages(): VisibleElements;
    private onScrollUpdate;
    scrollIntoView(page: Page, pageSpot?: {
        top: number;
        left: number;
    }): void;
    scrollPageIntoView({ pageNumber, destination, allowNegativeOffset, ignoreDestinationZoom, }: {
        pageNumber: number;
        destination?: ScrollDestination;
        allowNegativeOffset?: boolean;
        ignoreDestinationZoom?: boolean;
    }): void;
    get isHorizontalScrollbarEnabled(): boolean;
    get isVerticalScrollbarEnabled(): boolean;
    getScrollAhead(visible: VisibleElements): boolean;
    get scrollMode(): ScrollMode;
    set scrollMode(mode: ScrollMode);
    private updateScrollMode;
}
