///
import { Component } from 'react';
import { ViewProperties } from 'react-native';
export interface PropsDefine extends ViewProperties {
/**
* 单击的回调
*/
onClick?: () => void;
/**
* 操作区域宽度
*/
cropWidth: number;
/**
* 操作区域高度
*/
cropHeight: number;
/**
* 图片宽度
*/
imageWidth: number;
/**
* 图片高度
*/
imageHeight: number;
/**
* 单手是否能移动图片
*/
panToMove?: boolean;
/**
* 多手指是否能缩放
*/
pinchToZoom?: boolean;
/**
* 手指按住少于多少毫秒认为是退出
*/
leaveStayTime?: number;
/**
* 手指按住后位移少于多少认为是退出
*/
leaveDistance?: number;
/**
* 横向超出的距离,父级做图片切换时,可以监听这个函数
* 当此函数触发时,可以做切换操作
*/
horizontalOuterRangeOffset?: (offsetX?: number) => void;
/**
* 触发想切换到左边的图,向左滑动速度超出阈值时触发
*/
onDragLeft?: () => void;
/**
* 松手但是没有取消看图的回调
*/
responderRelease?: (vx?: number, scale?: number) => void;
/**
* 最大滑动阈值
*/
maxOverflow?: number;
/**
* 长按的阈值(毫秒)
*/
longPressTime?: number;
/**
* 长按的回调
*/
onLongPress?: () => void;
/**
* 双击的回调
*/
onDoubleClick?: () => void;
/**
* 透传
*/
others?: any;
}
export declare class PropsGaea {
gaeaName: string;
gaeaIcon: string;
gaeaUniqueKey: string;
}
export declare class Props extends PropsGaea implements PropsDefine {
onClick: () => void;
onLongPress: () => void;
panToMove: boolean;
pinchToZoom: boolean;
cropWidth: number;
cropHeight: number;
imageWidth: number;
imageHeight: number;
source: string;
longPressTime: number;
leaveStayTime: number;
leaveDistance: number;
maxOverflow: number;
horizontalOuterRangeOffset: () => void;
responderRelease: () => void;
onDoubleClick: () => void;
}
export interface StateDefine {
/**
* 中心 x 坐标````
*/
centerX?: number;
/**
* 中心 y 坐标
*/
centerY?: number;
}
export declare class State implements StateDefine {
centerX: number;
centerY: number;
}
export default class ImageViewer extends Component {
static defaultProps: PropsDefine;
state: StateDefine;
private lastPositionX;
private positionX;
private animatedPositionX;
private lastPositionY;
private positionY;
private animatedPositionY;
private scale;
private animatedScale;
private zoomLastDistance;
private zoomCurrentDistance;
private imagePanResponder;
private lastTouchStartTime;
private horizontalWholeOuterCounter;
private horizontalWholeCounter;
private verticalWholeCounter;
private centerDiffX;
private centerDiffY;
private longPressTimeout;
private lastClickTime;
private doubleClickX;
private doubleClickY;
private isDoubleClickScale;
componentWillMount(): void;
/**
* 图片区域视图渲染完毕
* event: LayoutChangeEvent
*/
handleLayout: () => {};
/**
* 重置大小和位置
*/
reset(): void;
render(): JSX.Element;
}