import React from 'react';
import { IImageTypes, ZoomFallbackBoundaryProps, ZoomFallbackBoundaryState } from '../ImageMagnifier.types';
export type PageCoords = {
    x: number;
    y: number;
};
export type OffSetCoords = {
    left: number;
    top: number;
};
export type PageDimensions = {
    width: number;
    height: number;
};
export declare function isTouchEvent(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent | React.KeyboardEvent | KeyboardEvent): e is TouchEvent | React.TouchEvent;
export declare function getPageCoords(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent | React.KeyboardEvent | KeyboardEvent, fallbackElement?: HTMLElement | null): PageCoords;
export declare const getOffsets: (pageX: number, pageY: number, left: number, top: number) => PageCoords;
export declare const getBounds: (container: HTMLDivElement | null) => DOMRect | {
    width: number;
    height: number;
    left: number;
    top: number;
};
export declare const getRatios: (bounds: {
    width: number;
    height: number;
}, natural: {
    width: number;
    height: number;
}, zoomScale: number) => PageCoords;
export declare function clampToBounds(left: number, top: number, bounds: {
    minLeft: number;
    maxLeft: number;
    minTop: number;
    maxTop: number;
}): OffSetCoords;
export declare function calculateDragPosition(pageX: number, pageY: number, offsets: {
    x: number;
    y: number;
}): OffSetCoords;
export declare const getScaledDimensions: (zoomedImgRef: HTMLImageElement, zoomScale: number) => PageDimensions;
export declare const getDefaults: () => IImageTypes;
export declare class ZoomFallbackBoundary extends React.Component<ZoomFallbackBoundaryProps, ZoomFallbackBoundaryState> {
    constructor(props: ZoomFallbackBoundaryProps);
    static getDerivedStateFromError(): {
        hasError: boolean;
    };
    componentDidCatch(error: any, info: any): void;
    render(): React.ReactNode;
}
