///
import { Component } from 'react';
import { PanResponderInstance, Animated, ViewStyle } from 'react-native';
import { Point, ViewTransform, ViewDimensions } from './interfaces';
/*********************************************************
* Interfaces
*********************************************************/
export interface Props {
minScale?: number;
maxScale?: number;
initialZoom?: number;
canvasHeight?: number;
canvasWidth?: number;
canvasStyle?: ViewStyle;
viewStyle?: ViewStyle;
onZoom?: (zoom: number) => void;
}
export interface State {
layoutKnown: boolean;
viewDimensions: ViewDimensions;
viewTransform: ViewTransform;
isScaling: boolean;
initialDistance: number;
initialTransform: ViewTransform;
initialScale: number;
initialTranslation: Point;
isMoving: boolean;
initialGestureState: {
dx: number;
dy: number;
};
scaleAnimation: Animated.Value;
TranslationAnimation: Animated.ValueXY;
}
/*********************************************************
* Component
*********************************************************/
export default class SvgPanZoom extends Component {
static defaultProps: Partial;
mainViewRef: any;
prInstance: PanResponderInstance;
prTargetSelf: any;
prTargetOuter: any;
constructor(props: Props);
dropNextEvt: number;
componentWillMount(): void;
render(): JSX.Element;
_onLayout: (event: any) => void;
getInitialViewTransform(canvasWidth: number, canvasHeight: any, scale: number): ViewTransform;
zoomToPoint: (x: number, y: number, scale: number, duration?: number) => void;
processPinch: (x1: any, y1: any, x2: any, y2: any) => void;
processTouch: (gestureState: any) => void;
}