import React, { ReactElement, ReactNode, Ref } from 'react'; import { DraggableGestureOptions, HandleProps } from '../../utils'; import { DefineElement } from '../../types'; export type DraggableTargetProps = { onTransitionEnd(e: React.TransitionEvent): void; style: { translate: string; }; 'data-dragging': 'true' | 'false'; }; export type DraggableRef = { restore(transition?: boolean): void; }; export interface DraggableProps extends DraggableGestureOptions { ref?: Ref; translateLimit?(targetTranslate: [number, number]): [number, number]; /** 拖拽结束后是否恢复原来的位置,默认为`false` */ restoreOnDragEnd?: boolean; /** 恢复时是否播放过度动画,默认为`true` */ restoreTransition?: boolean; container?: DefineElement; children: ReactElement | ((targetProps: DraggableTargetProps, handleProps: HandleProps) => ReactNode); } export declare function Draggable({ ref, translateLimit, restoreOnDragEnd, restoreTransition, container, children, ...draggableOptions }: DraggableProps): React.ReactNode;