import { ElementType, ReactElement, Ref } from 'react'; import { OverridableProps } from '../../types'; import { GestureOptions } from '../../utils'; export interface PinchableRef extends HTMLDivElement { zoomIn(): void; zoomOut(): void; zoomTo(n?: number): void; reset(transition?: boolean): void; rotateLeft(): void; rotateRight(): void; rotate(deg: number): void; } type PinchableOwnProps = { ref?: Ref; gestureOptions?: GestureOptions; defaultScale?: number; scale?: number; onScaleChange?(scale: number): void; /** 缩放限制,`scale`非受控模式下有效,默认为1-6 */ scaleLimit?: [number, number]; defaultTranslate?: [number, number]; translate?: [number, number]; onTranslateChange?(translate: [number, number]): void; /** 平移限制,`translate`非受控模式下有效 */ translateLimit?: (targetX: number, targetY: number, scale: number, rotateDeg: number) => [number, number]; defaultRotate?: number; rotate?: number; onRotateChange?(rotate: number): void; children?: ReactElement; /** 拖拽至最边缘时,是否允许弹性溢出,默认为`true` */ allowEdgeBounce?: boolean; /** 元素弹性移动距离,默认为24 */ bounceElementTranslate?: number; /** 手指弹性拖拽距离,默认为240 */ bounceDragDistance?: number; }; export type PinchableProps = OverridableProps; export declare const Pinchable: (props: PinchableProps) => ReactElement; export {};