import React, { ReactNode } from 'react';
import useDrag from 'z-use-drag';
declare const DragContext: React.Context<{
    draggable?: boolean | undefined;
    dragProps?: {
        draggable: boolean;
        onDragStart: (e: any) => void;
        onDragEnd: (e: any) => void;
    } | {
        onDragEnter: (e: any) => void;
        onDragOver: (e: any) => void;
        onDragLeave: (e: any) => void;
        onDrop: (e: any) => void;
    } | undefined;
    dropProps?: {
        draggable: boolean;
        onDragStart: (e: any) => void;
        onDragEnd: (e: any) => void;
    } | {
        onDragEnter: (e: any) => void;
        onDragOver: (e: any) => void;
        onDragLeave: (e: any) => void;
        onDrop: (e: any) => void;
    } | undefined;
}>;
declare const DragWrap: React.MemoExoticComponent<({ children, draggable, ...events }: {
    onDragStart?: ((source: Element) => void) | undefined;
    onDragEnter?: ((source: Element, target: Element) => void) | undefined;
    onDragOver?: ((source: Element, target: Element) => void) | undefined;
    onDragLeave?: ((source: Element, target: Element) => void) | undefined;
    onDrop?: ((source: Element, target: Element) => void) | undefined;
    onDragEnd?: ((source: Element) => void) | undefined;
    effectAllowed?: "none" | "copy" | "link" | "move" | "all" | "copyLink" | "copyMove" | "linkMove" | "uninitialized" | undefined;
    dropEffect?: "none" | "copy" | "link" | "move" | undefined;
    ignoreChildEnterLeave?: boolean | undefined;
    ignoreSelf?: boolean | undefined;
} & {
    children: ReactNode;
    draggable: boolean;
}) => JSX.Element>;
export { DragContext };
export default DragWrap;
