import GcPdfViewer from "../GcPdfViewer";
/**
 * Interface for the PageRegionSelector class.
 */
export interface IPageRegionSelector {
    /**
     * Activates the region selector, enabling region selection on pages.
     * @param onRegionSelected - Callback invoked with the selected region's coordinates and page index.
     */
    activate(onRegionSelected: PageRegionSelectedCallback, args?: {
        enableAutoScroll?: boolean;
    }): any;
    /**
     * Deactivates the region selector and removes all event listeners.
     */
    deactivate(): void;
}
/**
 * Callback invoked with the selected region's coordinates and page index.
 */
export type PageRegionSelectedCallback = (region: {
    x: number;
    y: number;
    width: number;
    height: number;
    pageIndex: number;
    pdfRect: number[];
}) => void;
/**
 * Class to enable region selection on pages within a scrollable view.
 * Uses pointer events to support all device types.
 */
export declare class PageRegionSelector implements IPageRegionSelector {
    viewer: GcPdfViewer;
    private enableAutoScroll;
    private scrollView;
    private isActive;
    private startX;
    private startY;
    private selectionBox;
    private onRegionSelected;
    private _selectionStarted;
    private _pageElement;
    private _pageIndex;
    private _startScrollPos?;
    /**
     * @param scrollView - The container element with pages as children.
     */
    constructor(viewer: GcPdfViewer);
    /**
     * Activates the region selector.
     * @param onRegionSelected - Callback invoked with the selected region's coordinates and page index.
     */
    activate(onRegionSelected: PageRegionSelectedCallback, args?: {
        enableAutoScroll?: boolean;
    }): void;
    /**
     * Deactivates the region selector and removes all event listeners.
     */
    deactivate(): void;
    /**
     * Handles window blur event to cancel selection when window loses focus
     */
    private onWindowBlur;
    private onPointerDown;
    getScrollPos(): {
        scrollLeft: number;
        scrollTop: number;
    };
    private onPointerMove;
    private onPointerUp;
    private rectToPdfRect;
    private onPointerCancel;
    private createSelectionBox;
    private updateSelectionBox;
    private removeSelectionBox;
}
