import React, { Component } from 'react'; interface Props { children: React.ReactNode; wrapperClass?: string; contentClass?: string; wrapperStyle?: React.CSSProperties; contentStyle?: React.CSSProperties; } declare const TransformComponent: React.FC; interface SizeType { width: number; height: number; } interface PositionType { x: number; y: number; } interface StateType { scale: number; positionX: number; positionY: number; } interface VelocityType { velocityX: number; velocityY: number; total: number; } interface BoundsType { minPositionX: number; maxPositionX: number; minPositionY: number; maxPositionY: number; } type AnimationType = () => void | number; declare class TransformContext extends Component & { setRef: (context: ReactZoomPanPinchRef) => void; }> { mounted: boolean; transformState: ReactZoomPanPinchState; setup: LibrarySetup; wrapperComponent: HTMLDivElement | null; contentComponent: HTMLDivElement | null; isInitialized: boolean; bounds: BoundsType | null; previousWheelEvent: WheelEvent | null; wheelStopEventTimer: ReturnType | null; wheelAnimationTimer: ReturnType | null; isPanning: boolean; startCoords: PositionType | null; lastTouch: number | null; distance: null | number; lastDistance: null | number; pinchStartDistance: null | number; pinchStartScale: null | number; pinchMidpoint: null | PositionType; velocity: VelocityType | null; velocityTime: number | null; lastMousePosition: PositionType | null; animate: boolean; animation: AnimationType | null; maxBounds: BoundsType | null; pressedKeys: { [key: string]: boolean; }; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(oldProps: ReactZoomPanPinchProps): void; private handleInitializeWrapperEvents; private handleInitialize; private onWheelZoom; private onPanningStart; private onPanning; private onPanningStop; private onPinchStart; private onPinch; private onPinchStop; private onTouchPanningStart; private onTouchPanning; private onTouchPanningStop; private onDoubleClick; private clearPanning; private setKeyPressed; private setKeyUnPressed; private isPressingKeys; private setComponents; setTransformState: (scale: number, positionX: number, positionY: number) => void; private setCenter; private applyTransformation; private handleRef; render(): JSX.Element; } declare const animations: { easeOut: (t: number) => number; linear: (t: number) => number; easeInQuad: (t: number) => number; easeOutQuad: (t: number) => number; easeInOutQuad: (t: number) => number; easeInCubic: (t: number) => number; easeOutCubic: (t: number) => number; easeInOutCubic: (t: number) => number; easeInQuart: (t: number) => number; easeOutQuart: (t: number) => number; easeInOutQuart: (t: number) => number; easeInQuint: (t: number) => number; easeOutQuint: (t: number) => number; easeInOutQuint: (t: number) => number; }; declare const zoomIn: (contextInstance: ReactZoomPanPinchContext) => (step?: number, animationTime?: number, animationType?: keyof typeof animations) => void; declare const zoomOut: (contextInstance: ReactZoomPanPinchContext) => (step?: number, animationTime?: number, animationType?: keyof typeof animations) => void; declare const setTransform: (contextInstance: ReactZoomPanPinchContext) => (newPositionX: number, newPositionY: number, newScale: number, animationTime?: number, animationType?: keyof typeof animations) => void; declare const resetTransform: (contextInstance: ReactZoomPanPinchContext) => (animationTime?: number, animationType?: keyof typeof animations) => void; declare const centerView: (contextInstance: ReactZoomPanPinchContext) => (scale?: number, animationTime?: number, animationType?: keyof typeof animations) => void; declare const zoomToElement: (contextInstance: ReactZoomPanPinchContext) => (node: HTMLElement | string, scale?: number, animationTime?: number, animationType?: keyof typeof animations) => void; type DeepNonNullable = T extends (...args: Array) => any ? T : T extends Array ? DeepNonNullableArray : T extends object ? DeepNonNullableObject : T; type DeepNonNullableArray = Array>>; type DeepNonNullableObject = { [P in keyof T]-?: DeepNonNullable>; }; type ReactZoomPanPinchContext = typeof TransformContext.prototype; type ReactZoomPanPinchRef = { instance: ReactZoomPanPinchContext; state: ReactZoomPanPinchState; } & ReactZoomPanPinchHandlers; interface ReactZoomPanPinchState { previousScale: number; scale: number; positionX: number; positionY: number; } interface ReactZoomPanPinchHandlers { zoomIn: ReturnType; zoomOut: ReturnType; setTransform: ReturnType; resetTransform: ReturnType; centerView: ReturnType; zoomToElement: ReturnType; } interface ReactZoomPanPinchProps { children?: React.ReactNode | ((ref: ReactZoomPanPinchRef) => React.ReactNode); ref?: React.Ref; initialScale?: number; initialPositionX?: number; initialPositionY?: number; disabled?: boolean; minPositionX?: null | number; maxPositionX?: null | number; minPositionY?: null | number; maxPositionY?: null | number; minScale?: number; maxScale?: number; limitToBounds?: boolean; centerZoomedOut?: boolean; centerOnInit?: boolean; wheel?: { step?: number; disabled?: boolean; wheelDisabled?: boolean; touchPadDisabled?: boolean; activationKeys?: Array; excluded?: Array; }; panning?: { disabled?: boolean; velocityDisabled?: boolean; lockAxisX?: boolean; lockAxisY?: boolean; activationKeys?: Array; excluded?: Array; }; pinch?: { step?: number; disabled?: boolean; excluded?: Array; }; doubleClick?: { disabled?: boolean; step?: number; mode?: "zoomIn" | "zoomOut" | "reset"; animationTime?: number; animationType?: keyof typeof animations; excluded?: Array; }; zoomAnimation?: { disabled?: boolean; size?: number; animationTime?: number; animationType?: keyof typeof animations; }; alignmentAnimation?: { disabled?: boolean; sizeX?: number; sizeY?: number; animationTime?: number; velocityAlignmentTime?: number; animationType?: keyof typeof animations; }; velocityAnimation?: { disabled?: boolean; sensitivity?: number; animationTime?: number; animationType?: keyof typeof animations; equalToMove?: boolean; }; onWheelStart?: (ref: ReactZoomPanPinchRef, event: WheelEvent) => void; onWheel?: (ref: ReactZoomPanPinchRef, event: WheelEvent) => void; onWheelStop?: (ref: ReactZoomPanPinchRef, event: WheelEvent) => void; onPanningStart?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onPanning?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onPanningStop?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onPinchingStart?: (ref: ReactZoomPanPinchRef, event: TouchEvent) => void; onPinching?: (ref: ReactZoomPanPinchRef, event: TouchEvent) => void; onPinchingStop?: (ref: ReactZoomPanPinchRef, event: TouchEvent) => void; onZoomStart?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onZoom?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onZoomStop?: (ref: ReactZoomPanPinchRef, event: TouchEvent | MouseEvent) => void; onInit?: (ref: ReactZoomPanPinchRef) => void; } interface ReactZoomPanPinchComponentHelpers { setComponents: (wrapper: HTMLDivElement, content: HTMLDivElement) => void; } type LibrarySetup = Pick & DeepNonNullable>; declare const TransformWrapper: React.ForwardRefExoticComponent & React.RefAttributes>; declare const useTransformContext: () => ReactZoomPanPinchRef; export { AnimationType, BoundsType, LibrarySetup, PositionType, ReactZoomPanPinchComponentHelpers, ReactZoomPanPinchContext, ReactZoomPanPinchHandlers, ReactZoomPanPinchProps, ReactZoomPanPinchRef, ReactZoomPanPinchState, SizeType, StateType, TransformComponent, TransformWrapper, VelocityType, useTransformContext };